$this->db->update_batch()使用的的问题
我的PHP版本是5.4,当使用update_batch批量更新时提示以下错误,A PHP Error was encounteredSeverity: NoticeMessage: Array to string conversionFilename: database/DB_active_rec.phpLine Number: 1407
查找 DB_active_rec.php 1407行发现$v是一个数组,我把else代码注释掉就正常了,不知道这个$not有什么使用?
public function set_update_batch($key, $index = '', $escape = TRUE)
{
$key = $this->_object_to_array_batch($key);
if ( ! is_array($key))
{
// @todo error
}
foreach ($key as $k => $v)
{
$index_set = FALSE;
$clean = array();
foreach ($v as $k2 => $v2)
{
if ($k2 == $index)
{
$index_set = TRUE;
}
/* else
{
$not[] = $k.'-'.$v;
}*/
if ($escape === FALSE)
{
$clean[$this->_protect_identifiers($k2)] = $v2;
}
else
{
$clean[$this->_protect_identifiers($k2)] = $this->escape($v2);
}
}
if ($index_set == FALSE)
{
return $this->display_error('db_batch_missing_index');
}
$this->ar_set[] = $clean;
}
return $this;
}
看起来确实是一个BUG,这个$not并未初始化,就直接把它当数组处理了,所以会报错。 gogogo1027 发表于 2013-7-11 10:11 static/image/common/back.gif
看起来确实是一个BUG,这个$not并未初始化,就直接把它当数组处理了,所以会报错。 ...
不管它了直接注释掉了,哈哈~~
遇到了同样的问题,请教师傅后将1407行改成
$not[]=$k.'-'.$v2;
后无有报错了,但是师傅不肯告诉我原因:Q:L
个人认为因为$v是个数组,$v2是抽取出来的字符,$k不能串起一个数组所以报错。
$not是某种校验吧,可以的化话尽量不要屏蔽比较好。
页:
[1]