2011-01-31 14 views
1

を引き起こし結合は、私はCodeIgniterの中で更新をしようと、次のクエリを持っている:CodeIgniterの - 内破/クエリ不要な文字列

$sql = "UPDATE fanout.manual_data 
       SET call_leader_id = ? 
       WHERE id IN (?)"; 

$q = $this->db->query($sql, array($leaderID, implode(", ", $empIDs))); 

破は私のアレイ内のすべてのIDの文字列を作成しています。しかし、それはのように見えるクエリで結果ている:私は必要なものである場合には

UPDATE fanout.manual_data SET call_leader_id = '55993' WHERE id IN ('57232, 0097726, 0076034'); 

UPDATE fanout.manual_data SET call_leader_id = '55993' WHERE id IN (57232, 0097726, 0076034); 

差のみ、IDの文字列を囲む単一引用符です。これは自分自身で行い、CIのクエリバインディング(http://codeigniter.com/user_guide/database/queries.html)をスキップするか、またはCIが処理できるもので、私はちょっとしたステップがありませんか?

ありがとうございました。

+0

こんにちは@Ryanは変数が単一引用符で囲まれていることをどのように把握してくれますか?実行されたACTUALクエリを出力するphp関数はありますか?私は同様の問題を抱えていました。もし私が一重引用符が私のvarの周りに置かれていると言えるのであれば、それは私を大いに助けてくれたでしょう。 – Catfish

答えて

1

私はあなたがその動作をスキップできるとは思わない。あなたは技術的に文字列を渡しているので、CIはそれをそのように解釈し、単に引用符で囲みます。

$empIDsを手で(たとえば、foreachループを使用して)連結して、確かめたい場合は$this->db->escape()でエスケープしてください。

+0

ありがとう、それは私が考えていたものですが、わかりませんでした。 –

関連する問題