问题描述
||
我有一个问题,我找不到帮助。当我删除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查询。