我正在尝试使用序列化数组更新一行,但是当我运行下面的SQL语句时,该行没有更新。
然而,当我只是使用像TEST这样的词时,它会更新。
非常感谢任何有关清除此事的帮助。
返回受影响的0行:
UPDATE lists SET col1 = 'a:9:{i:0;s:7:"English";i:1;s:7:"Spanish";i:2;s:6:"Korean";i:3;s:4:"Thai";i:4;s:0:"";i:5;s:0:"";i:6;s:0:"";i:7;s:0:"";i:8;s:0:"";}' WHERE list_id = '6'
正确更新行:
UPDATE lists SET col1 = 'TEST' WHERE list_id = '6'
下面是Codeigniter PHP函数:
public function update_field($table, $field, $value, $whereField = FALSE, $whereValue = FALSE )
{
$user_id = $this->session->userdata('user_id');
if ($whereField === FALSE) {
$sql = "UPDATE $table SET $field = '$value'";
$query = $this->db->query($sql);
} else {
$data = array(
$field => $value
);
$this->db->where($whereField, $whereValue);
$this->db->update($table, $data);
}
if ($this->db->_error_message()) {
echo 'Error Num: ' . $this->db->_error_number(); //returns 0 if query successful/no error
echo '<br />Message: ' . $this->db->_error_message();
}
}
答案 0 :(得分:0)
这条线很好。
如果您尝试将字段更新为其当前值(即您没有进行实际更改),那么您将获得0更新的行。
例如,如果我有员工表:
employees
id name city
1 John London
UPDATE `employees` SET `city` = "London" WHERE `id` = 1
// 0 rows affected
如果您没有进行实际更改,则返回0