我有一个编辑表单。我正在像这样获取行的数据 -
if (isset($_GET["id"])) {
$pur_id = intval($_GET["id"]);
} else {
echo "id not set";
}
然后我尝试执行以下 UPDATE 查询。
$qry1 = mysqli_query($con,"UPDATE `purchase_info` SET `remarks` ='$remarks' WHERE `pur_info_id` = '$pur_id'");
此查询确实有效,但它不会更新我数据库中的记录。但是当我简单地传递数值而不是我放入行 ID 的变量时它会更新记录。因此如果我传递 'pur_info_id' = 1
然后它会更新我的记录。
这很奇怪。我正在使用 int 值转换值,但仍然没有运气。请指教。谢谢!!
最佳答案
您的查询没有意义,因为当它实际执行 UPDATE
时,它会将 pur_info_id
列替换为其已有的值。假设 $pur_id
的值为 1
,那么您的查询可以写成:
UPDATE `purchase_info`
SET `pur_info_id` = 1,
`remarks` = '$remarks'
WHERE `pur_info_id` = 1
嗯,这不会更改 pur_info_id
列,但 remarks
可能会更新为新内容。您应该让我们知道您打算执行什么业务逻辑。在任何情况下,以下查询在逻辑上都等同于您的原始查询:
UPDATE `purchase_info`
SET `remarks` = '$remarks'
WHERE `pur_info_id` = '$pur_id'
关于php - UPDATE 查询有问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36383729/