我的代码更新sql数据库有什么问题,表是Informatie,我需要更新字段Text。
$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是正确的。
我试过
$sql = "UPDATE Informatie set Text = $text WHERE InfoId = '$infoid'";
但也没有用到
答案 0 :(得分:1)
字符串值。
$sql = "UPDATE Informatie SET Text = '$text' WHERE InfoId = $infoid";
如果InfoID
也是一个字符串,那么你还需要用单引号将其包起来。
$sql = "UPDATE Informatie SET Text = '$text' WHERE InfoId = '$infoid'";
作为旁注,如果变量的值( s )来自外部,则查询易受SQL Injection
攻击。请查看下面的文章,了解如何防止它。通过使用PreparedStatements
,您可以摆脱在值周围使用单引号。
答案 1 :(得分:0)
$sql = "UPDATE Informatie set Text = '$text' WHERE InfoId = '$infoid'";
答案 2 :(得分:0)
除了引用字符串之外,您似乎混淆了变量名称;我猜$text
应为$info
:
$sql = "UPDATE Informatie set Text = '" . mysql_real_escape_string($info) . "'
WHERE InfoId = '" . mysql_real_escape_string($infoid) . "'";
请注意,如果文本包含例如'
字符,则需要转义字符串以避免查询中断。
但你真的应该切换到PDO(或mysqli)并准备带有绑定变量的语句。