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 .