MySQL UPDATE Query PHP 不起作用



我正在尝试更新列,列值没有修改,你能帮我吗?

我正在尝试的代码:-

global $wpdb;
$param1 = $_GET['projectID'];
$sql1 = "UPDATE wp_projects SET nbrDonation = nbrDonation+1 WHERE projectID = $param1";
$wpdb->query($sql1);
echo $param1;
echo $sql1;

这是我得到的错误:

Erreur de la base de données WordPress : [You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1] UPDATE wp_projects SET nbrDonation=nbrDonation+1 WHERE projectID=
UPDATE wp_projects SET nbrDonation=nbrDonation+1 WHERE projectID=

似乎您的$param1值可能为空,或者无效。

[您的 SQL 语法有误;请查看与您的 MySQL 服务器版本对应的手册,了解在第 1 行的 '' 附近使用的正确语法]

''意味着该值为空;因此SQL正在执行:

UPDATE wp_projects SET nbrDonation=(nbrDonation+1) WHERE projectID=''

这是无效的,因为没有任何东西(''(不是预期的整数值。

溶液:

您需要强制$param1值是中间的。您可以通过在 PHP 中进行类型转换来执行此操作。

所以:

$param1 = (int)$_GET['projectID']; // forces it to a numeric value, 1 or 0

这将意味着 SQL 将正常工作:

$sql1 = "UPDATE wp_projects SET nbrDonation = nbrDonation+1 WHERE projectID = $param1";

您不需要nbrDonation+1两边的括号,也不需要 ID 号两边的引号,因为它是数字。

<小时 />

另请注意:

如何使用PHP防止MySQL中的SQL注入妥协

删除项目ID的单引号

$sql1="UPDATE wp_projects SET nbrDonation=(nbrDonation+1) WHERE projectID=$param1";

现在就试试。

最新更新