引入phinx作为数据库迁移工具后,我再也无法通过PDO的execute语句来使用真假了。每当我这样做时,我都会收到以下错误:
PHP 警告:PDOStatement::execute(): SQLSTATE[22007]:无效的日期时间格式:1366 不正确的整数值:'' 列 'my_db'.'my_table'.'my_column' 在第 1 行...
我的表具有以下架构(短路):
| Field | Type | Null | Key | Default | Extra |
+-------------------------------+--------------+------+-----+---------+----------------+
| my_column | tinyint(1) | NO | | NULL | |
+-------------------------------+--------------+------+-----+---------+----------------+
我正在使用以下代码(短路):
$stmt = $this->pdo->prepare("INSERT INTO `$table` (`my_column`) VALUES (:mycolumn)");
$stmt->execute([
'my_column' => false
]);
该列由迁移脚本创建:
->addColumn('my_column', 'boolean', [
'null' => false,
'after' => 'another_column',
])
奇怪的是,我通过 phpMyAdmin 在手动 sql 语句中使用true和false没有问题。