PDOStatement :: execute():SQLSTATE [HY093],批量插入

时间:2018-03-03 15:24:32

标签: php pdo

有人可以帮忙吗?我正在尝试进行批量插入(400行),每次在数据库中插入58行后显示错误消息,我尝试了不同的数据集,它的行为方式相同。

警告:PDOStatement :: execute():SQLSTATE [HY093]:参数号无效:绑定变量数与令牌数不匹配

以下是代码:

$rows = $_POST['myTableArray'];
$nrecuser= $_SERVER['REMOTE_ADDR'];
$ndatetime= date('Y-m-d G:i:s');

$sql = "INSERT INTO dbo.rec(ncode, nname, nprimary, ndate, nyear, nperiod, 
                            nref, ntype, nuser, ncategorycode1, ncategorycode2, 
                            ncategorycode3, namount, ndescription, naccount, 
                            nmajorheadcode, ncheck, nrecuser, ndatetime) 
                    VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";

include_once dirname(__FILE__) . '/includes/db.inc.php';

try
{
  $conn->beginTransaction();

  $stmt = $conn->prepare($sql);

  foreach($rows as $row)
  {
    array_push($row, $nrecuser, $ndatetime);
    $stmt->execute($row);

  }

  $conn->commit();
  exit();
}
catch (PDOException $e)
{ 
 $conn->rollback();
  echo $e;
  exit();
}

2 个答案:

答案 0 :(得分:0)

给定的插入查询参数的数量与您传递给

的值不相等

答案 1 :(得分:0)

结果是服务器端问题,我必须更新php.ini max_input_vars设置。谢谢你的帮助。