PDO INSERT INTO [BindingParam中没有错误,但是没有数据发送到数据库

时间:2018-08-16 17:17:28

标签: php pdo insert-into

{{1}}

很抱歉,仅学习PDO,我在这里要了解有关在此特定查询中遇到的关于INSERT的问题的更多信息。我找不到代码哪里出了问题。由于我的其他查询与bindparams INSERT成工作。我错过了什么吗?所有变量都显示正确的信息。我不明白为什么这不起作用。

SS of Database

1 个答案:

答案 0 :(得分:2)

请尝试以下代码:

$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

$stmt1 = $conn->prepare($sqlPickInsert);

$params = [
  $nullvalues,
  $newPickupCode,
  $finalexistCustID,
  $login_Date,
  $finalpick_date,
  $newExpenditures,
  $paymentMode,
  $finalpick_notes,
  $login_Branch,
  $nullvalues
];

$stmt1->execute($params);

将值的数组传递给execute()比所有这些bindParam()调用都容易。我不知道有多少PHP开发人员会想到bindParam()是必要的。

启用ERRMODE_EXCEPTION比在每次调用PDO函数之后编写检查要容易得多。这样可以确保在准备或执行过程中发生任何错误时,您都会自动得到一个错误(实际上是一个异常)。

正如@Barmar所评论的那样,您可能会发现execute()上的错误是您似乎正在将NULL传递给order_status,但是该列不接受NULL。

至少我们猜测$nullvalues的值为NULL,但您并未这样说。