2010-08-05 5 views
0

J'utilise MySQL ActiveRecord avec CodeIgniter pour soumettre des requêtes, mais j'ai rencontré quelques problèmes lors de l'utilisation de la fonction "select". Par exemple, cette requête MySQL fonctionne parfaitement dans phpMyAdmin:Problème 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 

Il me donne deux colonnes, exactement ce que j'ai besoin.

Cependant, cela ne me donne une colonne, « 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(); 

Si je supprime la clause « select », je reçois toutes les informations dont j'ai besoin, mais je voudrais comprendre ce que je suis faire mal et comment je peux réduire la charge sur mon DB. Des pensées?

Répondre

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

doit être écrit comme ceci (les noms de colonnes doivent être une seule chaîne):

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

, Rappelez-vous aussi que vous pouvez toujours utiliser $this->db->last_query(); à la sortie de la dernière requête qui a été exécuté, de sorte que vous peut voir l'instruction SQL exacte en cours d'exécution.

+0

Merci pour la réponse rapide. Comme toujours, si j'étais plus prudent, je n'aurais pas ces problèmes pour commencer. Merci beaucoup. – tchaymore

+0

@tchaymore: Content de pouvoir aider! –

Questions connexes