1

重複の可能性:
Codeigniter ActiveRecord:バックティックに参加

列名の代わりに値を付けたいのですが、認識できずエラーになります。これが私のコードです:

$this->db->select('*')->from('users')->where('users.ID',$this->session->userdata('user_id'));
$this->db->join('contact','contact.ID = 1','left');
$result =  $this->db->get()->row_array();

問題は結合にあり、値を受け入れていません。このエラーが発生します。

error:

Unknown column '1' in 'on clause'

テーブル間には関係がなく、連絡先テーブルには1行しかないため、1を使用する必要があります。

4

3 に答える 3

0

私はしばらく前にこの問題に遭遇し、回避策を見つけました。ここを参照してください!

(したがって、この質問は重複しています)

于 2012-10-19T05:22:24.420 に答える
0

返信ありがとうございます。これを使用して代替案を見つけました: $this->db->query("SELECT * FROM (users) LEFT JOIN 'contact' ON contact.ID = ? WHERE users.ID = ?",array(1,$user_id)); 、この codeigniter を実行してもエラーは発生しません。

于 2012-10-18T14:04:01.347 に答える
0

結合を行う場合、共通フィールドで結合する必要があります。自然な SQL は次のようになります。

select * from users join contact on USERS.COMMON_FIELD = CONTACT.COMMONFIELD where users.id = $this->session->userdata('user_id')

これをCIに「翻訳」

$this->db->select('*')->from('users'));
$this->db->join('contact','contact.common_field = users=common_field');
$this->db->where('users.ID',$this->session->userdata('user_id'))

contact.ID = 1);テーブル間の共通フィールドと書かれている場所に配置する必要があります。

mysql に参加http://dev.mysql.com/doc/refman/5.0/en/join.html

CodeIgniter 参加: http://codeigniter.com/user_guide/database/active_record.html

于 2012-10-18T12:23:37.373 に答える