-5

在编写以下代码后遇到了我从未见过的错误:

$query= "UPDATE `Pharm_Log` SET `text` = ". $bloodtest . " WHERE `id` = " . $patientid;
   $result = mysql_query($query) or die(mysql_error());

我的错误信息是这样的

“您的 SQL 语法有错误;请查看与您的 MySQL 服务器版本相对应的手册,以id在第 1 行的‘压力测试:235/43 WHERE = 1’附近使用正确的语法”

任何人都知道如何解决这个问题?将不胜感激

4

1 回答 1

8

字符串文字(的值$bloodtest)必须用单引号括起来,

$query= "UPDATE `Pharm_Log` SET `text` = '". $bloodtest . "' WHERE `id` = " . $patientid;
$result = mysql_query($query) or die(mysql_error());

作为旁注,SQL Injection如果变量的值(s)来自外部,则查询很容易受到攻击。请看下面的文章,了解如何预防。通过使用PreparedStatements,您可以摆脱在值周围使用单引号。

于 2013-02-12T14:17:13.537 回答