Rumah > pangkalan data > tutorial mysql > Mengapa Saya Perlu Menggantikan Fungsi MySQL dengan PDO dalam PHP?

Mengapa Saya Perlu Menggantikan Fungsi MySQL dengan PDO dalam PHP?

Mary-Kate Olsen
Lepaskan: 2025-01-10 08:53:45
asal
776 orang telah melayarinya

Why Should I Replace MySQL Functions with PDO in PHP?

Peralihan daripada Fungsi MySQL kepada PDO dalam PHP

Fungsi MySQL PHP dijadualkan untuk penamatan dan akhirnya dialih keluar. Untuk memastikan keserasian masa hadapan dan memanfaatkan keselamatan dan fungsi yang dipertingkatkan, pembangun harus berhijrah ke PHP Data Objects (PDO), lapisan akses pangkalan data berorientasikan objek yang teguh.

Kelebihan PDO:

  • Pemodenan: PDO menggantikan fungsi MySQL yang lapuk dengan pendekatan kontemporari.
  • Agnostisisme Pangkalan Data: PDO menyediakan antara muka yang konsisten untuk menyambung ke pelbagai sistem pangkalan data, bukan hanya MySQL. Ini memudahkan penukaran pangkalan data dan meningkatkan kemudahalihan kod.
  • Pencegahan Suntikan SQL: Kenyataan yang disediakan PDO adalah penting untuk mencegah kelemahan suntikan SQL, kebimbangan keselamatan utama.

Menyambung ke Pangkalan Data dengan PDO

Sambungan MySQL:

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

$dbh = new PDO($dsn, $user, $password);
Salin selepas log masuk

Sambungan MSSQL:

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

$dbh = new PDO($dsn, $user, $password);
Salin selepas log masuk

Melaksanakan Pertanyaan dengan Penyata Disediakan

PDO menggunakan pernyataan yang disediakan untuk pelaksanaan pertanyaan yang cekap dan selamat. Begini cara untuk mengikat pembolehubah:

Parameter Dinamakan:

$statement = $dbh->prepare('SELECT * FROM users WHERE name = :username');
$statement->execute([':username' => 'example']);
Salin selepas log masuk

Parameter Terindeks:

$statement = $dbh->prepare('SELECT * FROM users WHERE name = ?');
$statement->execute(['example']);
Salin selepas log masuk

Mendapatkan Keputusan Pertanyaan

Beberapa kaedah memudahkan pengambilan keputusan:

  • fetch(): Mengembalikan satu baris sebagai tatasusunan.
  • fetchAll(): Mengembalikan semua baris sebagai tatasusunan.
  • rowCount(): Menyediakan bilangan baris yang terjejas (berguna untuk INSERT, UPDATE, DELETE).

Contoh Kelas Sambungan PDO

Untuk organisasi kod yang dipertingkatkan dan kebolehgunaan semula, pertimbangkan kelas PDO tersuai:

class MyPDO {
    public $dbh;

    public function __construct($dsn, $username, $password) {
        $this->dbh = new PDO($dsn, $username, $password);
        $this->dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    }

    public function query($sql) {
        return $this->dbh->query($sql);
    }

    public function prepare($sql) {
        return $this->dbh->prepare($sql);
    }
}

// Example Usage:
$mypdo = new MyPDO($dsn, $username, $password);
$stmt = $mypdo->prepare('SELECT * FROM users WHERE name = :name');
$stmt->execute([':name' => 'example']);
while ($row = $stmt->fetch()) {
    echo $row['name'];
}
Salin selepas log masuk

Atas ialah kandungan terperinci Mengapa Saya Perlu Menggantikan Fungsi MySQL dengan PDO dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan