sql >> Databasteknik >  >> RDS >> Mysql

Hur man framgångsrikt skriver om gammal mysql-php-kod med föråldrade mysql_*-funktioner?

Egentligen en enkel, söt och kortfattad:Ja, det behövs inte längre.

Låt oss granska koden, inte att vi har förlorat något:

  • __construct - Konstruktören innehöll bara all konfiguration. PDO har ett mycket enklare koncept här, en anslutningssträng som innehåller mest information:

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

    PDO tillhandahåller också konstruktorn för användning färdig, så dubbelt behövs inte.

  • connect - Anslutningsfunktionen behövs inte längre heller. Detta görs genom att instansiera PDO redan. Du kan leta efter undantag, PHP-manualen har ett exempel på sin konstruktorsida .

  • selectDb – Den här komplicerade funktionen behövs inte längre heller. Wow, den tredje funktionen kan vi bara släppa på grund av PDO-anslutningssträngen. Mycket kraft med så färre karaktärer. Skål!

  • __destruct - Förstöraren. Låt oss vara rättvisa:MySQL behövde inte detta också. Men med PDO får vi det gratis - utan att skriva en enda kodrad.

Ser bra ut! Du lyckades migrera från den obskyra databasklassen till PDO genom att ta bort föråldrad kod! Grattis:

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

Om du nu tänker, vad sägs om om jag vill ha databasklass på egen hand? Jo du kan göra det, eftersom du kan utöka från PDO (ja det fungerar!):

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

Varför kanske du vill göra det? Ingen aning, men det kanske är mer flytande för din kod. Om du letar efter ett bättre kodexempel har jag ett på PHP/MySQL-tabell med hyperlänkar .



  1. Hämta en lista över privata procedurer/funktioner från en paketkropp

  2. Närmaste match, del 3

  3. Hur skapar man en katalog i Oracle?

  4. Vilka är de 6 huvudkomponenterna i Microsoft Access?