2011-01-16 4 views
0

Hier ist mein Modellcodeigniter mysql Fehler

public function getDetails($ip) 
    { 
     $this->db->select('country_code, country_name'); 
     $this->db->where("'2323' BETWEEN begin_ip_num AND end_ip_num"); 
     return $this->db->get('ip')->row(); 
    } 

ich diesen Fehler:

Unknown column ''2323'' in 'where clause' 

SELECT `country_code`, `country_name` FROM (`ip`) WHERE `2130706433` BETWEEN begin_ip_num AND end_ip_num 

Wo I`m falsch?

+0

$ this-> db-> wo ('' 2323 'BETWEEN begin_ip_num UND end_ip_num "); Ist eigentlich $ this-> db-> wo ("$ ip BETWEEN begin_ip_num AND end_ip_num"); – adaxa

+0

wo liegst du falsch? überall ... Sie missverstehen die 'between()' -Funktion! Ich hoffe, die Antwort auf deine vorherige Frage wird die Dinge für dich klären. – ifaour

Antwort

3

2323 wird als Spaltenname und begin_ip_num und end_ip_num als Werte ausgewertet. Sie müssen das Gegenteil tun, wie folgt aus:

<?php 
public function getDetails($ip) 
    { 
     $this->db->select('country_code, country_name'); 
     $this->db->where("begin_ip_num <= 2323 AND end_ip_num >= 2323"); 
     return $this->db->get('ip')->row(); 
    } 

Siehe MySQL Reference on 'BETWEEN' dafür, wie diese verwendet werden soll.

1

Ich glaube, Sie gemeint:

$this->db->where("$ip BETWEEN begin_ip_num AND end_ip_num"); 

Da $ip aus Ihrer Modellfunktion etwas kommen Sie gegen überprüfen möchten.