sql >> Database >  >> RDS >> Mysql

Hoe kan ik met succes oude mysql-php-code herschrijven met verouderde mysql_*-functies?

Eigenlijk simpel, lief en kort:ja, niet meer nodig.

Laten we de code eens bekijken, niet dat we iets zijn kwijtgeraakt:

  • __construct - De constructor bevatte alleen alle configuratie. PDO heeft hier een veel eenvoudiger concept, een verbindingsreeks met de meeste informatie:

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

    Ook levert PDO de constructor voor gebruik kant-en-klaar, dus dubbel niet nodig.

  • connect - De verbindingsfunctie is ook niet meer nodig. Dit wordt gedaan door PDO al te instantiëren. Je kunt uitzonderingen zoeken, de PHP-handleiding heeft een voorbeeld op de constructorpagina .

  • selectDb - Deze gecompliceerde functie is ook niet langer nodig. Wow, de derde functie kunnen we gewoon laten vallen vanwege de PDO-verbindingsreeks. Veel kracht met zo weinig karakters. Proost!

  • __destruct - De vernietiger. Laten we eerlijk zijn:MySQL had dit ook niet nodig. Met PDO krijgen we het echter gratis - zonder een enkele regel code te schrijven.

Ziet er goed uit! Je bent erin geslaagd om van die obscure databaseklasse naar PDO te migreren door verouderde code te verwijderen! Gefeliciteerd:

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

Als je nu denkt, wat als ik alleen databaseklasse wil hebben? Nou, dat kan, want je kunt uitbreiden vanaf PDO (ja dat werkt!):

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

Waarom zou je dat willen doen? Geen idee, maar misschien is het vloeiender voor jouw code. Als je op zoek bent naar een beter codevoorbeeld, ik heb er een op PHP/MySQL-tabel met hyperlinks .



  1. Fatale fout:aanroep van een lidfunctie query() op null

  2. ElasticSearch-indexstructuur instellen met bindingen met meerdere entiteiten

  3. Disaster Recovery voor Galera-cluster geïmplementeerd in een hybride cloud

  4. Duplicaat uit een tabel verwijderen