Php 我的更新cade有什么问题?
更新sql数据库的代码有什么问题?表是Informatie,我需要更新字段文本Php 我的更新cade有什么问题?,php,mysql,sql,sql-update,Php,Mysql,Sql,Sql Update,更新sql数据库的代码有什么问题?表是Informatie,我需要更新字段文本 $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
$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");
而且,如果字符串值必须被引用,那么它也不起作用
$sql = "UPDATE Informatie SET Text = '$text' WHERE InfoId = $infoid";
如果InfoID
也是一个字符串,那么还需要用单引号将其括起来
$sql = "UPDATE Informatie SET Text = '$text' WHERE InfoId = '$infoid'";
作为旁注,如果变量的值来自外部,则查询易受攻击。请看下面的文章,了解如何预防它。通过使用PreparedStatements
可以避免在值周围使用单引号
$text
应该是$info
:
$sql = "UPDATE Informatie set Text = '" . mysql_real_escape_string($info) . "'
WHERE InfoId = '" . mysql_real_escape_string($infoid) . "'";
请注意,如果文本包含例如“
字符,则需要转义字符串以避免查询中断
但您确实应该切换到PDO(或mysqli)并使用绑定变量准备语句。您尝试过什么调试?最简单的用例场景是什么?你得到了什么错误?你在哪里设置了
$text
?我的错它确实工作了,但是我把$infoid贴错了!谢谢@user2091723是否生成错误?@user2091723也在最后一个“$InfoId”中添加引号。@Meherzad如果InfoId
为int,则无需添加单引号。但是让我们向OP询问InfoId
的数据类型。
$sql = "UPDATE Informatie set Text = '$text' WHERE InfoId = '$infoid'";
$sql = "UPDATE Informatie set Text = '" . mysql_real_escape_string($info) . "'
WHERE InfoId = '" . mysql_real_escape_string($infoid) . "'";