Die Abfrage Ausführung geschieht auf alle Methoden erhalten wie
$this->db->get('table_name');
$this->db->get_where('table_name',$array);
Während last_query die letzte Abfrage enthält, die
$this->db->last_query();
ausgeführt wurde Wenn Sie ohne Ausführung Query-String bekommen müssen Sie tun Dies. Zum System/database/DB_active_rec.php öffentlich entfernen oder geschützten Stichwort aus diesen Funktionen
public function _compile_select($select_override = FALSE)
public function _reset_select()
Jetzt können Sie Abfrage schreiben und es in einer Variablen
$this->db->select('trans_id');
$this->db->from('myTable');
$this->db->where('code','B');
$subQuery = $this->db->_compile_select();
Jetzt Abfrage zurückgesetzt erhalten wenn Sie so wollen Um eine weitere Abfrage zu schreiben, wird das Objekt gelöscht.
$this->db->_reset_select();
Und die Sache ist erledigt. Prost!!! Hinweis: Während auf diese Weise verwenden, müssen Sie
$this->db->from('myTable')
statt
$this->db->get('myTable')
verwenden, die die Abfrage ausgeführt wird.
Take a look at this example
Willkommen und kein Problem! Sie werden diese beiden Methoden (und einige andere zum Einfügen, Aktualisieren und Löschen usw.) in der neuen Version von CI hinzufügen, so dass wir sie nicht hacken müssen. –
@raheelshan das hat gerade mein Leben gerettet. hast du irgendwelche informationen darüber, warum sie diese funktionen geschützt haben? http://stackoverflow.com/questions/9232316/is-there-a-function-like-compile-select-orget-compiled-select – motto
Bitte rufen Sie keine Methode mit '_', was privaten Zugriff bedeutet (nicht von außen). Das ist keine Lösung, sondern ein Problem mit späteren Updates (wenn sie ihren Methoden echte Zugriffsebenen hinzugefügt haben). – Roland