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
465 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

<code class="language-php">$dsn = 'mysql:dbname=databasename;host=127.0.0.1';
$user = 'dbuser';
$password = 'dbpass';

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

Mit MSSQL verbinden

<code class="language-php">$dsn = 'sqlsrv:Server=127.0.0.1;Database=databasename';
$user = 'dbuser';
$password = 'dbpass';

$dbh = new PDO($dsn, $user, $password);</code>
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.

<code class="language-php">$SQL = 'SELECT ID, EMAIL FROM users WHERE user = :username';
$preparedStatement = $dbh->prepare($SQL);</code>
Nach dem Login kopieren

Variablen binden

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

<code class="language-php">$preparedStatement->bindParam(':username', $username);</code>
Nach dem Login kopieren

Abfrage ausführen

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

<code class="language-php">$preparedStatement->execute();</code>
Nach dem Login kopieren

Ergebnisse erzielen

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

<code class="language-php">while ($row = $preparedStatement->fetch()) {
    echo $row['ID'];
    echo $row['EMAIL'];
}</code>
Nach dem Login kopieren

PDO-Verbindungsklasse verwenden

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

<code class="language-php">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'];
}</code>
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!

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