'
シンボルをデータベースに挿入しようとしていますが、以下のコードがあります。mysql_real_escape_stringが動作しないのはなぜですか?
$actionurl =$_POST['actionurl'];
$newtitle = $_POST['newtitle'];
$newtitle = mysql_real_escape_string($newtitle);
$result2 = mysql_query("UPDATE links SET title='$newtitle' WHERE url='$actionurl'")
or die(mysql_error());
そして、私はこのエラーを取得
あなたのSQL構文でエラーが発生しています。あなたのMySQLサーバのバージョンに対応するマニュアルをチェックして、正しい構文を使って、近くにあるサンプルライブラリ(フォーラムスレッド)を1行目で起動してください ''
なぜ私は変数にmysql_real_escape_string
を使用していますか?
なぜ、非推奨APIを使用するのですか。 Prepared Statementsを使用すると、問題はなくなります。 –
レコードの場合、あなたは実際に 'newtitle'フィールドを使って' ''を挿入していますが、 '' actionurl''を使用していませんか? – Rick
[mysql_ *]を使用しないでください(http://stackoverflow.com/questions/12859942/why-shouldnt-i-use-mysql-functions-in-php?rq=1)。 mysql_ *関数は時代遅れであり、非推奨です(http://us3.php.net/manual/en/intro.mysql.php)。 ['MySQLi'](http://us3.php.net/manual/en/book.mysqli.php)または[' PDO'](http://us3.php.net/manual/en/intro。 pdo.php)を使用し、準備済みの文を使用します。 @juergendによれば、これはよりよいアプローチであり、あなたの問題を解決します。 –