我想使用带有timediff函数的子查询来填充数据库中的字段...
在我看来,这是一个语法错误。所以这是我的代码:
$sql = "INSERT INTO paros (tipo, descripcion, ho, hf, totaltiempo(select
timediff(hf, ho) from paros)) values (?,?,?,?,?)";
$q = $pdo->prepare($sql);
$q->execute(array($tipo,$descripcion, $startTime, $endTime,
$totaltiempo));
Database::disconnect();
我收到此错误:
致命错误:未被捕获的PDOException:SQLSTATE [42000]:语法错误或访问冲突:1064您的SQL语法有错误;请参阅附录A。检查与您的MariaDB服务器版本相对应的手册以获取正确的语法,以在'(从paros中选择timediff(hf,ho)))值附近使用'Paro no programado','Ajuste de pa'在C:\ xampp \ htdocs \ oeemoldeo \ paros.php:43堆栈跟踪:#0 C:\ xampp \ htdocs \ oeemoldeo \ paros.php(43):PDOStatement-> execute(Array)#1 {main}抛出第43行
最佳答案
确保您的select
仅返回一个记录,并符合where
子句。然后使用:
INSERT INTO paros (tipo, descripcion, ho, hf, totaltiempo)
select ?, ?, ?, ?, timediff(hf, ho) from paros where ...