0

そのため、アクティブ レコード クエリを実行すると、奇妙なバグが発生しました (または、単に私が愚かなだけかもしれません)。これを見てください:

$results = $this->db->
  select('cd.casino_name, cd.casino_opened, cd.casino_latitude, cd.casino_longitude')->
  from('casino_data as cd, casino_cities as cc')->
  where('cd.city_id',$city_id)->
  where('cd.city_id=cc.city_id')->
  get()->result_array();

それから私はそれを得ました:

Error Number: 1054

Unknown column 'cd.city_id=cc.city_id' in 'where clause'

SELECT `cd`.`casino_name`, `cd`.`casino_opened`, `cd`.`casino_latitude`, `cd`.`casino_longitude`
FROM (`m_casino_data` as cd, `m_casino_cities` as cc)
WHERE `cd`.`city_id` =  1
AND `cd`.`city_id=cc`.`city_id`

Filename: httpdocs/_dev/libraries/Test.php

Line Number: 649

Sh*t が起こった... または v2.0 CI で DB クラスの何かが変更されましたか?

助けてください... thx

4

2 に答える 2

1

問題はwhere句にあります

$results = $this->db->
select('cd.casino_name, cd.casino_opened, cd.casino_latitude, cd.casino_longitude')->
from('casino_data as cd, casino_cities as cc')->
where('cd.city_id',$city_id)->
where('cd.city_id','cc.city_id')->//this would produce WHERE cd.city_id = cc.city_id
get()->result_array();
于 2012-05-13T04:07:05.787 に答える
0

CodeIgniterのAR保護がうまく機能しない場合があります。FALSEこの場合、自動保護を回避するためにオプションのパラメーターを使用する必要があると思います。しかし、すべての関数がこのパラメーターを受け入れるわけではありません-しかし、whereそうです!

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

ドキュメントを参照してください(近くにあります4. Custom string)。

于 2012-05-13T07:09:11.793 に答える