Der folgende Code implementiert die Active Bibliothek in CodeIgniter (obwohl Active bezieht sich in der Regel auf eine ziemlich unterschiedliche Möglichkeit, Werte aus einer Datenbank zu erhalten).
$this->db
->select('*')
->from('table');
$this->db->get();
rechts, bis die Methode get(), wird Active intern eine SQL-Abfrage erstellen und speichern, und dann, wenn Sie get() aufrufen, dass die Abfrage ausführen, und ersetzen Sie es mit einem Ergebnisobjekt, die Sie anschließend Zugriff mit result(), result_array(), row() oder row_array().
Der folgende Code wird eine SQL-Abfrage direkt aus dem $ sql Argument ausführen Sie geben es
$this->db->query($sql);
Von diesem Punkt, wenn Sie Daten aus Ihrer Datenbank wurden ausgewählt haben, können Sie dies tun:
$result = $this->db->result_array();
, um die Ergebnisse dieser Abfrage in ein Array zu bekommen.
Für die Paginierung können Sie beide Möglichkeiten verwenden. Dies würde zum Beispiel die Datensätze für eine Seite 3, wenn man pro Seite 10 Datensätze hat:
$query = $this->db->select('*')->from('table')->limit(10, 30)->get();
if($query->num_rows())
{
return $query->result_array();
}
return FALSE;
Und wenn Sie eines der $ this-> db Methoden verwenden() (where()), CodeIgniter entweicht automatisch die Werte man es in eine:
$this->db->where('id', "'i am a nasty piece of SQL';DROP DATABASE 'my_db'");
das fein wäre - CodeIgniter kümmert sich für Sie davon. Seien Sie sich immer bewusst, dass, nur weil es für Sie erledigt ist, es nicht anders geht, als dass Sie Sicherheitslücken in Ihrem Code entdecken könnten.
Gibt es einen Grund, warum Sie die rohe Datenbank anstelle von ActiveRecord auf Ihren Modellen verwenden? – prodigitalson
Ja meine Ignoranz :) Könnten Sie bitte mehr ausarbeiten, ich bin neu in codeigniter, bisher habe ich nur blind versucht, was Tutorials vorschlagen – salmane
Actuall ich benutze CI nicht, also habe ich mich geirrt. Das ist eine AR-Nutzung. Die IT war mir trügerisch, weil ich ORM-Implementierungen von Doktrin und Propellern verwendete. Siehe meine Antwort unten für eine kurze Erklärung, aber ich bin sicher, dass jemand, der tatsächlich CI verwendet, eine definitive und nützliche Antwort geben wird :-) – prodigitalson