Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/247.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 某物';更新查询中有什么错误_Php_Mysql_Forms - Fatal编程技术网

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,但我还没有太多的经验,我显然不知道如何做到这一点。