MySQL:使用ORDER BY时,使用UPDATE和JOIN进行查询时出错

问题描述

|| 我有一个问题,我找不到帮助。当我删除ORDER BY和LIMIT加法时,此查询工作正常。但是,使用它们会导致对非对象的成员函数调用成员函数execute()”错误。使用LEFT或INNER JOIN没什么区别。
$sql = \"UPDATE tasks JOIN service
ON tasks_account_id = service_id
SET `tasks_status` = \'prog\',tasks_user = \'\".$user.\"\' 
WHERE `tasks_status` = \'free\' AND `service_besetzt` = \'0\'
ORDER BY `tasks_client_date` ASC,`tasks_id` ASC
LIMIT \".$limit.\"\";
$result = $db->prepare( $sql ); 
$result->execute();
有人知道吗? 谢谢!     

解决方法

        问题是您使用的是多表UPDATE,而ORDER BY和LIMIT子句不能与它一起使用。但是,它们与单表UPDATE一起使用时效果很好。请参考http://dev.mysql.com/doc/refman/5.0/en/update.html上的第2段。     ,        
$db->prepare($sql)
返回null。 :) 也许prepare方法无法处理LIMIT / ORDER BY ...,这很有意义,因为您无法订购UPDATE查询。