Я использую оригинальный (без изменений) класс ezsql-mysql в php. мой механизм базы данных является innodb. все работает отлично, но один запрос на одной странице. Когда я копирую базу кода из некоторых других рабочих страниц, все необходимое, как классы и функции, уже добавлено. Перед запросом проблемы есть еще один запрос, который работает нормально. Кроме того, запрос с проблемой работает вне файла php, когда я напрямую копирую его в phpmyadmin.Mysql Query не работает в файле 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-файле.
благодарит заранее.
Не делайте 'begin' и' commit' как часть того же запроса ... если вы используете транзакционный движок db, делайте это как отдельные запросы –