2010-08-05 7 views
0

Я использую MySQL ActiveRecord с CodeIgniter для отправки запросов, но столкнулся с некоторыми ошибками при использовании функции «select». Например, этот запрос MySQL отлично работает в PhpMyAdmin:Проблема с MySQL Active Record

SELECT review_id, firms_name 
FROM reviews AS r 
JOIN firms AS f ON f.firms_id = r.review_target_id 
WHERE r.review_id =3 
ORDER BY r.review_timestamp DESC 
LIMIT 0 , 30 

Это дает мне две колонки, именно то, что мне нужно.

Однако, это только дает мне одну колонку, «review_id»:

$this->db->select('review_id', 'firms_name'); 
$this->db->from('reviews as r'); 
$this->db->join('firms as f', 'f.firms_id = r.review_target_id'); 
$this->db->where('r.review_id', $id); 
$this->db->order_by('r.review_timestamp', 'desc'); 
$query = $this->db->get(); 

Если я удалить «выберите» пункт, я получаю всю информацию, мне нужно, но хотелось бы понять, что я делать неправильно и как я могу уменьшить нагрузку на свой db. Есть предположения?

ответ

3
$this->db->select('review_id', 'firms_name'); 

должно быть написано, как это (имена столбцов должны быть одной строки):

$this->db->select('review_id, firms_name'); 

Кроме того, помните, что вы всегда можете использовать $this->db->last_query(); для вывода последнего запроса, который был запущен, так что вы может видеть точный оператор SQL, который выполняется.

+0

Спасибо за быстрый ответ. Как всегда, если бы я был более осторожен, у меня не было бы этих проблем для начала. Большое спасибо. – tchaymore

+0

@tchaymore: Рад, что я мог бы помочь! –