PDO PHP错误,现在确定如何修复它?

时间:2014-02-07 17:21:49

标签: php mysql pdo notice

我收到以下错误:

  

注意:第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));

请帮忙??

2 个答案:

答案 0 :(得分:2)

$stmt->execute(array($userarray));更改为$stmt->execute($userarray);。由于$userarray已经是一个数组,因此您无需将其包装在新数组中。通过将它包装在一个像你的代码那样的新数组中,当PDO预期全部为6时,它会被发送1个参数。这就是为什么生成的错误表示“绑定变量的数量的数量不匹配令牌”。

答案 1 :(得分:0)

用户数组变量在创建时设置为数组。并在执行的os上添加到其他数组中。

删除重复的数组声明或执行函数认为只有一个参数。