【发布时间】:2015-12-11 11:23:00
【问题描述】:
我为我的应用程序使用 Codeigniter 3 框架,并使用迁移库。我写了一个对象,它创建一个'user_type'表,并插入三行。
代码如下:
private $tableName = 'user_type';
public function up() {
$sql = "CREATE TABLE `$this->tableName` (
`id` TINYINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`name` CHAR(120) NOT NULL
) ENGINE = InnoDB;";
$sql .= "INSERT INTO `$this->tableName` (`id`, `name`) VALUES
(1, 'user'), (2, 'provider'), (3, 'admin');";
$this->db->query($sql);
}
如果我想使用迁移,它会丢弃一条带有以下文本的错误消息: 发生数据库错误
错误号:1064
您的 SQL 语法有错误;检查手册 对应于您的 MySQL 服务器版本,以便使用正确的语法 'INSERT INTO
user_type(id,name) 附近的值 (1, '用户'), (2, 'provider')' 在第 4 行创建表
user_type(idTINYINT UNSIGNED NOT NULL AUTO_INCREMENT 主键,nameCHAR(120) NOT NULL ) ENGINE = InnoDB;INSERT INTOuser_type(id,name) 值 (1, '用户'), (2, '提供者'), (3, '管理员');文件名: C:/xampp/htdocs/rentacar/application/migrations/20151211113200_usertype_table_data.php
行号:18
有趣的是,如果我回显 $sql 变量,并在 phpmyadmin 中运行它,它运行良好。
【问题讨论】:
-
github.com/AimalAzmi/codeigniter-migrations 试试这个,我为此编写了一个库,可以通过 CLI 轻松使用。它可用于创建迁移文件并向后或向前运行迁移。
标签: php mysql codeigniter migration