Heim >Datenbank >MySQL-Tutorial >Warum sollte ich MySQL-Funktionen in PHP durch PDO ersetzen?
Übergang von MySQL-Funktionen zu PDO in PHP
Die MySQL-Funktionen von PHP sollen veraltet sein und eventuell entfernt werden. Um zukünftige Kompatibilität sicherzustellen und verbesserte Sicherheit und Funktionalität zu nutzen, sollten Entwickler auf PHP Data Objects (PDO) migrieren, eine robuste, objektorientierte Datenbankzugriffsschicht.
Die Vorteile von PDO:
Herstellen einer Verbindung zu Datenbanken mit PDO
MySQL-Verbindung:
<code class="language-php">$dsn = 'mysql:dbname=databasename;host=127.0.0.1'; $user = 'dbuser'; $password = 'dbpass'; $dbh = new PDO($dsn, $user, $password);</code>
MSSQL-Verbindung:
<code class="language-php">$dsn = 'sqlsrv:Server=127.0.0.1;Database=databasename'; $user = 'dbuser'; $password = 'dbpass'; $dbh = new PDO($dsn, $user, $password);</code>
Abfragen mit vorbereiteten Anweisungen ausführen
PDO nutzt vorbereitete Anweisungen für eine effiziente und sichere Abfrageausführung. So binden Sie Variablen:
Benannte Parameter:
<code class="language-php">$statement = $dbh->prepare('SELECT * FROM users WHERE name = :username'); $statement->execute([':username' => 'example']);</code>
Indizierte Parameter:
<code class="language-php">$statement = $dbh->prepare('SELECT * FROM users WHERE name = ?'); $statement->execute(['example']);</code>
Abfrageergebnisse abrufen
Mehrere Methoden erleichtern das Abrufen der Ergebnisse:
fetch()
: Gibt eine einzelne Zeile als Array zurück.fetchAll()
: Gibt alle Zeilen als Array von Arrays zurück.rowCount()
: Gibt die Anzahl der betroffenen Zeilen an (nützlich für INSERT, UPDATE, DELETE).Ein Beispiel für eine PDO-Verbindungsklasse
Für eine verbesserte Codeorganisation und Wiederverwendbarkeit sollten Sie eine benutzerdefinierte PDO-Klasse in Betracht ziehen:
<code class="language-php">class MyPDO { public $dbh; public function __construct($dsn, $username, $password) { $this->dbh = new PDO($dsn, $username, $password); $this->dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } public function query($sql) { return $this->dbh->query($sql); } public function prepare($sql) { return $this->dbh->prepare($sql); } } // Example Usage: $mypdo = new MyPDO($dsn, $username, $password); $stmt = $mypdo->prepare('SELECT * FROM users WHERE name = :name'); $stmt->execute([':name' => 'example']); while ($row = $stmt->fetch()) { echo $row['name']; }</code>
Das obige ist der detaillierte Inhalt vonWarum sollte ich MySQL-Funktionen in PHP durch PDO ersetzen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!