我的更新cade出了什么问题?

时间:2013-02-20 14:57:19

标签: php mysql sql sql-update

我的代码更新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'"; 

但也没有用到

3 个答案:

答案 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)并准备带有绑定变量的语句。

相关问题