Rumah > pembangunan bahagian belakang > tutorial php > Bagaimanakah saya boleh menggantikan fungsi MySQL dengan PDO untuk keselamatan dan prestasi yang lebih baik?

Bagaimanakah saya boleh menggantikan fungsi MySQL dengan PDO untuk keselamatan dan prestasi yang lebih baik?

Barbara Streisand
Lepaskan: 2024-11-09 07:12:02
asal
316 orang telah melayarinya

How can I replace MySQL functions with PDO for improved security and performance?

Menggantikan Fungsi MySQL dengan PDO

Pengenalan

Pelanjutan mysql untuk PHP ditamatkan dan akan dialih keluar pada masa hadapan . Sebagai alternatif, sambungan PDO (Objek Data PHP) disyorkan untuk menyambung ke MySQL dan pangkalan data lain. Artikel ini menyediakan panduan tentang cara menggantikan fungsi mysql dengan PDO.

Mengapa Tukar kepada PDO?

  • Keselamatan yang dipertingkatkan: PDO menyediakan perlindungan terhadap serangan suntikan SQL.
  • Prestasi yang dipertingkatkan: PDO meminimumkan overhed dan menyediakan mekanisme caching yang lebih baik.
  • Pengabstrakan pangkalan data: PDO membolehkan lancar sambungan kepada pelbagai jenis pangkalan data.

Menyambung ke MySQL

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

$connection = new PDO($dsn, $user, $password);
$connection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
Salin selepas log masuk

Menyambung ke MSSQL

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

$connection = new PDO($dsn, $user, $password);
$connection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
Salin selepas log masuk

Melaksanakan Pertanyaan

PDO menggunakan pernyataan yang disediakan untuk mengelakkan kelemahan suntikan SQL.

  • Pertanyaan yang disediakan dengan parameter bernama:
$SQL = 'SELECT ID, EMAIL FROM users WHERE name = :username';
$stmt = $connection->prepare($SQL);
$stmt->execute([':username' => 'someone']);
Salin selepas log masuk
  • Pertanyaan yang disediakan dengan parameter diindeks:
$SQL = 'SELECT ID, EMAIL FROM users WHERE name = ?';
$stmt = $connection->prepare($SQL);
$stmt->execute(['someone']);
Salin selepas log masuk

Mengambil Keputusan

  • Mengambil satu baris sebagai tatasusunan:
$row = $stmt->fetch(PDO::FETCH_ASSOC);
Salin selepas log masuk
  • Mengambil semua baris sebagai tatasusunan:
$rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
Salin selepas log masuk

Kelas Contoh

Kelas sambungan PDO mudah untuk merangkum operasi biasa:

class PdoConnection {

    public function __construct($dsn, $user, $password, $options = []) {
        // ... initialize connection
    }

    public function query($sql) {
        // ... execute query and return result
    }

    public function prepare($sql, $params = []) {
        // ... execute prepared query and return result
    }
}
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimanakah saya boleh menggantikan fungsi MySQL dengan PDO untuk keselamatan dan prestasi yang lebih baik?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
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