0

次のコードがあります

$id_post = mysql_real_escape_string($_POST['id']);
$forumid = (int)mysql_real_escape_string($_POST['forumid']);
$message = mysql_real_escape_string($_POST['message']);

mysql_query("UPDATE forum_reactions SET message = ".$message." WHERE id = ".$id_post." ");

メッセージは TEXT 列です

このエラーが発生します

SQL 構文にエラーがあります。MariaDB サーバーのバージョンに対応するマニュアルで、1 行目の「staat niet in het wordfilter lol WHERE id = 39」の近くで使用する正しい構文を確認してください。

4

2 に答える 2

3

$message の文字列を包含していないため、SQL はそれらをキーワードとして使用しようとしていますが、そうではありません。これを試して:

$id_post = mysql_real_escape_string($_POST['id']);
$forumid = (int)mysql_real_escape_string($_POST['forumid']);
$message = mysql_real_escape_string($_POST['message']);

mysql_query("UPDATE forum_reactions SET message = '".$message."' WHERE id = ".$id_post." ");

mysql_* 関数は非推奨であり、mysqli_* または PDO に移行する必要があります。

http://php.net/manual/en/function.mysql-query.php

この拡張モジュールは PHP 5.5.0 で非推奨になり、将来的に削除される予定です。代わりに、MySQLi または PDO_MySQL 拡張機能を使用する必要があります。詳細については、MySQL: API ガイドの選択および関連する FAQ も参照してください。この機能の代替手段は次のとおりです。

mysqli_query() PDO::クエリ()

于 2013-09-12T21:16:49.380 に答える