1
$code = Array(1,2,3,4)
$sql = "SELECT * FROM Table1 WHERE Field1 IN (?)";
$query = $this->db->query($sql, array($code));

$this->db->last_query()表示されます

"SELECT * FROM Table1 WHERE Field1 IN ('1,2,3,4')"

IN条件の一重引用符を削除するにはどうすればよいですか?

$codeが文字列の配列であっても、例

$code = Array('This one', 'Next code', 'And this')

ステートメントは次のようになります。

"SELECT * FROM Table1 WHERE Field1 IN ('This one, Next Code, And This')"

何か不足していますか?

ティア。

4

2 に答える 2

3

この単純な代替方法を使用できます

$this->db->where_in('Field1',$code);
$this->db->get('Table1');
于 2013-05-02T09:33:01.587 に答える
1

codeigniter アクティブ レコードマニュアルより

$this->db->where() は、オプションの 3 番目のパラメーターを受け入れます。FALSE に設定すると、CodeIgniter はフィールドまたはテーブル名をバッククォートで保護しようとしません。

$this->db->where('MATCH (field) AGAINST ("value")', NULL, FALSE);

したがって、FALSE を使用して where 句に 3 番目のパラメーターを配置します。

次に、クエリは次のようになります

 $this->db->select('*')
          ->where('Field1 IN('.$code.'),NULL,FALSE)
          ->get('Table1');
于 2013-05-02T09:34:31.567 に答える