У меня есть запрос, который при запуске из phpMyAdmin работает, однако, когда он интегрирован в веб-сайт, написанный на Perl, он терпит неудачу и выдает ошибки. Оба они запускаются с соединением с одной базой данных и со стороны кодирования/форматирования при интеграции в Веб-сайт, все правильно и аналогично другим запросам.
Любая помощь с этим будет очень оценена - Спасибо!
Запрос MySQL:
CREATE TEMPORARY TABLE tmp_lecture_days (
timeslot_id int(50)
);
INSERT INTO tmp_lecture_days (timeslot_id)
SELECT DISTINCT tab_appointment.timeslot_id
FROM tab_appointment WHERE lecture_id = '1115';
SELECT COUNT(timeslot_id)
FROM tmp_lecture_days;
Запрос MySQL в Perl:
$query
= &statement_database(
"CREATE TEMPORARY TABLE tmp_lecture_days (
timeslot_id int(50)
);
INSERT INTO tmp_lecture_days (timeslot_id)
SELECT DISTINCT tab_appointment.timeslot_id
FROM tab_appointment WHERE lecture_id = '1115';
SELECT COUNT(timeslot_id)
FROM tmp_lecture_days;");
my ($days) = $query->fetchrow_array;
Журнал ошибок:
7.3.2011 10:14:12 Ошибка У вас возникла ошибка в синтаксисе SQL; проверьте руководство, соответствующее версии вашего сервера MySQL, для правильного синтаксиса для использования рядом с '; 7.3.2011 10:14:12 ошибка INSERT INTO tmp_lecture_days (timeslot_id) 7.3.2011 10:14:12 ошибка SELECT DISTINCT tab_appoi 'в строке 3
Я думаю, что следующий запрос эквивалентен 3 запросам:
SELECT COUNT(DISTINCT timeslot_id) FROM tab_appointment
WHERE lecture_id = '1115'
Подробнее см. справочное руководство по MySQL для COUNT() здесь.
Если вы используете DBI для выполнения запроса, вам не разрешено вставлять в него несколько инструкций. Попробуйте поместить CREATE TABLE ...
в один запрос и INSERT ...
в другой.