sql >> Base de Datos >  >> RDS >> Mysql

¿Cómo puedo abstraer declaraciones preparadas de mysqli en PHP?

Trabajé en el Zend_Db_Adapter_Mysqli y Zend_Db_Statement_Mysqli clases un poco para que esto funcione, ya que queríamos que se ajustara al PDO y PDOStatement interfaz. Fue bastante laborioso, debido a la forma confusa en que MySQLi insiste en vincular variables para obtener resultados, y la variedad de modos de recuperación admitidos por PDOStatement .

Si quieres ver el código en Zend_Db , presta especial atención a las funcionesZend_Db_Statement_Mysqli::_execute() y fetch() . Básicamente, el _execute() El método vincula una matriz de referencias de variables usando call_user_func_array() . La parte complicada es que tienes que inicializar la matriz para que bind_result() la función obtiene las referencias. Uh, eso no estaba del todo claro, así que echa un vistazo al código.

O simplemente use el controlador MySQL de PDO. Eso es lo que haría yo en tus zapatos.