Rumah >pembangunan bahagian belakang >tutorial php >Memahami PDO dalam PHP dan Mengapa Ia Disyorkan Daripada Fungsi `mysql_*`
Objek Data PHP (PDO) ialah lapisan abstraksi capaian pangkalan data dalam PHP yang menyediakan antara muka yang konsisten untuk mengakses pelbagai jenis pangkalan data, termasuk MySQL, PostgreSQL, SQLite dan lain-lain. PDO dianggap sebagai pendekatan moden untuk berinteraksi dengan pangkalan data dalam PHP, menggantikan fungsi lama seperti mysql_*, yang telah ditamatkan dan dialih keluar dalam PHP 7.0.
Dalam artikel ini, kita akan menyelami apa itu PDO, cara ia berfungsi dan sebab ia disyorkan melalui fungsi mysql_* untuk interaksi pangkalan data dalam PHP.
PDO ialah sambungan yang menyediakan antara muka seragam untuk mengakses pelbagai jenis pangkalan data. Ia menyokong berbilang sistem pengurusan pangkalan data (DBMS), bermakna anda boleh bertukar antara pangkalan data dengan perubahan minimum pada kod anda. PDO menyediakan satu set kaedah untuk menyambung ke pangkalan data, melaksanakan pertanyaan dan mengendalikan hasil.
Ciri utama PDO:
Dalam PHP 5.5, fungsi mysql_* telah ditamatkan secara rasmi, dan ia telah dialih keluar sepenuhnya dalam PHP 7.0. Ini bermakna aplikasi yang menggunakan fungsi mysql_* mungkin mengalami masalah keserasian dengan versi PHP yang lebih baharu.
PDO menyediakan ciri keselamatan yang lebih baik, terutamanya melalui sokongannya untuk penyataan yang disediakan dan pertanyaan berparameter, yang mengurangkan risiko serangan SQL injection dengan ketara.
// Example using PDO with prepared statements $stmt = $pdo->prepare('SELECT * FROM users WHERE username = :username AND password = :password'); $stmt->bindParam(':username', $username); $stmt->bindParam(':password', $password); $stmt->execute();
Fungsi mysql_* adalah khusus untuk pangkalan data MySQL, bermakna jika anda memutuskan untuk menukar kepada pangkalan data lain (cth., PostgreSQL atau SQLite), anda perlu menulis semula kebanyakan kod pangkalan data anda.
// Example of connecting to different databases with PDO // MySQL connection $pdo_mysql = new PDO('mysql:host=localhost;dbname=test', 'username', 'password'); // PostgreSQL connection $pdo_pgsql = new PDO('pgsql:host=localhost;dbname=test', 'username', 'password');
Ini bermakna kod anda boleh berfungsi dengan lancar merentas pangkalan data yang berbeza, mengurangkan kunci masuk vendor dan menjadikannya lebih mudah untuk menukar pangkalan data jika perlu.
PDO menyediakan pengendalian ralat yang mantap melalui pengecualian, yang menjadikannya lebih mudah untuk menangkap dan mengurus ralat berbanding dengan fungsi mysql_*.
// mysql_* error handling $link = mysql_connect("localhost", "user", "password"); if (!$link) { die('Could not connect: ' . mysql_error()); }
try { $pdo = new PDO('mysql:host=localhost;dbname=test', 'username', 'password'); $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } catch (PDOException $e) { echo 'Connection failed: ' . $e->getMessage(); }
Pengendalian pengecualian ini lebih mantap dan membolehkan anda mengurus ralat pangkalan data dengan lebih cekap.
PDO menawarkan beberapa ciri lanjutan yang fungsi mysql_* tidak:
// Example using PDO with prepared statements $stmt = $pdo->prepare('SELECT * FROM users WHERE username = :username AND password = :password'); $stmt->bindParam(':username', $username); $stmt->bindParam(':password', $password); $stmt->execute();
Pemegang Tempat Dinamakan: PDO menyokong pemegang tempat bernama (cth., :nama pengguna, :kata laluan), yang menjadikan pertanyaan lebih mudah dibaca dan lebih mudah dikekalkan, berbanding pendekatan mysql_* bagi pemegang tempat kedudukan.
Mengambil Keputusan: PDO menawarkan pelbagai kaedah untuk mengambil hasil, seperti fetch(), fetchAll(), dan fetchColumn(), dengan pilihan untuk mengembalikan data sebagai tatasusunan bersekutu, objek , atau format lain.
PDO ialah kaedah yang disyorkan untuk berinteraksi dengan pangkalan data dalam PHP kerana fleksibiliti, keselamatan dan ciri yang mantap. Tidak seperti fungsi mysql_* yang telah ditamatkan, PDO menyediakan antara muka yang konsisten merentas berbilang sistem pangkalan data, menyokong pernyataan yang disediakan untuk melindungi daripada suntikan SQL dan menawarkan pengendalian ralat yang lebih baik. Dengan PDO, anda boleh menulis kod yang lebih selamat, boleh diselenggara dan berskala untuk aplikasi dipacu pangkalan data anda.
Atas ialah kandungan terperinci Memahami PDO dalam PHP dan Mengapa Ia Disyorkan Daripada Fungsi `mysql_*`. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!