私はかなり長い間 PyroCMS と CI を使用しており、本当に気に入っています。
管理者ユーザーが phpMyAdmin などを使用せずに DB を管理できるようにする DB モジュールを拡張しています。
ただし、機能することができた唯一のことは、テーブルのフィールド値を参照することです (つまり、'SELECT * FROM 'table_name')。
より多くの機能を組み込みたいのですが、dbforge が正しく動作しないようです。dbforge を使用してモジュールをアンインストールするため、ロードされていることがわかります。そこから関数を呼び出してもエラーは発生しません。
コントローラーからのコードの例を次に示します (dbforge は既に読み込まれています)。
public function drop($table_name)
{
$table_name = $this->uri->segment(4);
$this->dbforge->drop_table($table_name);
redirect('admin/database/tables');
}
関数がこの URL から呼び出されるとしましょう:
.../admin/database/drop/table_name
動作しているように見えますが、代わりにテーブルの概要にリダイレクトするだけです。
足りないものはありますか?[$this->dbforge->drop_table($table_name);] は常にテーブルを削除すべきではありませんか ($table_name が有効な場合)?
編集
回避策として、次を使用できました。
public function drop($table_name)
{
$table_name = $this->uri->segment(4);
//$this->dbforge->drop_table($table_name);
$this->db->query("DROP TABLE ".$table_name);
redirect('admin/database/tables');
return TRUE;
}
本当はDB forgeを使いたいのですが...