2009-10-07 27 views
9

He estado utilizando paquetes de pera en php durante años. Estoy en el proceso de actualizar/mover un sitio que usa el paquete MDB2 pear y no se ha actualizado para PHP 5.3.X.Reemplazo para PEAR: MDB2 en PHP 5.3

En 5.3, MDB2 devuelve 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, ¿alguien más está usando MDB2 en estos días y tiene una solución? ¿Hay paquetes de bases de datos similares que recomiendas?

Respuesta

9

Yo sin duda ir a por un ORM, al menos si se está trabajando en un proyecto grande, por lo que no se desea utilizar mysqli_* o funciones/métodos PDO directamente - Doctrine siendo el más desarrollado/usado, hoy en día (Es el ORM predeterminado del framework Symfony, y se puede integrar fácilmente en Zend Framework).

Acerca de los errores E_DEPRECATED, aunque: PHP 5.3 es bastante joven, y muchas librerías/software/proyectos no se han adaptado todavía - probablemente tenga muchas de ellas en los próximos meses :-(

.
+0

Sí, estoy de acuerdo con la inmadurez de PHP 5.3, y entiendo que va a tomar un tiempo para que todos actualicemos nuestro código, pero no creo que MDB2 vaya a actualizarse nunca (me parece abandonado). Doctrine se ven geniales. Gracias. – mattweg

+0

De nada :-) ¡Diviértete con eso! –

7

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

me puso el desarrollador principal de MDB2, que dijo:

favor echa un vistazo a una copia de MDB2 de SVN, es totalmente compatible con PHP5.3, con muchas mejoras de rendimiento s. Actualmente estoy esperando algunas correcciones para el nuevo controlador de SQL Server (Microsoft está trabajando en ello esta misma semana), luego impulsaré una nueva versión estable.

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

3

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

0

Me salí todos los errores obsoletos y advertencias, utilizando MDB2 y PHP 5.3, pero he recibido algunos errores realmente extraños en MDB2, por lo que me pregunto qué pasa debajo del capó . Mi entorno es CentOS, PHP 5.3, MDB2-2.4.1, MySQL 5.0.77

En cualquier momento, uso autoExecute 2x en un archivo php, el segundo está fallando (lo mismo ocurre si trato de usar prepare y luego ejecuto) He estado ingresando a mi registro de consultas MySQL, y aunque un INSERT exitoso mostrará los valores, un INSERT fallido siempre tendrá solo los marcadores de posición. es decir: 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 consigo de tan envuelto en Objetos, que no puedes decir lo que es, hasta el final. Me encantaría usar MDB2 más, pero de hecho, he tenido que volver a mysql directamente, en numerosas ocasiones debido a estos problemas. Tal vez Lucas u otros desarrolladores puedan arrojar algo de luz sobre este tema, o apuntarnos en la dirección correcta.

+1

http://pear.php.net/bugs/bug.php?id=18050 dice que necesita actualizar su versión MDB2 de 2.4.1 a 2.5.0b3 – MECU

9

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 estricta informe de errores: http://pear.php.net/bugs/bug.php?id=9756

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

+0

Simplemente lanzando esto - Actualicé a MDB2-beta usando los comandos anteriores y mi sitio comenzó a romper sin arrojar errores. Todavía estoy tratando de encontrar la forma de solucionarlo con el cliente en cuestión que actualmente está enloqueciendo por la quiebra del sitio. –

+0

Editar: bueno, fue en realidad un error de error fatal en Mail/Queue que se introdujo recientemente. Actualicé mis paquetes de pera mientras estaba allí y así es como presenté el error. Parece que el parche aún no ha llegado a las actualizaciones, pero fue bastante fácil editar el archivo yo mismo. –