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

¿Cómo reescribir con éxito el antiguo código mysql-php con funciones obsoletas de mysql_*?

En realidad, un simple, dulce y breve:Sí, ya no es necesario.

Repasemos el código no es que hayamos perdido algo:

  • __construct - El constructor simplemente contenía toda la configuración. PDO tiene un concepto mucho más sencillo aquí, una cadena de conexión que contiene la mayor cantidad de información:

     mysql:host=127.0.0.1;dbname=people;charset=UTF-8
    

    Además, PDO proporciona el constructor listo para usar, por lo que el doble no es necesario.

  • connect - La función de conexión ya no es necesaria. Esto se hace instanciando PDO ya. Puede buscar excepciones, el manual de PHP tiene un ejemplo en su página de constructor .

  • selectDb - Esta complicada función ya no es necesaria. Guau, la tercera función que podemos descartar debido a la cadena de conexión PDO. Mucho poder con tan pocos personajes. ¡Salud!

  • __destruct - El destructor. Seamos justos:MySQL tampoco necesitaba esto. Sin embargo, con PDO lo obtenemos gratis, sin escribir una sola línea de código.

¡Se ve bien! ¡Logró migrar de esa oscura clase de base de datos a PDO eliminando el código obsoleto! Felicidades:

$db = new PDO('mysql:host=127.0.0.1;dbname=people;charset=UTF-8', 'root', 'pass');

Si ahora piensa, ¿qué pasa si quiero tener una clase de base de datos por mi cuenta? Bueno, puedes hacer eso, porque puedes extender desde PDO (¡sí, eso funciona!):

class DB extends PDO
{
   ... my super-new-shiny-code
}

¿Por qué querrías hacer eso? No tengo idea, pero tal vez sea más fluido para tu código. Si está buscando un mejor ejemplo de código, tengo uno en PHP/MySQL Table with Hyperlinks .