我收到以下错误:
注意:第371行中的数组到字符串转换
警告:PDOStatement :: execute()[pdostatement.execute]: SQLSTATE [HY093]:参数号无效:绑定变量数 与第371行上的令牌数量不匹配
产生此错误的代码如下:
// update member file report...
$sql = 'UPDATE memberFileReports SET membersAdded =?, membersCanceled=?, errors=?, dateProcessed=?, totalProcessed=? WHERE id = ?';
$totalToProcess = $membersAdded + $membersCanceled + $totalErrorCount;
$userarray = array($membersAdded,$membersCanceled,$totalErrorCount,date("Y-m-d H:i:s"),$totalToProcess,$fileDataReportId);
$stmt = $this->db->prepare($sql);
$stmt->execute(array($userarray));
请帮忙??
答案 0 :(得分:2)
将$stmt->execute(array($userarray));
更改为$stmt->execute($userarray);
。由于$userarray
已经是一个数组,因此您无需将其包装在新数组中。通过将它包装在一个像你的代码那样的新数组中,当PDO预期全部为6时,它会被发送1个参数。这就是为什么生成的错误表示“绑定变量的数量与的数量不匹配令牌”。
答案 1 :(得分:0)
用户数组变量在创建时设置为数组。并在执行的os上添加到其他数组中。
删除重复的数组声明或执行函数认为只有一个参数。