MySQL UPDATE查询PHP不起作用

时间:2018-01-25 11:25:57

标签: 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=

2 个答案:

答案 0 :(得分:1)

您的print(os.path.splitext(text_files[0])[0]) > new_categorized 值可能为空,或者无效。

  

[您的SQL语法有错误;检查与MySQL服务器版本对应的手册,以便在第1行''附近使用正确的语法

$param1表示该值为空;所以SQL正在做:

''

哪个无效(UPDATE wp_projects SET nbrDonation=(nbrDonation+1) WHERE projectID='' )不是预期的整数值。

解决方案:

您需要强制''值为interger。您可以typecasting in PHP执行此操作。

所以:

$param1

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

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

您不需要围绕ID号围绕$sql1 = "UPDATE wp_projects SET nbrDonation = nbrDonation+1 WHERE projectID = $param1"; do not need quotes的括号,因为它是数字。

请注意:

How to Prevent SQL Injection compromise in MySQL with PHP

答案 1 :(得分:0)

删除projectID

的单引号
{{1}}

立即尝试。