Не могу увидеть ошибку в запросе

autodip

Новичок
Подскажите пожалуста где ошибка. Смотрю на запрос вроде все правильно, но ошибка идет.

PHP:
	$ordcopy = 'INSERT INTO `orderscomplete` (`lock`,`oper`,`disp`,`ordertype`,`orderstate`,`preorder`,`roadside`,`phone`,`town`,`street`,`house`,`porch`,`apart`,`zonefrom`,`meet`,`addressfrom`,`addressto`,`townto`,`streetto`,`houseto`,`zoneto`,`route`,`suburb`,`distance`,`distcity`,`distsuburb`,`client`,`clientname`,`prefcar`,`driver`,`drivershift`,`channel`,`ordertime`,`pretime`,`driverstart`,`driverwait`,`clientringup`,`driverload`,`completetime`,`endtask`,`cash`,`dcard`,`driveupprice`,`waitprice`,`puredriveprice`,`ordersum`,`paysum`,`discount`,`carddiscount`,`drvcharged`,`opercharged`,`dispcharged`,`info`,`legend_drv`,`legend_order`,`usecldiscount`,`cldbalance`,`drvbonus`,`msgid`,`waittime`,`waitingstart`,`oldnum`,`ordercompany`,`passenger`,`ordervendor`,`stopid`,`podachatime`,`usemanualdist`,`worktime`,`closeuserid`,`linecolumn`,`ordervendorexecute`,`driverfororder`,`oper2`,`mess`,`messtime`,`ordercounts`,`addballs`,`timeorderproc`,`clientphone`,`msgidtime`,`notusecommondiscount`,`driversetorders`,`orderwasdrivers`,`javamess`,`proctime`,`carddiscountdelta`,`remotenote`,`recall`,`remotenotetime`,`remotevendorphone`,`remoteorderid`,`source` FROM `orders` WHERE `num` = :ordnum)';
	$ordcopyStatement = $pdo->prepare($ordcopy);
	$ordcopyStatement->bindParam(':ordnum', $ordnum);
	$ordcopyStatement->execute();
Выводиться ошибка
Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[42000]: Syntax error or access violation: 1064 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 'FROM `orders` WHERE `num` = '6')' at line 1' in /srv/handlerequest.php:1179
Stack trace:
#0 /srv/taxi/handlerequest.php(1179): PDOStatement->execute()
#1 [internal function]: handleRequest_Done(Array)
#2 /srv/handlerequest.php(1376): call_user_func_array('handleRequest_D...', Array)
#3 /srv/server.php(168): handleRequest(Array)
#4 /srv/server.php(129): interact(Resource id #13)
#5 /srv/server.php(78): handle_client(Resource id #6, Resource id #13)
#6 /srv/server.php(20): server_loop('localhost', 9999)
 

Вурдалак

Продвинутый новичок
Как же правильно, когда закрывающая скобка стоит не там, где надо?
 

Фанат

oncle terrible
Команда форума
Жесть
как вы в этом запрое вообще что-то видите.
я два раза проскроллил, но ничего не нашёл, только в глазах зарябило
 

KorP

Новичок
PHP:
INSERT INTO `orderscomplete` FROM `orders` WHERE `num` = :ordnum
а? пойду ещё посплю
 

autodip

Новичок
Не. Закрывающая скобка похоже стоит там где надо. А если неправильно, то где она должна быть?

У меня уже от этого у самого в глазах рябит.
Уже левонаклонные кавычки убирал, писал крупными и мелкими буквами. В общем уже извращаться начал от отчаяния.

В принципе содрал со своего же запросика, в нем нет SELECT, но работает на ура. Вот только решил использовать PDO и тут такая байда вылезла.

PHP:
$ordcopy = mysql_query("INSERT INTO `orderscomplete` (`lock`,`oper`,`disp`,`ordertype`,`orderstate`,`preorder`,`roadside`,`phone`,`street`,`house`,`porch`,`apart`,`zonefrom`,`meet`,`addressfrom`,`addressto`,`streetto`,`houseto`,`zoneto`,`route`,`suburb`,`distance`,`distcity`,`distsuburb`,`client`,`clientname`,`prefcar`,`driver`,`drivershift`,`channel`,`ordertime`,`pretime`,`driverstart`,`driverwait`,`clientringup`,`driverload`,`completetime`,`endtask`,`cash`,`dcard`,`driveupprice`,`waitprice`,`puredriveprice`,`ordersum`,`paysum`,`discount`,`carddiscount`,`drvcharged`,`opercharged`,`dispcharged`,`info`,`legend_drv`,`legend_order`,`usecldiscount`,`cldbalance`,`drvbonus`,`msgid`,`waittime`,`waitingstart`,`ordercompany`,`passenger`,`ordervendor`,`stopid`,`podachatime`,`usemanualdist`,`worktime`,`closeuserid`,`linecolumn`,`ordervendorexecute`,`driverfororder`,`oper2`,`mess`,`messtime`,`ordercounts`,`addballs`,`timeorderproc`,`clientphone`,`notusecommondiscount`,`oldnum`) SELECT `lock`,`oper`,`disp`,`ordertype`,`orderstate`,`preorder`,`roadside`,`phone`,`street`,`house`,`porch`,`apart`,`zonefrom`,`meet`,`addressfrom`,`addressto`,`streetto`,`houseto`,`zoneto`,`route`,`suburb`,`distance`,`distcity`,`distsuburb`,`client`,`clientname`,`prefcar`,`driver`,`drivershift`,`channel`,`ordertime`,`pretime`,`driverstart`,`driverwait`,`clientringup`,`driverload`,`completetime`,`endtask`,`cash`,`dcard`,`driveupprice`,`waitprice`,`puredriveprice`,`ordersum`,`paysum`,`discount`,`carddiscount`,`drvcharged`,`opercharged`,`dispcharged`,`info`,`legend_drv`,`legend_order`,`usecldiscount`,`cldbalance`,`drvbonus`,`msgid`,`waittime`,`waitingstart`,`ordercompany`,`passenger`,`ordervendor`,`stopid`,`podachatime`,`usemanualdist`,`worktime`,`closeuserid`,`linecolumn`,`ordervendorexecute`,`driverfororder`,`oper2`,`mess`,`messtime`,`ordercounts`,`addballs`,`timeorderproc`,`clientphone`,`notusecommondiscount`,`num` FROM `orders` WHERE `num`=$ordnum");
           if (!$ordcopy)       {
           						$agi->verbose("Ошибка базы данных INSERT INTO `orderscomplete");
            					echo "Ошибка базы данных INSERT INTO `orderscomplete` in file handler/function_closeorder and str.1489. MySQL пишет:", mysql_error();
                                }  else {
                                        $agi->verbose("Запись была успешно добавлена ordcopy ");
                                        $agi->verbose("All OK");
 

autodip

Новичок
PHP:
INSERT INTO `orderscomplete` FROM `orders` WHERE `num` = :ordnum
Не подходит. Там (в orderscomplete) num сам выставляется и он отличный от того что в orders. Поэтому приходится такую длинную строку тащить.
 

autodip

Новичок
Не. Закрывающая скобка похоже стоит там где надо. А если неправильно, то где она должна быть?

У меня уже от этого у самого в глазах рябит.
Уже левонаклонные кавычки убирал, писал крупными и мелкими буквами. В общем уже извращаться начал от отчаяния.

В принципе содрал со своего же запросика, в нем нет SELECT, но работает на ура. Вот только решил использовать PDO и тут такая байда вылезла.

PHP:
$ordcopy = mysql_query("INSERT INTO `orderscomplete` (`lock`,`oper`,`disp`,`ordertype`,`orderstate`,`preorder`,`roadside`,`phone`,`street`,`house`,`porch`,`apart`,`zonefrom`,`meet`,`addressfrom`,`addressto`,`streetto`,`houseto`,`zoneto`,`route`,`suburb`,`distance`,`distcity`,`distsuburb`,`client`,`clientname`,`prefcar`,`driver`,`drivershift`,`channel`,`ordertime`,`pretime`,`driverstart`,`driverwait`,`clientringup`,`driverload`,`completetime`,`endtask`,`cash`,`dcard`,`driveupprice`,`waitprice`,`puredriveprice`,`ordersum`,`paysum`,`discount`,`carddiscount`,`drvcharged`,`opercharged`,`dispcharged`,`info`,`legend_drv`,`legend_order`,`usecldiscount`,`cldbalance`,`drvbonus`,`msgid`,`waittime`,`waitingstart`,`ordercompany`,`passenger`,`ordervendor`,`stopid`,`podachatime`,`usemanualdist`,`worktime`,`closeuserid`,`linecolumn`,`ordervendorexecute`,`driverfororder`,`oper2`,`mess`,`messtime`,`ordercounts`,`addballs`,`timeorderproc`,`clientphone`,`notusecommondiscount`,`oldnum`) SELECT `lock`,`oper`,`disp`,`ordertype`,`orderstate`,`preorder`,`roadside`,`phone`,`street`,`house`,`porch`,`apart`,`zonefrom`,`meet`,`addressfrom`,`addressto`,`streetto`,`houseto`,`zoneto`,`route`,`suburb`,`distance`,`distcity`,`distsuburb`,`client`,`clientname`,`prefcar`,`driver`,`drivershift`,`channel`,`ordertime`,`pretime`,`driverstart`,`driverwait`,`clientringup`,`driverload`,`completetime`,`endtask`,`cash`,`dcard`,`driveupprice`,`waitprice`,`puredriveprice`,`ordersum`,`paysum`,`discount`,`carddiscount`,`drvcharged`,`opercharged`,`dispcharged`,`info`,`legend_drv`,`legend_order`,`usecldiscount`,`cldbalance`,`drvbonus`,`msgid`,`waittime`,`waitingstart`,`ordercompany`,`passenger`,`ordervendor`,`stopid`,`podachatime`,`usemanualdist`,`worktime`,`closeuserid`,`linecolumn`,`ordervendorexecute`,`driverfororder`,`oper2`,`mess`,`messtime`,`ordercounts`,`addballs`,`timeorderproc`,`clientphone`,`notusecommondiscount`,`num` FROM `orders` WHERE `num`=$ordnum");
           if (!$ordcopy)       {
           						$agi->verbose("Ошибка базы данных INSERT INTO `orderscomplete");
            					echo "Ошибка базы данных INSERT INTO `orderscomplete` in file handler/function_closeorder and str.1489. MySQL пишет:", mysql_error();
                                }  else {
                                        $agi->verbose("Запись была успешно добавлена ordcopy ");
                                        $agi->verbose("All OK");
Поменялись только клички полей (немного функционал сервера изменился)
 

autodip

Новичок
О блин! Что значит глаз не замыленный. Конечно я тогда делал выборку побратимов из ОРДЕРЗ.

KorP
, Спасибо!
 

KorP

Новичок
PHP:
INSERT INTO `orderscomplete` FROM `orders` WHERE `num` = :ordnum
Не подходит. Там (в orderscomplete) num сам выставляется и он отличный от того что в orders. Поэтому приходится такую длинную строку тащить.
что не подходит? я лишь копирнул твой запрос, убрал длинны перечень полей, что б ты быстрее понял что у тебя за ошибка
 

autodip

Новичок
Не. Все ОК, KorP. Действительно не хватало селекта.

Сейчас все работает. вот финальная строчка
PHP:
$ordcopy = 'INSERT INTO `orderscomplete` (`lock`,`oper`,`disp`,`ordertype`,`orderstate`,`preorder`,`roadside`,`phone`,`town`,`street`,`house`,`porch`,`apart`,`zonefrom`,`meet`,`addressfrom`,`addressto`,`townto`,`streetto`,`houseto`,`zoneto`,`route`,`suburb`,`distance`,`distcity`,`distsuburb`,`client`,`clientname`,`prefcar`,`driver`,`drivershift`,`channel`,`ordertime`,`pretime`,`driverstart`,`driverwait`,`clientringup`,`driverload`,`completetime`,`endtask`,`cash`,`dcard`,`driveupprice`,`waitprice`,`puredriveprice`,`ordersum`,`paysum`,`discount`,`carddiscount`,`drvcharged`,`opercharged`,`dispcharged`,`info`,`legend_drv`,`legend_order`,`usecldiscount`,`cldbalance`,`drvbonus`,`msgid`,`waittime`,`waitingstart`,`oldnum`,`ordercompany`,`passenger`,`ordervendor`,`stopid`,`podachatime`,`usemanualdist`,`worktime`,`closeuserid`,`linecolumn`,`ordervendorexecute`,`driverfororder`,`oper2`,`mess`,`messtime`,`ordercounts`,`addballs`,`timeorderproc`,`clientphone`,`msgidtime`,`notusecommondiscount`,`driversetorders`,`orderwasdrivers`,`javamess`,`proctime`,`carddiscountdelta`,`remotenote`,`recall`,`remotenotetime`,`remotevendorphone`,`remoteorderid`,`source`) select `lock`,`oper`,`disp`,`ordertype`,`orderstate`,`preorder`,`roadside`,`phone`,`town`,`street`,`house`,`porch`,`apart`,`zonefrom`,`meet`,`addressfrom`,`addressto`,`townto`,`streetto`,`houseto`,`zoneto`,`route`,`suburb`,`distance`,`distcity`,`distsuburb`,`client`,`clientname`,`prefcar`,`driver`,`drivershift`,`channel`,`ordertime`,`pretime`,`driverstart`,`driverwait`,`clientringup`,`driverload`,`completetime`,`endtask`,`cash`,`dcard`,`driveupprice`,`waitprice`,`puredriveprice`,`ordersum`,`paysum`,`discount`,`carddiscount`,`drvcharged`,`opercharged`,`dispcharged`,`info`,`legend_drv`,`legend_order`,`usecldiscount`,`cldbalance`,`drvbonus`,`msgid`,`waittime`,`waitingstart`,`oldnum`,`ordercompany`,`passenger`,`ordervendor`,`stopid`,`podachatime`,`usemanualdist`,`worktime`,`closeuserid`,`linecolumn`,`ordervendorexecute`,`driverfororder`,`oper2`,`mess`,`messtime`,`ordercounts`,`addballs`,`timeorderproc`,`clientphone`,`msgidtime`,`notusecommondiscount`,`driversetorders`,`orderwasdrivers`,`javamess`,`proctime`,`carddiscountdelta`,`remotenote`,`recall`,`remotenotetime`,`remotevendorphone`,`remoteorderid`,`source` FROM `orders` WHERE `num` = :ordnum';
	$ordcopyStatement = $pdo->prepare($ordcopy);
	$ordcopyStatement->bindParam(':ordnum', $ordnum);
	$ordcopyStatement->execute();
 
Сверху