2017-01-30 3 views
-1

Ich bin Tring zu validieren, dass es einen Datensatz für einen Namen in einer CSV-Datei gibt. Ich verwende eine SQL-Anweisung zu sehen, zu sehen, wenn dieser Name vorhanden ist, aber ich bekomme diesen FehlerCodeigniter SQL-Anweisung Fehler

Error Number: 1054 

Unknown column 'aa' in 'where clause' 

SELECT name FROM company WHERE name =aa 


public function findCompany($company){ 
    $query = $this->db->query("SELECT name FROM companyWHERE name =".$company); 
    if($query->num_rows() > 0){ 
     return true; 
    }else{ 
     return false; 
    } 
} 

Könnte es ein isue sein mit einer variablen an das Ende der Schnur befestigt?

Antwort

2

Versuchen Sie, diese

function findCompany($company){ 
    $query = $this->db->query("SELECT name FROM company WHERE name = '$company' "); 
    $result = $query->result_array(); 

    if($result > 0) 
    { 
     return true; 
    }else{ 
     return false; 
    } 
} 

Fehler

SELECT name FROM companyWHERE 
         ^^^ 

ist, und überprüfen " immer Einwickeln ..

+0

Das schien für die Fälle zu funktionieren, die ich versuchte. Was machen die "anders? –

+0

sein, um Text anzuzeigen –

+0

lesen Sie dieses http://stackoverflow.com/questions/11321491/when-to-use-single-quotes-double-quotes-and-backticks-in-mysql –

0

wie diese versuchen ..

function findCompany($company){ 
    $this->db->select('name'); 
    $this->db->where('name',$company); 
    $query = $this->db->get('company'); 

    if($query->num_rows > 0) { 
     return true; 
    }else{ 
     return false; 
    } 
} 
0

Abgesehen von den Anführungszeichen sind Sie auch offen für die SQL-Injektion. Anstatt sich über Anführungszeichen Gedanken zu machen, lassen Sie Codeigniter/mysqli sich darum kümmern, indem Sie es als Argument übergeben.

$query = $this->db->query("SELECT name FROM company WHERE name = ?", array($company));