Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk menggunakan sambungan PDO dalam php?

Bagaimana untuk menggunakan sambungan PDO dalam php?

WBOY
WBOYasal
2023-06-01 08:07:351043semak imbas

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.

Pengenalan kepada PDO

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.

Pasang PDO

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 .

Menyambung ke pangkalan data MySQL

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.

Laksanakan pertanyaan

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.

Memasukkan dan mengemas kini data

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.

Kesimpulan

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!

Kenyataan:
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