Heim >Backend-Entwicklung >PHP-Tutorial >Wie wechselt man in PHP von veralteten MySQL-Funktionen zu PDO?

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

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-10 22:01:031018Durchsuche

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);

MSSQL Verbindung:

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

$dbh = new PDO($dsn, $user, $password);

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);

Indizierte Platzhalter:

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

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

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));

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!

Stellungnahme:
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