CodeIgniter unterstützt keine vorbereiteten Anweisungen. Wenn Sie sich den Quellcode für die Database-Klasse von CI ansehen, werden Sie sehen, dass sie Bindungen auflösen, indem sie einfach die Fragezeichen durch die Daten aus dem übergebenen Array ersetzen:
Sie unterstützen nur Query Binding mit unbenannten Platzhaltern. Siehe http://ellislab.com/codeigniter/user-guide/database/ abfragen.html
Abfragebindungen
Mit Bindungen können Sie Ihre Abfragesyntax vereinfachen, indem Sie das System die Abfragen für Sie zusammenstellen lassen. Betrachten Sie das folgende Beispiel:
$sql = "SELECT * FROM some_table WHERE id = ? AND status = ? AND author = ?";
$this->db->query($sql, array(3, 'live', 'Rick'));
Die Fragezeichen in der Abfrage werden automatisch durch die Werte im Array im zweiten Parameter der Abfragefunktion ersetzt.
und http://ellislab.com/forums/viewthread/105112/#528915
Obwohl CI keine vorbereiteten Anweisungen unterstützt, unterstützt es Abfragebindungen. Bei vorbereiteten Anweisungen müssen Sie eine Art von Prepare()-Funktion und dann eine Art von Execute()-Funktion aufrufen. Bei Abfragebindungen müssen Sie nur eine Funktion aufrufen, die im Grunde dasselbe tut. Aus diesem Grund mag ich Abfragebindungen lieber als vorbereitete Anweisungen.
Nebenbei bemerkt, ?
ändern zu :foo
ändert lediglich von unbenannten zu benannten Bindungen (die CI anscheinend auch nicht unterstützt). Nur weil Sie entweder oder verwenden, heißt das nicht, dass Sie die Anweisungen vorbereiten.