【发布时间】:2017-09-11 05:34:55
【问题描述】:
我的 mysql 查询更新有问题,我觉得这很奇怪。我在我的代码中运行 Update 查询,并在该查询中使用 Where 子句。但是,当我停止该查询时,我的表中的所有数据都变为 NULL,这不仅仅是在 Where 子句中包含的数据中,而是在所有表中。
这是我的代码:
$book = json_decode($this->input->post('stringify'));
foreach ($book as $row)
{
$data = array(
'price' => $row->price,
'date_modified' => date("Y-m-d H:i:s"),
'modified_by' => $row->username
);
$this->db->where('id', $row->id);
$this->db->where('book_id', $row->book_id);
$this->db->update('book_availability', $data);
}
我使用 codeigniter 框架创建该查询。我只想知道为什么该查询会更新我表中的所有数据,而不仅仅是Where 子句中的数据。也许服务器会导致该问题或任何可能导致该问题的原因。我希望有人能告诉我为什么会这样。谢谢。
【问题讨论】:
-
是否定义了
$id? -
当我看不到完整代码时很难看到,但是有你:更新 where id = something
-
通过 echo $this->db->last_query() 查看最后一个查询;
-
@Ghost 是的,当然
$id已定义 -
@AndersKink 我编辑了我的问题
标签: php mysql database codeigniter