После введения phinx в качестве инструмента миграции базы данных я больше не могу использовать true и false в операторе execute PDO. Всякий раз, когда я это делаю, я получаю следующую ошибку:
Предупреждение 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',
])
Странно то, что у меня нет проблем с использованием true и false в операторах sql вручную через phpMyAdmin.
$table
правильно экранирован. - person emix   schedule 11.06.2019