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

Cambiar sitio web grande de MySQL a MySQLi

No hay una respuesta fácil a su pregunta, ya que prácticamente todas las formas simples de hacer esto implicaban hacer las cosas de manera diferente cuando se escribió la aplicación.

Si tiene llamadas directas a funciones mysql_* en todo su código y no tiene una capa de abstracción de base de datos en la que realiza sus consultas a través de una clase o función auxiliar, deberá editar cada comando.

No puede simplemente agregar una i a comandos como mysql_query como procedimentalmente mysqli_query() requiere que el primer parámetro sea el enlace a la base de datos donde con mysql_query() si se proporcionó una conexión, fue un segundo parámetro.

En lugar de simplemente cambiar mysql_query(...) a mysqli_query($link,.....) recomendaría que no haya mejor momento para poner una capa de abstracción de db en su lugar. Por lo tanto, use funciones, por ejemplo, sql_query() que realmente procesan sus consultas, de modo que en el futuro, si necesita cambiar la base de datos nuevamente, puede actualizar los comandos específicos de la base de datos en un archivo de abstracción. De esa manera, si escribe una función que envuelve mysqli_query, entonces podría simplemente cambiar el nombre de mysql_query() a su función de ayuda y dejar que la función de ayuda se preocupe por poner el enlace allí.

Si bien esa es la forma más sencilla, no vinculará parámetros ni preparará declaraciones, lo cual es un factor importante para prevenir vulnerabilidades de inyección de sql

Una vez que haya cambiado todos estos comandos, debe probar.

Si no tiene pruebas automatizadas escritas, probablemente este sea un buen momento para comenzar a escribirlas. Aunque deberá verificar que todos los cambios hayan funcionado, si lo hace mediante una prueba automática, puede evitar ese dolor en el futuro.