作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我希望我的表使用 InnoDB 创建,以便执行复杂的事务以确保 ACID 模型。这就是我在运行时创建数据库的方式
$fields = array(
'trans_id' => array(
'type' => 'VARCHAR',
'constraint' => 30,
'unique' => TRUE
),
'detail' => array(
'type' => 'TEXT',
'null' => FALSE
),
'phone' => array(
'type' =>'TEXT',
'null' => FALSE
),
'debit' => array(
'type' => 'DOUBLE',
'unsigned' => TRUE
),
'credit' => array(
'type' => 'DOUBLE',
'unsigned' => TRUE
),
'balance' => array(
'type' => 'DOUBLE',
'unsigned' => FALSE
),
'timestamp' => array(
'type' => 'TIMESTAMP',
'default' => ['value' => 'CURRENT_TIMESTAMP', 'string' => false]
)
);
$attributes = array('ENGINE' => 'InnoDB');
$this->dbforge->add_field($fields);
$this->dbforge->create_table('my_table, TRUE, $attributes);
给出错误
<h1>A Database Error Occurred</h1>
<p>Error Number: 1064</p>
<p>You have an error in your SQL syntax; check the manual
that corresponds to your MySQL server version for the right
syntax to use near 'Array
) ENGINE = InnoDB DEFAULT CHARACTER SET = utf8 COLLATE =
utf8_general_ci' at line 8</p>
<p>CREATE TABLE IF NOT EXISTS `8882177363_table` (
`trans_id` VARCHAR(30) NOT NULL UNIQUE,
`detail` TEXT NOT NULL,
`phone` TEXT NOT NULL,
`debit` DOUBLE UNSIGNED NOT NULL,
`credit` DOUBLE UNSIGNED NOT NULL,
`balance` DOUBLE NOT NULL,
`timestamp` TIMESTAMP NOT NULL DEFAULT Array
) ENGINE = InnoDB DEFAULT CHARACTER SET = utf8 COLLATE =
utf8_general_ci</p>
但是,当我不使用包含“ENGINE”白色创建表的属性数组时,代码工作正常。
问题已解决
通过改变
'timestamp' => array(
'type' => 'TIMESTAMP',
'default' => ['value' => 'CURRENT_TIMESTAMP', 'string' => false])
到
'timestamp' => array(
'type' => 'TIMESTAMP')
最佳答案
我对 php
一无所知,但显然你的错误信息告诉你所有的真相。
CREATE TABLE IF NOT EXISTS `8882177363_table` (
`trans_id` VARCHAR(30) NOT NULL UNIQUE,
`detail` TEXT NOT NULL,
`phone` TEXT NOT NULL,
`debit` DOUBLE UNSIGNED NOT NULL,
`credit` DOUBLE UNSIGNED NOT NULL,
`balance` DOUBLE NOT NULL,
`timestamp` TIMESTAMP NOT NULL DEFAULT Array
) ENGINE = InnoDB DEFAULT CHARACTER SET = utf8 COLLATE = utf8_general_ci
最后一个字段 timestamp
中的单词 Array
导致错误,您必须检查您的 php
代码以将其删除。
关于php - 代码点火器中的 InnoDb 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48581170/
我正在使用 Codeigniter,问题是我的 Controller 中有重复很多的特定代码,我需要将这段代码放在一个地方,然后在 Controller 中调用它。 例子: public funct
我真的很想知道我该怎么做,我有 3 个页面具有指向 1 个页面的相同链接,现在我想要做的是拥有 1 个足够智能的按钮来获取使用了 3 个页面中的哪一个转到该页面并使用它作为返回上一页的链接。 如果有人
我需要从 site_url() 返回值中删除 index.php我不希望搜索引擎缓存我的 URL 包含 index.php。 我通过设置 .htaccess 文件从 url 中删除了 index.ph
我是一名优秀的程序员,十分优秀!