2

私はcodeigniterに少し慣れていないので、次の単純なクエリを実行しようとしています。

DESCRIBE `table_name`;

私はこれを試しました:

$sql = 'DESCRIBE ?';
$desc = $this->db->query($sql, $table)->result();

これはこのクエリを作成します:

DESCRIBE 'table_name';

ご覧のとおり、$ table変数をバインドすると、間違った引用符が出力されます。これらは値の引用符(')であり、表の引用符( `)ではありません。私はこれを間違っていますか?

ありがとう!

4

1 に答える 1

3

CodeIgniterのクエリバインディングはあなたのために物事をエスケープします。データはテーブル名ではなく値であると想定しています。

あなたはガンナが自分で価値を逃れなければならないのです。

$table = $this->db->escape_str($table);
$sql = "DESCRIBE `$table`";
$desc = $this->db->query($sql)->result();
于 2011-01-21T19:33:20.447 に答える