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 因为表之间没有关系,并且在联系表中只有一行。

4

3 回答 3

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 回答
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

我前段时间遇到过这个问题,我找到了解决方法,请参见此处

(所以这个问题是重复的)

于 2012-10-19T05:22:24.420 回答