CodeIgniter / dbForge - 多个键

时间:2012-11-09 14:56:40

标签: php codeigniter dbforge

我正在使用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输入,这使我的项目完全停顿

感谢。

2 个答案:

答案 0 :(得分:1)

无法通过DB Forge执行(当前) - 它不支持表键的其他选项。您只能通过在原始SQL查询后添加它们来实现这一目的。

答案 1 :(得分:1)

DB_forge.php

中存在错误

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

DBForge.php:101

卸下:

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

        return;
    }