Php 尝试使用子查询将数据插入字段

Php 尝试使用子查询将数据插入字段,php,mysql,Php,Mysql,我想使用带有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

我想使用带有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语法有错误;检查与您的MariaDB服务器版本相对应的手册,了解在C:\xampp\htdocs\oeemoldeo\paros.php:43堆栈跟踪:0 C:\xampp\htdocs\oeemoldeo\paros.php43:PDOStatement->executeArray 1{main}第43行抛出的paros值'Paro no programado'、'Ajuste de pa'中选择timedifff,ho的正确语法

确保select只返回一条记录a REQUIRE where子句。然后使用:

INSERT INTO paros (tipo, descripcion, ho, hf, totaltiempo) 
select ?, ?, ?, ?, timediff(hf, ho) from paros where ...
确保select只返回一条记录a REQUIRE where子句。然后使用:

INSERT INTO paros (tipo, descripcion, ho, hf, totaltiempo) 
select ?, ?, ?, ?, timediff(hf, ho) from paros where ...

我刚刚试过你告诉我的,现在我的代码看起来是这样的:$sql=INSERT-INTO-paros-tipo,description,ho,hf,totaltiempo-select?,?,,,?,timediffhf,ho-from-paros-id=1$q=$pdo->准备$sql;此行:$q->Executarray$tipo、$Description、$startTime、$endTime、$totaltiempo;数据库::断开连接;但在上面选择的行上用大写字母显示此错误:Uncaught pdo exception:SQLSTATE[HY093]:无效参数编号:绑定变量的数量与tokensStrange的数量不匹配。它不应返回此错误。您确定这是错误所指的同一个查询吗?paros表是否包含hf和ho列?是的,paros表包含ho和hf字段,错误消息引用$q->execute行。错误说明您提供的值没有查询所期望的那么多。你是填写了这4个参数还是在where子句中添加了一个新的参数?不,我没有在where子句中添加任何其他值,我填写了从表单插入数据的其他4个字段,我感觉最后一个值出现了错误,你知道,在4个问号之后,但我现在确定了,我只是尝试了你告诉我的,现在我的代码是这样的:$sql=INSERT-INTO-paros-tipo,description,ho,hf,totaltiempo-select?,,,,,,timediffhf,ho-from-paros-id=1$q=$pdo->准备$sql;此行:$q->Executarray$tipo、$Description、$startTime、$endTime、$totaltiempo;数据库::断开连接;但在上面选择的行上用大写字母显示此错误:Uncaught pdo exception:SQLSTATE[HY093]:无效参数编号:绑定变量的数量与tokensStrange的数量不匹配。它不应返回此错误。您确定这是错误所指的同一个查询吗?paros表是否包含hf和ho列?是的,paros表包含ho和hf字段,错误消息引用$q->execute行。错误说明您提供的值没有查询所期望的那么多。您是填写了这4个参数还是在where子句中添加了一个新参数?不,我没有在where子句中添加任何其他值,我填写了从表单插入数据的其他4个字段,我感觉最后一个值出现了错误,您知道在4个问号之后,但我现在确定了