我的更新cade有什么问题?
我的代码更新sql数据库的表是什么是错误信息,我需要更新字段文本。我的更新cade有什么问题?
$info = nl2br($_POST["info"]);
echo $info."<br>";
$infoid = $_POST["infoid"];
echo $infoid;
echo "<br>Info ID : $infoid";
$sql = "UPDATE Informatie set Text = $text WHERE InfoId = $infoid";
$query = mysql_query("$sql");
echo $ info和$ infoid是正确的。
我tryd
$sql = "UPDATE Informatie set Text = $text WHERE InfoId = '$infoid'";
还,但它没有工作
字符串值必须加引号。
$sql = "UPDATE Informatie SET Text = '$text' WHERE InfoId = $infoid";
如果InfoID
也是一个字符串,那么你还需要使用单引号把它包起来。
$sql = "UPDATE Informatie SET Text = '$text' WHERE InfoId = '$infoid'";
作为旁注,查询是用SQL Injection
脆弱,如果变量的值(小号)从外部来了。请看下面的文章,了解如何防止它。通过使用PreparedStatements
你可以摆脱使用单引号围绕值。
我的错,它确实工作,但我发布$ infoid错误!谢谢 ! – 2013-02-20 15:01:24
@ user2091723它会产生错误吗? – 2013-02-20 15:02:01
@ user2091723也为最后一个'$ InfoId'添加引号。 – Meherzad 2013-02-20 15:02:36
$sql = "UPDATE Informatie set Text = '$text' WHERE InfoId = '$infoid'";
除此之外,你似乎混淆了变量名;我猜测,$text
应该$info
:
$sql = "UPDATE Informatie set Text = '" . mysql_real_escape_string($info) . "'
WHERE InfoId = '" . mysql_real_escape_string($infoid) . "'";
注意,你需要的,如果文本例如包含'
字符逃脱你的字符串,以避免破坏您的查询。
但是你真的应该切换到PDO(或mysqli)并准备带有绑定变量的语句。
您尝试过哪些调试?什么是最简单的用例场景?你会得到什么错误? – 2013-02-20 14:58:08
你在哪儿设置'$ text'? – 2013-02-20 14:59:19