2

私はCodeIgnitersDBforgeを使用してデータベースを使用しています。

プレーンな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 に答える