-3

次のようにMySQLテーブルに値を挿入していますphp

$journey = $_POST['way'];
$from = $_POST['from'];
$to = $_POST['to'];
$dpdt = $_POST['dp_date'];
$rtdt = $_POST['rt_date'];
$fare = $_POST['fare'];
$sql = "insert into tours set " .
        "journey='$journey', from='$from', to='$to', dp_date=CAST('$dpdt' AS DATE), " .
        "rt_date=CAST('$rtdt' AS DATE), fare='$fare'";

試してみるとecho、次の$sqlような出力が得られます。

insert into tours set journey='round', from='Aurangabad', to='Kashmir', dp_date=CAST('27-08-2013' AS DATE), rt_date=CAST('21-08-2013' AS DATE), fare='2500'

しかし、私は継続的に同じエラーメッセージを受け取ります:

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 'from=Aurangabad, to='Kashmir', dp_date=CAST('27-08-2013' AS DATE), rt_date=CAST(' at line 1

'列名の値の周りを削除しようとしても。
データの挿入に同じ構文を使用していますが、問題なく動作しています。
これの何が問題なのですか?
なぜ MySQL は、このようなひどい間違いに対して適切なエラーを出さないのでしょうか?

4

4 に答える 4

8
`from`='$from', `to`='$to'

FROMは予約語で、その前後にバッククォートを使用します。

于 2013-08-19T12:48:27.503 に答える
3

FROMは予約済みのキーワードであり、使用しないでください。ここを参照

于 2013-08-19T12:50:58.093 に答える
2

FROMは SQL キーワードです。区切り記号なしで列名として使用しないでください。

于 2013-08-19T12:48:46.420 に答える
2

「from」と「to」は予約語です

このようにしてみてください

[from] = 'Aurangabad', [to] ='Kashmir'
于 2013-08-19T12:48:42.073 に答える