Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Berhijrah daripada Fungsi MySQL yang Dihentikan kepada PDO untuk MySQL dan MSSQL?

Bagaimana untuk Berhijrah daripada Fungsi MySQL yang Dihentikan kepada PDO untuk MySQL dan MSSQL?

Mary-Kate Olsen
Mary-Kate Olsenasal
2025-01-10 09:33:42458semak imbas

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

Tukar fungsi MySQL kepada PDO untuk MySQL dan MSSQL

Penyingkiran fungsi MySQL dan alternatif

Pelanjutan fungsi MySQL ditamatkan dan akan dialih keluar dalam keluaran akan datang. Adalah disyorkan untuk menggunakan MySQLi atau sambungan PDO_MySQL sebagai alternatif. MySQLi dan PDO menyediakan keselamatan dan fungsi yang lebih baik berbanding dengan fungsi MySQL.

Melaksanakan PDO

PDO (Objek Data PHP) ialah API berorientasikan objek untuk mengakses pangkalan data. Untuk menyambung ke pangkalan data menggunakan PDO, cipta contoh PDO baharu menggunakan pembina PDO.

Sambung ke MySQL

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

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

Sambung ke MSSQL

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

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

Gunakan PDO untuk melaksanakan pertanyaan

PDO menggunakan pernyataan yang disediakan untuk mengelakkan kelemahan suntikan SQL. Kenyataan yang disediakan mentakrifkan pertanyaan SQL dengan ruang letak yang dinamakan atau diindeks untuk mewakili pembolehubah.

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

Ikat pembolehubah

Gunakan bindParam atau bindValue untuk mengikat nilai pada pernyataan yang disediakan.

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

Lakukan pertanyaan

Laksanakan kenyataan yang disediakan untuk mendapatkan hasil.

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

Dapatkan hasil

PDO menyediakan kaedah seperti fetch dan fetchAll untuk mendapatkan semula hasil sebagai tatasusunan.

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

Gunakan kelas sambungan PDO

Anda boleh mencipta kelas sambungan PDO untuk memudahkan operasi pangkalan data.

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

Atas ialah kandungan terperinci Bagaimana untuk Berhijrah daripada Fungsi MySQL yang Dihentikan kepada PDO untuk MySQL dan MSSQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn