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>
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>
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>
Variablen binden
Verwenden Sie bindParam
oder bindValue
, um Werte an vorbereitete Anweisungen zu binden.
<code class="language-php">$preparedStatement->bindParam(':username', $username);</code>
Abfrage ausführen
Führen Sie vorbereitete Anweisungen aus, um Ergebnisse zu erhalten.
<code class="language-php">$preparedStatement->execute();</code>
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>
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>
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!