我使用 PHPUnit 通过 PDO 包装器进行测试。我的一个测试是集成测试,它证明抽象层产生正确的语法,或PDOStatement
以正确的方式绑定等。为此,我使用内存中的 SQLite 数据库,并声明ext-pdo_sqlite
为我的项目的开发依赖项.
当 Github Actions 运行构建时,所有依赖项都会安装,提示pdo_sqlite
系统上存在。连接成功的事实进一步证实了这一点。但是,当我运行插入查询来设置我的数据库时,我收到以下错误:
PDOException: SQLSTATE[HY000]: General error: 1 no such column: TRUE
查询如下所示:
INSERT INTO `persons` (`id`, `name`, `dob`, `weight`, `is_dev`, `teeth`) VALUES (NULL, 'Anton', '1987-11-03', 71.3, TRUE, 31)
表创建是使用 PDO 完成的,如下所示:
$pdo->exec("CREATE TABLE `$tableName` (`id` int(6) PRIMARY KEY, `name` varchar(255), `dob` datetime, `weight` float(5), `is_dev` bool, `teeth` int(2))");
这仅体现在 CI 上,并且本地测试通过良好 - 即使在与 CI 相同的 PHP 版本上也是如此。
有任何想法吗?我只是在语法中遗漏了一些东西吗?会不会是 GH Actions 只有 SQLite 的虚拟实现之类的?
注意:这是一个开源项目,您可以在dhii/pdo-query#1
.