2010-12-26 32 views
0

コード:mysqlの実際のエスケープ文字列エラー

mysql_query("INSERT INTO Account(User, 
Pw, email) 
VALUES('mysql_real_escape_string($_POST[user])', 
'$pw','mysql_real_escape_string($_POST[email]) 
) ") or die(mysql_error()); 

がエラー:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''mysql_real_escape_string(123))' at line 1

答えて

3

問題はあなたがPHPのコマンドを引用しているということですので、それが渡されることは決してありません助けてくださいPHP

が、あなたの$ _POST [ユーザー]ユーザーが定義した一定でない場合は電話もので、多分1行にすべてのコードを詰め込むしないでください。この

mysql_query("INSERT INTO Account(User, Pw, email) VALUES('".mysql_real_escape_string($_POST['user'])."', '$pw','".mysql_real_escape_string($_POST['email'])."') ") or die(mysql_error()); 
+0

別の言い方をするには - これは、MySQLに渡さなっているクエリです: 'INSERT INTOアカウント(ユーザー、Pwを、電子メール)VALUES( 'mysql_real_escape_stringの($ _ POST [ユーザー])'、「$ PW '、' mysql_real_escape_string($ _ POST [email])) '...これは有効なMySQLクエリではありません(PHP関数を含んでいます)。この回答は問題を解決します。私は興味がありますが、$ pwもエスケープされるべきですか? – TehShrike

0

を試し、失敗することがあります。
追加のオペレーターごとに料金を支払う必要はありません。はっきりと書きます。

$user = mysql_real_escape_string($_POST['user']); 
$email = mysql_real_escape_string($_POST['email']); 
$pw = mysql_real_escape_string($pw); 

$query = "INSERT INTO Account(User,Pw, email) VALUES ('$user','$pw','$email')"; 
mysql_query($query) or trigger_error(mysql_error().$query); 
関連する問題