Php 某物';更新查询中有什么错误
我有一张编辑表格。我正在获取行的数据,如下所示-Php 某物';更新查询中有什么错误,php,mysql,forms,Php,Mysql,Forms,我有一张编辑表格。我正在获取行的数据,如下所示- if (isset($_GET["id"])) { $pur_id = intval($_GET["id"]); } else { echo "id not set"; } 然后我尝试执行以下更新查询 $qry1 = mysqli_query($con,"UPDATE `purchase_info` SET `remarks` ='$remarks' WHERE `pur_info_id` = '$pur_id'"); 此查询
if (isset($_GET["id"])) {
$pur_id = intval($_GET["id"]);
} else {
echo "id not set";
}
然后我尝试执行以下更新查询
$qry1 = mysqli_query($con,"UPDATE `purchase_info` SET `remarks` ='$remarks' WHERE `pur_info_id` = '$pur_id'");
此查询确实有效,但不会更新数据库中的记录。但当我只是传递数值而不是输入行ID的变量时,它会更新记录。因此,如果我通过'pur\u info\u id'=1
,它就会更新我的记录
这很奇怪。我正在使用int值转换值,但仍然没有运气。请给我一些建议。谢谢 您的查询是无意义的,因为当它实际执行
更新时,它会将pur\u info\u id
列替换为它已有的值。假设$pur\u id
的值为1
,那么您的查询可以写为:
UPDATE `purchase_info`
SET `pur_info_id` = 1,
`remarks` = '$remarks'
WHERE `pur_info_id` = 1
这不会改变pur\u info\u id
列,但是备注
可能会更新为新内容。您应该让我们知道您打算执行什么业务逻辑。在任何情况下,以下查询在逻辑上等同于您的原始查询:
UPDATE `purchase_info`
SET `remarks` = '$remarks'
WHERE `pur_info_id` = '$pur_id'
感谢大家分享您宝贵的见解和知识。我找到了解决我问题的办法。这是一个非常愚蠢的问题,但对我来说是个新问题。我使用_getrequest从表中获取了行id,然后尝试在我的_POST请求中使用该id,这实际上导致了问题
简而言之,我们不能使用_getin _postrequest的值。因此,解决方案是将_GET的值存储在一个变量中,并将其保存在一个隐藏的输入字段中。当发出_POST请求时,我们只需从隐藏字段中获取值。再次感谢 您是否尝试删除了“$pur\u id”
周围的引号,因此只需删除$pur\u id
,因为正如您所说,$pur\u id
是一个int
而不是字符串
,通过添加引号,您可以说它是一个字符串从“$pur\u id”
中删除引号,然后试试看。@SuperDJ:我认为它应该也适用于引号。@reverse是的,它应该适用,但最后他正在生成一个int字符串,这不是propor的方法it@SuperDJ我已经尝试删除引号,但没有效果。我的业务逻辑与您解释的相同。我需要更新pur_info_id=1(假设)的几个列。我不一定需要在这里设置pur\u info\u id列。我已尝试删除该字符串,但查询仍然不起作用。echo
找出实际的查询字符串,然后在独立的MySQL中运行它。查询是否真的按照它应该的方式运行?我在回显$\u服务器[“query\u STRING”]时得到了预期的结果,当我在独立的MySQL中运行查询时,查询也可以工作。我想在PHP代码中定义一个查询字符串,而不是内联查询,然后回显并直接从MySQL运行。对不起,Tim,但我还没有太多的经验,我显然不知道如何做到这一点。