-1

ローカルマシンから開発サーバーにアプリケーションをアップロードするときにエラーが発生しました。ローカルで動作するテーブル(WAMP、PHP 5.4.3、MySQL 5.5.24)にレコードを挿入しようとしていますが、開発サーバー(IIS、PHP 5.3.2、MySQL 5.0.88)で失敗します。

私の質問は:

$SQL="INSERT INTO log(`dev_id`,`website_id`,`time_entered`,`location`,`page`,`reason`,`backup_file`,`status`) VALUES('".$DevID."','".$WebsiteID."','".time()."','".$Location."','".$Page."','".$Reason."','".$BackupFile."','".$Status."')";

ご覧のとおり、私はそれだと思ったので、フィールドをバックティックしました。引用されていない数字が問題を引き起こしていると思ったので、私もすべてを引用しました。また、これをプリペアドステートメントに変換し、次のような同じエラーが発生しました。

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 'log(`dev_id`,`website_id`,`time_entered`,`location`,`page`,`reason`,`backup_file' at line 1

私は解決策を探し回っていましたが、エラー1064はトリッキーなもののようです。私はそれがソフトウェアバージョンの大きな違いに関係していると思います。

4

1 に答える 1

1

予約キーワードであるテーブル名もエスケープする必要があります。

INSERT INTO `log` (...)

そこで行ったことは、 LOG関数を呼び出すことに似ています。

于 2012-10-31T14:28:55.040 に答える