sql >> Database teknologi >  >> RDS >> Mysql

Hvordan omskriver man gammel mysql-php-kode med forældede mysql_*-funktioner?

Faktisk et enkelt, sødt og kort:Ja, ikke nødvendigt længere.

Lad os gennemgå koden, ikke at vi har mistet noget:

  • __construct - Konstruktøren indeholdt blot hele konfigurationen. PDO har et meget nemmere koncept her, en forbindelsesstreng, der indeholder mest information:

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

    Også PDO leverer konstruktøren til brug færdiglavet, så dobbelt er ikke nødvendigt.

  • connect - Tilslutningsfunktionen er heller ikke længere nødvendig. Dette gøres ved allerede at instantiere PDO. Du kan se efter undtagelser, PHP-manualen har et eksempel på sin konstruktørside .

  • selectDb - Denne komplicerede funktion er heller ikke nødvendig længere. Wow, den tredje funktion kan vi bare droppe på grund af PDO-forbindelsesstrengen. Meget kraft med så færre karakterer. Skål!

  • __destruct - Destruktoren. Lad os være retfærdige:MySQL havde heller ikke brug for dette. Men med PDO får vi det gratis - uden at skrive en eneste linje kode.

Ser godt ud! Det lykkedes dig at migrere fra den obskure databaseklasse til PDO ved at fjerne forældet kode! Tillykke:

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

Hvis du nu tænker, hvad så hvis jeg vil have databaseklasse alene? Det kan du godt, for du kan udvide fra PDO (ja det virker!):

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

Hvorfor vil du måske gøre det? Ingen idé, men måske er det mere flydende for din kode. Hvis du leder efter et bedre kodeeksempel, har jeg et på PHP/MySQL-tabel med hyperlinks .



  1. Formater måneden i romertal i PostgreSQL

  2. Betinget SUM på Oracle

  3. MySQL i skyen - fordele og ulemper ved Amazon RDS

  4. Hvordan installeres postgres med NSIS med alle parametre?