Dalam pembangunan aplikasi web moden, kebanyakannya perlu berinteraksi dengan pangkalan data untuk menyimpan dan mendapatkan data. Untuk memastikan kecekapan dan keselamatan interaksi, pembangun sering menggunakan sambungan PDO (Objek Data PHP) sebagai lapisan sambungan pangkalan data. Artikel ini akan memperkenalkan anda kepada cara menggunakan sambungan PDO untuk bekerja dengan pangkalan data MySQL.
PDO ialah cara universal untuk mengakses pelbagai pangkalan data yang disediakan oleh PHP. Ia membolehkan kami menggunakan pendekatan berorientasikan objek untuk menyambung ke pangkalan data dan melaksanakan pertanyaan. PDO menyokong pelbagai jenis pangkalan data seperti MySQL, SQLite, PostgreSQL dan Oracle. Menggunakan PDO mengelakkan penyata SQL pengekodan keras dan kelayakan akses pangkalan data dalam kod, yang meningkatkan kemudahalihan dan keselamatan kod.
Sebelum menggunakan PDO, anda perlu memastikan pemasangan PHP anda mengandungi sambungan PDO. Anda boleh menyemak sama ada PHP anda menyokong sambungan PDO menggunakan arahan berikut:
php -m | grep -i pdo
Jika ia mengeluarkan pdo_mysql dan pdo_sqlite (atau sesuatu yang serupa), maka pemasangan PHP anda sudah termasuk sambungan PDO. Jika tidak, anda perlu melakukan beberapa kerja konfigurasi dan pemasangan. Anda boleh melihat pemasangan khusus di [https://www.php.net/manual/en/pdo.installation.php](https://www.php.net/manual/en/pdo.installation.php) langkah .
Sebelum menggunakan PDO untuk menyambung ke pangkalan data MySQL, anda perlu menyediakan maklumat sambungan seperti alamat hos, nombor port, nama pengguna dan kata laluan yang diperlukan untuk menyambung ke data tersebut. Sila pastikan anda mempunyai kelayakan ini.
Sebelum menyambung ke pangkalan data MySQL, anda perlu menggunakan kelas PDO
untuk membuat instantiate objek PDO, seperti yang ditunjukkan dalam kod berikut:
//连接到MySQL数据库,并返回PDO对象 try { $pdo = new PDO('mysql:host=主机地址;dbname=数据库名', '数据库用户名', '数据库密码'); } catch (PDOException $e) { die('连接失败: ' . $e->getMessage()); }
Untuk menyambung ke pangkalan data MySQL, anda perlu menyediakan beberapa maklumat yang diperlukan, Seperti nama hos, nama pangkalan data, nama pengguna dan kata laluan. Maklumat ini akan dihantar kepada pembina PDO, yang akan mengembalikan objek PDO. Jika sambungan gagal, PDOException akan dilemparkan, dan anda perlu menggunakan blok cuba-tangkap untuk menangkap pengecualian dan mengendalikan ralat.
Sebelum menggunakan PDO untuk melaksanakan pertanyaan, anda perlu mencipta objek PDOStatement, yang akan mewakili pertanyaan khusus dan digunakan untuk mendapatkan hasil pertanyaan. Kemudian, anda boleh menggunakan kaedah prepare() untuk menyediakan pernyataan pertanyaan, dan gunakan kaedah execute() untuk menyerahkan pertanyaan kepada pangkalan data, seperti yang ditunjukkan dalam kod berikut:
try { $pdo = new PDO('mysql:host=主机地址;dbname=数据库名', '数据库用户名', '数据库密码'); $sql = 'SELECT * FROM 表名 WHERE 字段1 = ? AND 字段2 = ?'; $stmt = $pdo->prepare($sql); $stmt->execute([$value1, $value2]); $result = $stmt->fetchAll(PDO::FETCH_ASSOC); } catch (PDOException $e) { die('查询失败: ' . $e->getMessage()); }
Di sini, kami menggunakan cara "pertanyaan berparameter" untuk membina pernyataan pertanyaan. Kami menghantar nilai yang diperlukan dalam pernyataan pertanyaan kepada kaedah execute() dalam bentuk parameter dan bukannya menggabungkan berbilang pembolehubah bersama-sama sebagai pernyataan pertanyaan. Kaedah ini boleh menghalang serangan suntikan SQL dan meningkatkan keselamatan kod.
Selepas melaksanakan kaedah execute(), pembolehubah $result akan menyimpan tatasusunan hasil pertanyaan. Selain itu, terdapat beberapa kaedah pengambilan lain yang boleh digunakan untuk mendapatkan hasil pertanyaan baris demi baris.
Ia juga sangat mudah untuk menggunakan PDO untuk memasukkan dan mengemas kini data ke dalam pangkalan data. Apabila menggunakan PDO untuk memasukkan data, kami boleh menggunakan kaedah execute() dan aksara penggantian parameter pratakrif untuk memasukkan nilai secara dinamik, seperti yang ditunjukkan dalam kod berikut:
try { $pdo = new PDO('mysql:host=主机地址;dbname=数据库名', '数据库用户名', '数据库密码'); $sql = 'INSERT INTO 表名 (字段1, 字段2, 字段3) VALUES (?, ?, ?)'; $stmt = $pdo->prepare($sql); $stmt->execute([$value1, $value2, $value3]); $result = $stmt->rowCount(); } catch (PDOException $e) { die('插入数据失败: ' . $e->getMessage()); }
Apabila menggunakan PDO untuk mengemas kini data, kami juga boleh menggunakan jalankan kaedah () dan aksara penggantian parameter yang dipratentukan untuk mengemas kini medan yang ditentukan secara dinamik, seperti yang ditunjukkan dalam kod berikut:
try { $pdo = new PDO('mysql:host=主机地址;dbname=数据库名', '数据库用户名', '数据库密码'); $sql = 'UPDATE 表名 SET 字段1 = ? ,字段2 = ? WHERE 字段3 = ?'; $stmt = $pdo->prepare($sql); $stmt->execute([$value1, $value2, $value3]); $result = $stmt->rowCount(); } catch (PDOException $e) { die('更新数据失败: ' . $e->getMessage()); }
Di sini, kami menggunakan pernyataan kemas kini untuk mengemas kini medan yang ditentukan. Sama seperti memasukkan data, PDO memastikan keselamatan dan ketepatan kod dengan menggunakan parameter pratakrif dinamik.
Dalam artikel ini, kami memperkenalkan kaedah menggunakan sambungan PDO untuk menyambung dan mengendalikan pangkalan data MySQL. Ia memberi tumpuan kepada cara menggunakan pertanyaan berparameter PDO untuk menyelesaikan masalah suntikan SQL, dan menunjukkan proses memasukkan dan mengemas kini data. Untuk menjadi pembangun aplikasi web yang cemerlang, adalah perlu untuk memahami teknologi teras PDO. Ia boleh meningkatkan produktiviti pembangun dan meningkatkan pengurusan dan kawalan data oleh aplikasi web.
Atas ialah kandungan terperinci Bagaimana untuk menggunakan sambungan PDO dalam php?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!