PHPでオリジナル(変更なし)のezsql-mysqlクラスを使用しています。私のデータベース エンジンは innodb です。すべてがうまく機能しますが、1 ページに 1 つのクエリしかありません。他の作業ページからコード ベースをコピーすると、クラスや関数など、必要なものはすべて既に追加されています。問題のあるクエリの直前に、正常に動作している別のクエリがあります。また、問題のあるクエリは、phpmyadmin に直接コピーして貼り付けると、php ファイルの外部で機能します。
$db->query("
BEGIN;
INSERT INTO places (name, latitude, longitude)
VALUES ('Place of $event_name', '$latitude', '$longitude');
INSERT INTO events (place_code, event_name, start_time, owner_id)
VALUES (LAST_INSERT_ID(),'$event_name', '$start_time', '$owner_id');
COMMIT;
");
//this echo part was just for copying to phpmyadmin
echo "
BEGIN;
INSERT INTO places (name, latitude, longitude)
VALUES('Place of $event_name', '$latitude', '$longitude');
INSERT INTO events (place_code, event_name, start_time, owner_id)
VALUES(LAST_INSERT_ID(),'$event_name', '$start_time', '$owner_id');
COMMIT;
";
そのページを使用するたびに、サーバーはそのページのディレクトリにエラー ログを生成します。エラーは
[29-Sep-2013 12:58:00] PHP Warning: 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 'INSERT INTO places (name, latitude, longitude)
VALUES ('Place of asd', '39.76' at line 2 in /home7/eyselnet/public_html/business/injoin/demo/sql/ez_sql_mysql.php on line 233
そして、phpmyadminで同じクエリをコピーして貼り付けると、これが起こります
BEGIN;# MySQL returned an empty result set (i.e. zero rows).
INSERT INTO places (name, latitude, longitude) VALUES('Place of asd', '39.7617657', '30.5056083');# 1 row affected.
INSERT INTO events (place_code, event_name, start_time, owner_id) VALUES(LAST_INSERT_ID(),'asd', '1357884000', '1');# 1 row affected.
COMMIT;# MySQL returned an empty result set (i.e. zero rows).
何が問題なのかを教えてください。最悪の場合、コードを変更して別の方法で動作させることができます。しかし、その代わりに、私は理解するための助けを求めています. phpmyadmin で正常に動作するクエリが php ファイルで問題を抱えているのは非常に奇妙に見えるためです。
前もって感謝します。