Pregunta

He estado usando paquetes de pera en php durante años. Estoy en el proceso de actualización / mover unos sitios que utiliza el paquete MDB2 pera y no ha sido actualizado para PHP 5.3.x.

En 5,3, MDB2 está volviendo esos nuevos errores molestos.

Unknown: Assigning the return value of new by reference is deprecated in /usr/local/lib/php/MDB2.php on line 390

Sé que puedo cambiar mi configuración de informes de error para deshacerse de ellos, pero yo prefiero no hacer ninguna excepción. De todos modos, ¿Hay alguien más usando MDB2 estos días y tiene una solución? ¿Hay paquetes de bases de datos similares que usted recomienda?

¿Fue útil?

Solución

Yo sin duda ir a por un ORM, al menos si se está trabajando en un proyecto grande, para el que no desea utilizar las funciones mysqli_* o PDO / métodos directamente - Doctrina siendo el más desarrollado de / utilizado, en la actualidad (Es el ORM por defecto de Symfony, y puede ser integrado en Zend Framework con bastante facilidad) .

Sobre los errores E_DEPRECATED, sin embargo: PHP 5.3 es bastante joven, y un montón de bibliotecas / software / proyectos no se han adaptado todavía - es probable que tenga un montón de aquellos en el próximo par de meses: - (

Otros consejos

También puede actualizar a la versión beta 3 a través de la línea de comandos

pear upgrade MDB2-beta
pear upgrade MDB2_Driver_Mysql-beta

Explicación de por qué la versión estable actual no es compatible con los informes de errores estricta: http://pear.php.net/bugs/bug.php?id=9756

Fuente para la orden:
http://pear.php.net/bugs/bug.php?id=18050

Voy a comentar sobre esto, ya que viene en lo alto de resultados de búsqueda de Google para el problema.

entré en contacto con el desarrollador principal de MDB2, que dijo:

  

Por favor, echa un vistazo a una copia de MDB2 desde SVN, es totalmente compatible PHP5.3, con muchas mejoras de rendimiento. Actualmente estoy a la espera de algunas correcciones al nuevo controlador de SQL Server (Microsoft está trabajando en ello esta misma semana), entonces Voy a empujar una nueva versión estable.

(Editar, 4 años más tarde: Esto ya no es correcto, no haga esto)

Acabo de ir y descargar la última versión del MDB2 (MDB2-2.5.0b3) de aquí http : //pear.php.net/package/MDB2/download y se ha librado de todos mis errores. Parece funcionar bien con PHP versión 5.3.5

Puede utilizar Zend Framework soporte de base de datos o utilizar un ORM como doctrina o Propel

Tengo alrededor de todos los errores y advertencias en desuso, utilizando MDB2 y PHP 5.3, pero yo he conseguido algunos errores muy extraños en MDB2, por lo que se pregunta lo que pasa debajo del capó. Mi entorno es CentOS, PHP 5.3, MDB2-2.4.1, MySQL 5.0.77

En cualquier momento, utilizo autoexecute 2x en un archivo PHP, el segundo está fallando (mismo pasa si trato de utilizar preparar y ejecutar a continuación). He estado tala a mi registro de consultas de MySQL, y al mismo tiempo un inserto exitosa mostrará los valores, una inserción no siempre tendrá sólo los marcadores de posición. es decir: los valores (?,?,?,?). Y el MDB2_Error se hablará siempre RECURSION

lastInsertId () nunca trabajó con las tablas de MySQL y campos autoincrement (con conductor mysqli)   Hice lo suficiente depuración en ella, profundizar en la pila de llamadas, y el resultado de conseguir tan envuelto en objetos, que no se puede saber lo que es, hasta el final. Me encanta estar usando MDB2 más, pero, de hecho, he tenido que volver a MySQL recta, en numerosas ocasiones a causa de estos problemas. Tal vez Lucas u otros desarrolladores podrían arrojar alguna luz sobre este tema, o punto en la dirección correcta.

Si sólo utiliza MDB2 para MySQL, se puede reemplazar y mantener la mayoría de las funciones con MDBDid: http://azure-dev.kiao.net/648-mdb2 Sólo tendrá poco código para adaptarse.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top