2009-10-31 10 views
1

Je travaille sur un bug (?) Depuis quelques heures maintenant, mais je ne peux pas le réparer.CodeIgniter: Colonne inconnue xxx dans la clause 'where'

Ceci est mon code:

if(!$this->db->get_where('merken',array('m_merken' => $brand))->count_all_results()){ 

     $insetData = array('m_name' => $brand); 
     $this->db->insert('merken', $insetData); 

} 

marque $ contient « Acer » dans cet aperçu. Je veux vérifier s'il existe déjà, mais cela ne fonctionnera pas très bien.

+0

Je vois ma faute de frappe 'm_merken', doit être 'm_name', mais toujours une erreur. ;-) – Kees

Répondre

1

sans les guillemets, votre déclaration:

SELECT * FROM (`merken`) WHERE `m_name` = Acer 

Acer fait référence à une colonne nom. Si votre intention est une chaîne littérale, le mettre dans les guillemets simples, comme dans:

SELECT * FROM (`merken`) WHERE `m_name` = 'Acer' 

En outre, à titre de bonne pratique de programmation, éviter SELECT *, mieux SELECT chaque colonne que vous voulez revenir, même si la liste est longue.

- EDIT -

Je pense que je manque le point ... SQL est généré. Deux choses à vérifier:

Le champ m_name est-il correctement déclaré en tant que champ string/varchar/char? A défaut, essayez de mettre littéralement le nom de la marque à 'Acer', avec les guillemets. Je doute que ce soit une solution raisonnable, cependant.

+0

Le m_name est déclaré comme un varchar (255), j'ai aussi essayé ce code: if ($ this-> db-> get_where ("merken", tableau ("name" => '$ marque ')) -> count_all_results() == 0) { $ insetData = array ("nom" =>' $ brand '); $ this-> db-> insert ("merken", $ insetData); echo "succes"; } else { echo "existe déjà"; Mais quand j'essaye que rien ne revient, il y a quelque chose qui ne va pas mais je ne sais pas quoi. Pas d'erreur et pas de succès/existe. – Kees

+0

if ($ this-> db-> get_where ("merken", array ("nom" => marque $)) -> count_all_results() == 0) { $ insetData = array ("name" => $ marque); $ this-> db-> insert ("merken", $ insetData); echo "gelukt"; } autre { echo "bestaat al?"; } – Kees

+0

Cela semble fonctionner maintenant, merci! Les singe-quotes et changer le nom m_name en 'name' (dans le code et Database) a fonctionné. Merci pour votre temps! – Kees