我有这样一段代码用于执行准备的PDO语句:PDO声明失败,错误“SQLSTATE [22007]:无效日期时间格式”
$sql = 'INSERT INTO territories(territory_id,`name`,`inactive`,`createdAt`,`updatedAt`) VALUES(?,?,?,NOW(),NOW())';
$stmt = $pdoPdone->prepare($sql);
$params = [$territoryId, $territoryName, $inactive];
var_export($params);
$stmt->execute($params);
的var_export($params)
输出是如下显示:
array (
0 => '04T80000000TQw1EAG',
1 => 'SA_106SN03',
2 => false,
)
但是,当我尝试执行我得到这个错误代码:
PHP Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[22007]: Invalid datetime format: 1366 Incorrect integer value: '' for column 'inactive' at row 1' in /var/sync/sync_bi/sync.php:260
Stack trace:
#0 /var/sync/sync_bi/sync.php(260): PDOStatement->execute(Array)
#1 {main}
thrown in /var/sync/sync_bi/sync.php on line 260
其中线26 0是$stmt->execute($params)
,那么错在哪里?为什么PHP或PDO与无效列的值混淆?
问题正文中的错误与标题中的错误不符 – FuzzyTree