Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment réécrire avec succès l'ancien code mysql-php avec des fonctions mysql_* obsolètes ?

En fait, un simple, doux et court :Oui, plus nécessaire.

Passons en revue le code non pas que nous ayons perdu quelque chose :

  • __construct - Le constructeur contenait simplement toute la configuration. PDO a un concept beaucoup plus simple ici, une chaîne de connexion contenant le plus d'informations :

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

    De plus, PDO fournit le constructeur pour une utilisation prête à l'emploi, donc le double n'est pas nécessaire.

  • connect - La fonction de connexion n'est plus nécessaire non plus. Cela se fait en instanciant déjà PDO. Vous pouvez rechercher des exceptions, le manuel PHP contient un exemple sur sa page constructeur .

  • selectDb - Cette fonction compliquée n'est plus nécessaire non plus. Wow, la troisième fonction que nous pouvons supprimer à cause de la chaîne de connexion PDO. Beaucoup de puissance avec tellement moins de personnages. Santé !

  • __destruct - Le destructeur. Soyons justes :MySQL n'en avait pas besoin non plus. Cependant, avec PDO, nous l'obtenons gratuitement - sans écrire une seule ligne de code.

Cela semble bon! Vous avez réussi à migrer de cette classe de base de données obscure vers PDO en supprimant le code obsolète ! Félicitations :

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

Si vous pensez maintenant, qu'en est-il si je veux avoir une classe de base de données par moi-même ? Eh bien, vous pouvez le faire, car vous pouvez étendre à partir de PDO (oui ça marche !) :

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

Pourquoi voudriez-vous faire ça? Aucune idée, mais c'est peut-être plus fluide pour votre code. Si vous cherchez un meilleur exemple de code, j'en ai un sur PHP/MySQL Table with Hyperlinks .