Heim > Datenbank > MySQL-Tutorial > Wie migriere ich von veralteten MySQL-Funktionen zu PDO für MySQL und MSSQL?

Wie migriere ich von veralteten MySQL-Funktionen zu PDO für MySQL und MSSQL?

Mary-Kate Olsen
Freigeben: 2025-01-10 09:33:42
Original
521 Leute haben es durchsucht

How to Migrate from Deprecated MySQL Functions to PDO for MySQL and MSSQL?

MySQL-Funktionen in PDO für MySQL und MSSQL konvertieren

Veraltete MySQL-Funktionen und Alternativen

MySQL-Funktionserweiterungen sind veraltet und werden in einer zukünftigen Version entfernt. Es wird empfohlen, alternativ MySQLi oder die PDO_MySQL-Erweiterung zu verwenden. MySQLi und PDO bieten im Vergleich zu MySQL-Funktionen eine verbesserte Sicherheit und Funktionalität.

PDO implementieren

PDO (PHP Data Objects) ist eine objektorientierte API für den Zugriff auf Datenbanken. Um über PDO eine Verbindung zu einer Datenbank herzustellen, erstellen Sie mit dem PDO-Konstruktor eine neue PDO-Instanz.

Mit MySQL verbinden

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

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

Mit MSSQL verbinden

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

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

Verwenden Sie PDO, um Abfragen auszuführen

PDO verwendet vorbereitete Anweisungen, um SQL-Injection-Schwachstellen zu verhindern. Eine vorbereitete Anweisung definiert eine SQL-Abfrage mit benannten oder indizierten Platzhaltern zur Darstellung von Variablen.

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

Variablen binden

Verwenden Sie bindParam oder bindValue, um Werte an vorbereitete Anweisungen zu binden.

$preparedStatement->bindParam(':username', $username);
Nach dem Login kopieren

Abfrage ausführen

Führen Sie vorbereitete Anweisungen aus, um Ergebnisse zu erhalten.

$preparedStatement->execute();
Nach dem Login kopieren

Ergebnisse erzielen

PDO bietet Methoden wie fetch und fetchAll, um Ergebnisse als Array abzurufen.

while ($row = $preparedStatement->fetch()) {
    echo $row['ID'];
    echo $row['EMAIL'];
}
Nach dem Login kopieren

PDO-Verbindungsklasse verwenden

Sie können eine PDO-Verbindungsklasse erstellen, um Datenbankoperationen zu vereinfachen.

class Database {

    protected $connection;

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

    public function query($SQL) {
        return $this->connection->query($SQL);
    }

    public function prepare($SQL, $params = []) {
        $preparedStatement = $this->connection->prepare($SQL);
        $preparedStatement->execute($params);
        return $preparedStatement;
    }

}

// 使用方法:
$db = new Database($dsn, $user, $password);

$SQL = 'SELECT ID, EMAIL FROM users WHERE user = :username';
$result = $db->prepare($SQL, ['username' => $username]);

while ($row = $result->fetch()) {
    echo $row['ID'];
    echo $row['EMAIL'];
}
Nach dem Login kopieren

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

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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage