Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Beralih daripada Fungsi MySQL yang Dihentikan kepada PDO dalam PHP?

Bagaimana untuk Beralih daripada Fungsi MySQL yang Dihentikan kepada PDO dalam PHP?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-10 22:01:03965semak imbas

How to Transition from Deprecated MySQL Functions to PDO in PHP?

Cara Beralih daripada Fungsi MySQL ke PDO

Fungsi MySQL Ditangguhkan

Versi PHP Moden menghentikan fungsi MySQL kerana batasan dan kebimbangan keselamatannya. Sebaliknya, pembangun harus menggunakan sambungan PDO atau MySQLi untuk ketersambungan dan keselamatan pangkalan data yang lebih baik.

Pengenalan kepada PDO

PDO adalah singkatan dari PHP Data Objects dan menyediakan API yang konsisten untuk menyambung ke sistem pangkalan data yang berbeza, termasuk MySQL dan MSSQL. Tidak seperti fungsi MySQL, PDO menggunakan antara muka bersatu dan menawarkan peningkatan keselamatan melalui pernyataan yang disediakan.

Menyambung ke Pangkalan Data

Sambungan MySQL:

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

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

MSSQL Sambungan:

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

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

Melaksanakan Pertanyaan

PDO menggunakan pernyataan yang disediakan dan bukannya rentetan SQL biasa untuk mengelakkan kerentanan suntikan SQL. Penyata yang disediakan dibina dengan pemegang tempat yang kemudiannya terikat kepada pembolehubah.

Pemegang Tempat Dinamakan:

$SQL = 'SELECT ID, EMAIL FROM users WHERE user = :username';
$queryArguments = array(':username' => $username);
$result = $dbh->prepare($SQL);
$result->execute($queryArguments);

Pemegang Tempat Berindeks:

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

Mengambil Keputusan

Keputusan boleh diambil menggunakan pelbagai kaedah, seperti fetch() dan fetchAll().

$row = $result->fetch(PDO::FETCH_ASSOC);  // Returns an associative array
$allRows = $result->fetchAll(PDO::FETCH_ASSOC);  // Returns an array of associative arrays

Contoh Kelas PDO

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

Atas ialah kandungan terperinci Bagaimana untuk Beralih daripada Fungsi MySQL yang Dihentikan kepada PDO dalam PHP?. 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