gpt4 book ai didi

php - 运行 Update Query MySQL 时所有数据都变为 NULL

转载 作者:太空宇宙 更新时间:2023-11-03 11:35:54 26 4
gpt4 key购买 nike

我的 mysql 查询更新有问题,我觉得这很奇怪。我在我的代码中使用 Where 子句在该查询中运行 Update 查询。但是,当我停止该查询时,我表中的所有数据都变为 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 子句中的数据。也许服务器导致该问题或任何可能导致该问题的原因。我希望有人能告诉我为什么会这样。谢谢。

最佳答案

如果没有与您用于 where 条件的变量关联的值,就会发生这种情况

在插入数据库之前验证数据总是好的:

foreach ($book as $row)
{
if(isset($row->id) && $row->id != '' && isset($row->book_id) && $row->book_id != '' ) {
$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);
}
}

现在,只有当您拥有给定变量的值时,数据库数据才会更新。您可以使用更多验证,例如检查 id 是否为数字(根据您的数据库结构)或无效。

关于php - 运行 Update Query MySQL 时所有数据都变为 NULL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46148796/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com