2

我使用 CodeIgniters DBforge 来使用我的数据库。

我试图将一个普通的 PHP 脚本转换为 CodeIgniter,并且在将 SQL 更改为 dbforge 时遇到了一些麻烦。

我有以下 SQL 代码

CREATE TABLE `message2_recips` (
  `mid` int(10) unsigned NOT NULL,
  `seq` int(10) unsigned NOT NULL,
  `uid` int(10) unsigned NOT NULL,
  `status` char(1) NOT NULL default 'N',
  KEY `m2r1` USING BTREE (`mid`,`status`),
  KEY `m2r2` USING BTREE (`uid`,`status`)
) ENGINE=InnoDB;

一切正常,除非我到达底部的 2 个键值。

我尝试过的一切似乎都不起作用,包括,

$this->dbforge->add_key(array('mid', 'status'));
$this->dbforge->add_key(array('uid', 'status'));

任何帮助翻译此内容将不胜感激,我似乎无法找到使用 dbforge 输入此内容的任何方法,这使我的项目完全停止

谢谢。

4

2 回答 2

1

(目前)不可能通过 DB Forge 进行 - 它不支持表键的附加选项。您只能通过之后使用原始 SQL 查询添加它们来实现这一点。

于 2012-11-13T13:18:27.017 回答
1

DB_forge.php 中有一个错误

您需要删除 is_array 条件以启用多个键(在 mysql 驱动程序中有将数组键转换为多个键的功能)。

DBForge.php:101

消除:

    if (is_array($key))
    {
        foreach ($key as $one)
        {
            $this->add_key($one, $primary);
        }

        return;
    }
于 2015-04-14T07:25:17.153 回答