-1

我收到以下错误:

注意:第 371 行中的数组到字符串的转换

警告:PDOStatement::execute() [pdostatement.execute]: SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens on line 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));

请帮忙 ??

4

2 回答 2

2

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

于 2014-02-07T17:23:44.067 回答
0

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

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

于 2014-02-07T17:28:43.977 回答