Rumah >pangkalan data >tutorial mysql >Mengapa Saya Perlu Menggantikan Fungsi MySQL dengan PDO dalam 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:
Menyambung ke Pangkalan Data dengan PDO
Sambungan MySQL:
<code class="language-php">$dsn = 'mysql:dbname=databasename;host=127.0.0.1'; $user = 'dbuser'; $password = 'dbpass'; $dbh = new PDO($dsn, $user, $password);</code>
Sambungan MSSQL:
<code class="language-php">$dsn = 'sqlsrv:Server=127.0.0.1;Database=databasename'; $user = 'dbuser'; $password = 'dbpass'; $dbh = new PDO($dsn, $user, $password);</code>
Melaksanakan Pertanyaan dengan Penyata Disediakan
PDO menggunakan pernyataan yang disediakan untuk pelaksanaan pertanyaan yang cekap dan selamat. Begini cara untuk mengikat pembolehubah:
Parameter Dinamakan:
<code class="language-php">$statement = $dbh->prepare('SELECT * FROM users WHERE name = :username'); $statement->execute([':username' => 'example']);</code>
Parameter Terindeks:
<code class="language-php">$statement = $dbh->prepare('SELECT * FROM users WHERE name = ?'); $statement->execute(['example']);</code>
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:
<code class="language-php">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']; }</code>
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!