-6

$idこれは、値をデータベース$strに挿入するために使用するコードです。$name

$r=mysql_query("INSERT INTO varta(id,data,name) VALUES('$id','$str','$name');");

しかし、上記のステートメントの構文エラーが発生します。何故ですか?私の構文は本当に間違っていますか?

4

2 に答える 2

4

検索語の間に空白を追加してみて、入力をエスケープするようにしてください。

$id = mysql_real_escape_string($id);
$str = mysql_real_escape_string($str);
$name = mysql_real_escape_string($name);

$r=mysql_query("INSERT INTO varta (id,data,name) VALUES ('$id','$str','$name');");

またはさらに良い-MySQLiまたはPDOを見て、準備されたステートメントを使用してください。

于 2012-08-15T12:56:47.867 に答える
1

入力変数が正しくエスケープされている限り、コードは額面通りに見えます。これを試して、実行中のステートメントを確認してください。

$s = "INSERT INTO varta (id,data,name) VALUES('$id','$str','$name');";
echo $s;
$r = mysql_query($s);

変数に "Daisy O'Donnel" などのアポストロフィが含まれていないことを確認してください (これは、変数を正しくエスケープしていないことを示しています)。

于 2012-08-15T12:54:24.157 に答える