1

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 ファイルで問題を抱えているのは非常に奇妙に見えるためです。

前もって感謝します。

4

1 に答える 1