0

我正在尝试使用内存数据库使用 PHPUnit 设置一些测试脚本,但我无法正确创建数据库。当我第一次运行查询时,它运行良好,但我忘记将 AUTO_INCREMENT 添加到 id 字段。一旦我添加了它,只要脚本运行,PDO 就会因致命错误而退出。我尝试通过 phpMyAdmin 运行相同的查询以查看它是否有效(它通过没有任何投诉),甚至用它来执行我想要的操作并复制它运行的 SQL 没有任何运气,所以我有点对正在发生的事情感到损失。如果有人可以帮我解决这个问题,那将是一个很大的帮助。查询可以在下面找到

CREATE TABLE IF NOT EXISTS `checks` (
    `id` int(60) NOT NULL AUTO_INCREMENT,
    `check_type` varchar(255),
    `purchase_id` varchar(255),
    `price` varchar(255),
    `time` varchar(255),
    `user_id` varchar(255),
    `email` varchar(255),
    `site_id` varchar(255),
    PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

VARCHAR 用于除 ID 之外的所有内容,因为它们是通过自动化脚本运行的,并且数据类型可能会有所不同。如果这有所不同,它就是一个 MySQL 数据库。谢谢你提供的所有帮助

编辑:根据要求添加完整的错误消息:

SQLSTATE [HY000]:一般错误:“AUTO_INCREMENT”附近的 1:语法错误

4

1 回答 1

0

当我切换到使用 PDO 时,我得到了同样的结果。删除 id 字段上的 NOT NULL。我不知道为什么...没有看到任何文档。

CREATE TABLE IF NOT EXISTS `checks` (
    `id` int(60) AUTO_INCREMENT,
    `check_type` varchar(255),
    `purchase_id` varchar(255),
    `price` varchar(255),
    `time` varchar(255),
    `user_id` varchar(255),
    `email` varchar(255),
    `site_id` varchar(255),
    PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
于 2015-06-06T01:10:51.757 回答