2016-07-04 4 views
0

Meine Frage ist wie folgt:Wie entfernt man einfache Anführungszeichen in der prepare-Anweisung?

$group_id = $session['group_id']; 

$sql = "SELECT * 
     FROM notification 
     WHERE group_id IN(?)"; 

$result = $this->db->query($sql, array($group_id))->result_array(); 

Als ich hinzufügen: echo $this->db->last_query();die();, ist das Ergebnis wie folgt aus:

SELECT * FROM notification WHERE group_id IN('1,13,2') 

ich einfache Anführungszeichen, um das Ergebnis entfernen wollen, ist wie folgt:

SELECT * FROM notification WHERE group_id IN(1,13,2) 

Wie zu entfernen einfache Anführungszeichen in Prepare-Anweisung?

+0

Es wäre einfacher, zu helfen, wenn wir Wissen Sie, was Sie tatsächlich in $ Group_id' übergeben haben. – RiggsFolly

+0

@RiggsFolly, Es ist String. Wenn ich 'echo $ group_id; sterben();', das Ergebnis: '1,13,2 ' –

Antwort

0

Ich bevor Sie verwenden können where_in Befehl wie folgt: -

$this->db->select('*'); 
$this->db->where_in('group_id',$group_id); 
$this->db->get('notification'); 
0

Alles, was Sie tun müssen, ist eine Reihe von Gruppen-IDs zu machen. Versuchen Sie, wie folgende

$group_id = explode(',',$session['group_id']); 
$this->db->select('*'); 
$this->db->where_in('group_id',$group_id); 
$this->db->get('notification'); 

es funktioniert

0

Sie können als darunter:

$ session [ 'group_id'] ist wahrscheinlich ein String. So können Sie diese Zeichenfolge in ein Array konvertieren.

$group_id = explode(",", $session['group_id']); 

Jetzt $ group_id ist bereits ein Array. So ersetzen Sie in unten Anweisung Array ($ group_id) mit nur '$ group_id':

$result = $this->db->query($sql, array($group_id))->result_array(); 

so ganze Code wird wie:

$group_id = explode(",", $session['group_id']); 

$sql = "SELECT * 
     FROM notification 
     WHERE group_id IN(?)"; 

$result = $this->db->query($sql, array($group_id))->result_array(); 
Verwandte Themen