Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Wie kann ich vorbereitete mysqli-Anweisungen in PHP abstrahieren?

Ich habe an Zend_Db_Adapter_Mysqli gearbeitet und Zend_Db_Statement_Mysqli Klassen ziemlich viel, um dies zum Laufen zu bringen, da wir es mit dem PDO konform machen wollten und PDOStatement Schnittstelle. Es war ziemlich mühsam, wegen der verwirrenden Art und Weise, wie MySQLi darauf besteht, dass Sie Variablen binden müssen, um Ergebnisse zu erhalten, und wegen der Vielzahl von Abrufmodi, die von PDOStatement unterstützt werden .

Wenn Sie den Code in Zend_Db sehen möchten , achten Sie besonders auf die FunktionenZend_Db_Statement_Mysqli::_execute() und fetch() . Grundsätzlich die _execute() Methode bindet ein Array von Variablenreferenzen mit call_user_func_array() . Der knifflige Teil ist, dass Sie das Array initialisieren müssen, also bind_result() Die Funktion ruft die Referenzen ab. Äh, das war nicht ganz klar, also schauen Sie sich den Code an.

Oder verwenden Sie einfach den MySQL-Treiber von PDO. Das würde ich an deiner Stelle tun.