0

テーブルがInformatieであるSQLデータベースを更新するコードの何が問題で、フィールド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'"; 

また、それはうまくいきませんでした

4

3 に答える 3

1

文字列値は引用符で囲む必要があります

$sql = "UPDATE Informatie SET Text = '$text' WHERE InfoId = $infoid";

ifInfoIDも文字列の場合は、一重引用符で囲む必要もあります。

$sql = "UPDATE Informatie SET Text = '$text' WHERE InfoId = '$infoid'";

補足として、変数のSQL Injection値が外部から取得された場合、クエリは脆弱です。予防方法については、以下の記事をご覧ください。を使用すると、値を一重引用符で囲む必要がなくなります。PreparedStatements

于 2013-02-20T14:58:01.400 に答える
0

文字列の引用とは別に、変数名を混同しているようです。私はそれがそうある$textべきだと推測しています$info:

$sql = "UPDATE Informatie set Text = '" . mysql_real_escape_string($info) . "'
          WHERE InfoId = '" . mysql_real_escape_string($infoid) . "'";

テキストにたとえば文字が含まれている場合にクエリが壊れないように、文字列をエスケープする必要があることに注意してください'

しかし、実際には、PDO (または mysqli) と、変数がバインドされた準備済みステートメントに切り替える必要があります。

于 2013-02-20T15:06:28.703 に答える
0
$sql = "UPDATE Informatie set Text = '$text' WHERE InfoId = '$infoid'";
于 2013-02-20T15:00:23.397 に答える