PDOStatement :: execute():SQLSTATE [HY093],批量插入时的奇怪行为

问题描述 投票:0回答:2

有人可以帮忙吗?我正在尝试进行批量插入(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();
}
php pdo
2个回答
0
投票

给定的插入查询参数的数量不等于您要传递给插入的值


0
投票

事实证明这是一个服务器端问题,我必须更新php.ini max_input_vars设置。谢谢您的帮助。

© www.soinside.com 2019 - 2024. All rights reserved.