Wie wechselt man in PHP von veralteten MySQL-Funktionen zu PDO?

Mary-Kate Olsen
Freigeben: 2024-11-10 22:01:03
Original
957 Leute haben es durchsucht

How to Transition from Deprecated MySQL Functions to PDO in PHP?

So wechseln Sie von MySQL-Funktionen zu PDO

Veraltete MySQL-Funktionen

Moderne PHP-Versionen verwerfen die MySQL-Funktionen aufgrund ihrer Einschränkungen und Sicherheitsbedenken. Stattdessen sollten Entwickler die PDO- oder MySQLi-Erweiterungen verwenden, um die Datenbankkonnektivität und -sicherheit zu verbessern.

Einführung in PDO

PDO steht für PHP Data Objects und bietet eine konsistente API für Verbindung zu verschiedenen Datenbanksystemen, einschließlich MySQL und MSSQL. Im Gegensatz zu MySQL-Funktionen verwendet PDO eine einheitliche Schnittstelle und bietet erhöhte Sicherheit durch vorbereitete Anweisungen.

Verbindung zu Datenbanken

MySQL-Verbindung:

$dsn = 'mysql:dbname=databasename;host=127.0.0.1';
$user = 'dbuser';
$password = 'dbpass';

$dbh = new PDO($dsn, $user, $password);
Nach dem Login kopieren

MSSQL Verbindung:

$dsn = 'sqlsrv:Server=127.0.0.1;Database=databasename';
$user = 'dbuser';
$password = 'dbpass';

$dbh = new PDO($dsn, $user, $password);
Nach dem Login kopieren

Abfragen ausführen

PDO verwendet vorbereitete Anweisungen anstelle einfacher SQL-Strings, um SQL-Injection-Schwachstellen zu verhindern. Vorbereitete Anweisungen werden mit Platzhaltern erstellt, die später an Variablen gebunden werden.

Benannte Platzhalter:

$SQL = 'SELECT ID, EMAIL FROM users WHERE user = :username';
$queryArguments = array(':username' => $username);
$result = $dbh->prepare($SQL);
$result->execute($queryArguments);
Nach dem Login kopieren

Indizierte Platzhalter:

$SQL = 'SELECT ID, EMAIL FROM users WHERE user = ?';
$bindParamResults = array($username);
$result = $dbh->prepare($SQL);
$result->bindParam(1, $bindParamResults[0]);
$result->execute();
Nach dem Login kopieren

Abrufen Ergebnisse

Ergebnisse können mit verschiedenen Methoden wie fetch() und fetchAll() abgerufen werden.

$row = $result->fetch(PDO::FETCH_ASSOC);  // Returns an associative array
$allRows = $result->fetchAll(PDO::FETCH_ASSOC);  // Returns an array of associative arrays
Nach dem Login kopieren

Beispiel-PDO-Klasse

class PDOC {

    public function __construct($dsn, $user, $password) {
        $this->dbh = new PDO($dsn, $user, $password);
    }

    public function query($sql, $params = array()) {
        $stmt = $this->dbh->prepare($sql);
        $stmt->execute($params);
        return $stmt;
    }
}
$pdod = new PDOC('mysql:dbname=db;host=localhost', 'root', '');

$query = $pdod->query('SELECT * From table WHERE id = ?', array(2));
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie wechselt man in PHP von veralteten MySQL-Funktionen zu PDO?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage