Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 我的更新cade有什么问题?_Php_Mysql_Sql_Sql Update - Fatal编程技术网

Php 我的更新cade有什么问题?

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

更新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 = $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) . "'";