我有一个问题,我无法找到帮助。当我删除ORDER BY和LIMIT添加时,此查询工作正常。但是使用它们会导致“在非对象上调用成员函数execute()” - Error。使用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();
有人有想法吗? 谢谢!
答案 0 :(得分:4)
问题是您使用的是多表UPDATE,而ORDER BY和LIMIT子句不能与它一起使用;但是它们适用于单表UPDATE。请参阅http://dev.mysql.com/doc/refman/5.0/en/update.html上的第2段。
答案 1 :(得分:2)
$db->prepare($sql)
返回null。 :)
也许prepare方法无法处理LIMIT / ORDER BY ...这是有道理的,因为你无法订购UPDATE查询。