sql >> Database teknologi >  >> RDS >> Mysql

Hvordan kan jeg abstrahere mysqli forberedte udsagn i PHP?

Jeg arbejdede på Zend_Db_Adapter_Mysqli og Zend_Db_Statement_Mysqli klasser en hel del for at få dette til at fungere, da vi ønskede at få det til at være i overensstemmelse med PDO og PDOStatement interface. Det var ret besværligt på grund af den forvirrende måde, MySQLi insisterer på at få dig til at binde variabler for at få resultater, og de mange forskellige hente-tilstande, der understøttes af PDOStatement .

Hvis du vil se koden i Zend_Db , vær særlig opmærksom på funktionerneZend_Db_Statement_Mysqli::_execute() og fetch() . Grundlæggende er _execute() metoden binder et array af variable referencer ved hjælp af call_user_func_array() . Den vanskelige del er, at du skal initialisere arrayet, så bind_result() funktion henter referencerne. Øh, det var ikke helt klart, så tag et kig på koden.

Ellers skal du bare bruge PDO's MySQL-driver. Det ville jeg gøre i dine sko.



  1. Opretter du tilpassede html-tags til CMS?

  2. HSQLDB ROWNUM-kompatibilitet med Oracle

  3. Forbind tomcat og mysql i docker-compose

  4. polymorfi for UDENLANDSKE NØGLE-begrænsninger