我正在尝试使用内存数据库使用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]:一般错误:1“AUTO_INCREMENT”附近:语法错误
答案 0 :(得分: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 ;