Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk Berhijrah dari Fungsi MySQL ke PDO_MySQL?

Bagaimana untuk Berhijrah dari Fungsi MySQL ke PDO_MySQL?

Susan Sarandon
Susan Sarandonasal
2024-11-26 08:54:10640semak imbas

How to Migrate from MySQL Functions to PDO_MySQL?

Cara Menggantikan Fungsi MySQL dengan PDO

Fungsi MySQL kini tidak digunakan lagi dan akan dialih keluar dalam versi PHP akan datang. MySQLi atau PDO_MySQL hendaklah digunakan sebaliknya.

Pelaksanaan PDO

PDO menyediakan antara muka yang konsisten untuk menyambung ke pangkalan data yang berbeza, termasuk MySQL dan MSSQL.

Sambungan:

  • MySQL:

    $dsn = 'mysql:dbname=databasename;host=127.0.0.1';
    $dbh = new PDO($dsn, 'dbuser', 'dbpass');
  • MSSQL:

    $dsn = 'sqlsrv:Server=127.0.0.1;Database=databasename';
    $dbh = new PDO($dsn, 'dbuser', 'dbpass');

Melaksanakan Pertanyaan:

PDO menggunakan pernyataan yang disediakan, yang menghalang kelemahan suntikan SQL.

$SQL = 'SELECT ID, EMAIL FROM users WHERE user = :username';

Melaksanakan Pertanyaan:

Gunakan sediakan dan laksanakan untuk pertanyaan berubah-ubah.

$query = $dbh->prepare($SQL);
$query->execute([':username' => 'someone']);

Mengambil Keputusan:

Gunakan fetch atau fetchAll untuk mendapatkan semula hasil.

while ($row = $query->fetch()) {
    echo $row['ID'], $row['EMAIL'];
}

Pengendalian Pengecualian:

Dayakan pengendalian pengecualian PDO.

$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

Kemudahan Kelas:

class PDOConnection {
    function __construct($dsn, $username, $password) {
        $this->connection = new PDO($dsn, $username, $password);
        $this->connection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        $this->connection->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
    }

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

Atas ialah kandungan terperinci Bagaimana untuk Berhijrah dari Fungsi MySQL ke PDO_MySQL?. 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