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?
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);
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);
Melaksanakan Pertanyaan
PDO menggunakan pernyataan yang disediakan untuk mengelakkan kelemahan suntikan SQL.
$SQL = 'SELECT ID, EMAIL FROM users WHERE name = :username'; $stmt = $connection->prepare($SQL); $stmt->execute([':username' => 'someone']);
$SQL = 'SELECT ID, EMAIL FROM users WHERE name = ?'; $stmt = $connection->prepare($SQL); $stmt->execute(['someone']);
Mengambil Keputusan
$row = $stmt->fetch(PDO::FETCH_ASSOC);
$rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
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 } }
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!