У меня есть код:
$done_tasks = R::getCol('SELECT count(*) FROM tasks WHERE `status` = "done" AND id IN
(SELECT task_id FROM tasksemployess WHERE employee_id = ?)', array($_SESSION['employee']['id']));
$failed_tasks = R::getCol('SELECT count(*) FROM tasks WHERE `status` = "failed" AND id IN
(SELECT task_id FROM tasksemployess WHERE employee_id = ?)', array($_SESSION['employee']['id']));
$process_tasks = R::getCol('SELECT count(*) FROM tasks WHERE `status` = "in_process"
OR `status` = "cheking" OR `status` = "remaking" AND id IN
(SELECT task_id FROM tasksemployess WHERE employee_id = ?)', array($_SESSION['employee']['id']));
$avg_mark = R::getCol('SELECT avg(mark) FROM tasks WHERE id IN
(SELECT task_id FROM tasksemployess WHERE employee_id = ?)', array($_SESSION['employee']['id']));
R::exec('UPDATE FROM persresults SET done_tasks = ?, failed_tasks = ?, process_tasks = ?, avarage_mark = ?,
WHERE employee_id = ?',array($done_tasks[0], $failed_tasks[0], $process_tasks[0], $avg_mark[0], $_SESSION['employee']['id']));
Все запросы кроме последнего возвращают массив, поэтому в последнем запросе я обращаюсь к ним как к массиву и с этим вроде бы все правильно, но:
ОБНОВЛЕНИЕ ИЗ persresults SET done_tasks = 3, failed_tasks = 0, process_tasks = 0, avarage_mark = '67.0000', WHERE employee_id = 19 Произошла ошибка: SQLSTATE [42000]: синтаксическая ошибка или нарушение прав доступа: 1064 У вас есть ошибка в синтаксисе SQL ; проверьте руководство, соответствующее версии вашего сервера MySQL, для правильного синтаксиса для использования рядом с «FROM persresults SET done_tasks = 3, failed_tasks = 0, process_tasks = 0, avarag» в строке 1
Как видите, значения для вставки передаются по мере необходимости, но почему-то возникает эта ошибка.
UPDATE
не должно бытьFROM
. Просто удалите его. - person Nick   schedule 12.05.2019