У меня проблема с запросом MySQL при запуске в php. Он отлично работает, когда я запускаю его в PHPMyAdmin или SequelPro, но когда он скопирован в файл PHP, он предназначен для запуска, он перестает работать.
Запрос предназначен для получения данных из нескольких таблиц, которые связаны с первичными ключами, а затем помещает эти данные в соответствующие идентичные таблицы. Я знаю, что это странно, но нужно это делать.
Запрос (как используется в файле PHP) выглядит следующим образом:
for($x = 0; $x < count($REQIDARRAY); $x++){
$sql="BEGIN;
INSERT INTO `Request`
SELECT NULL AS `RequestID`, `ModCode`, `RoomID`, `Students`, `Priority`, `Day`, `StartTime`, `Length`, `Semester`, `DateAdded`, `SpecialRequests`
FROM RequestTEMP
WHERE RequestTEMP.RequestID=\"".$REQIDARRAY[$x]."\";
INSERT INTO `Week`
SELECT `WeekNumber` , LAST_INSERT_ID() AS `RequestID`
FROM `WeekTEMP`
WHERE WeekTEMP.RequestID=\"".$REQIDARRAY[$x]."\"';
INSERT INTO `RequestFacilities`
SELECT LAST_INSERT_ID() AS `RequestID` , `FacilityID`
FROM `RequestFacilitiesTEMP`
WHERE RequestFacilitiesTEMP.RequestID=\"".$REQIDARRAY[$x]."\"';
DELETE FROM `RequestTEMP` WHERE RequestID=\"".$REQIDARRAY[$x]."\";
DELETE FROM `RequestFacilitiesTEMP` WHERE RequestID=\"".$REQIDARRAY[$x]."\";
DELETE FROM `WeekTEMP` WHERE RequestID=\"".$REQIDARRAY[$x]."\";
COMMIT;";
$DB->Query('TransferMe' , $sql);
}
Я подтвердил, что $ REQIDARRAY [$ x] возвращает правильные значения.
Когда он запускается в SequelPro, все, что меняется, это то, что я бы изменил
RequestID=\"".$REQIDARRAY[$x]."\"
до
'RequestID='123'
Сообщение об ошибке в PHP:
У вас есть ошибка в вашем синтаксисе SQL; проверьте руководство, соответствующее вашей версии сервера MySQL, на предмет правильного синтаксиса, который можно использовать рядом с «INSERT INTO Request
SELECT NULL AS RequestID
, ModCode
, RoomID
,« Student »в строке 2.
Версия MySQL - 5.1.60.
Я понятия не имею, что является причиной проблемы, я также пробовал жесткие значения кода для RequestID в файл PHP, и он все еще возвращает ту же ошибку.
Любая помощь высоко ценится!