У меня есть код:
$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']));
Все запросы, кроме последнего, возвращают массив, поэтому в последнем запросе я называю их массивом, и с этим, похоже, все правильно, но:
ОБНОВЛЕНИЕ ОТ ПОСЛЕДСТВИЙ SET done_tasks = 3, failed_tasks = 0,
process_tasks = 0, avarage_mark = '67 .0000 ', WHERE employee_id = 19 An
произошла ошибка: SQLSTATE [42000]: синтаксическая ошибка или нарушение прав доступа:
1064 В вашем синтаксисе SQL есть ошибка; проверьте руководство, которое
соответствует вашей версии сервера MySQL для правильного использования синтаксиса
рядом с результатами SET done_tasks = 3, failed_tasks = 0,
process_tasks = 0, avarag 'в строке 1
Как видите, значения для вставки передаются по мере необходимости, но по какой-то причине возникает эта ошибка.