Rumah >pembangunan bahagian belakang >tutorial php >Bagaimanakah Saya Boleh Menggunakan PDO dengan Berkesan dalam PHP untuk Mengendalikan Pertanyaan dan Ralat Pangkalan Data?
Rujukan: Soalan PDO Biasa
Apakah itu PDO?
Objek Data PHP (PDO ) ialah lapisan abstraksi pangkalan data dalam PHP yang menyediakan antara muka yang konsisten dan mudah alih untuk mengakses pelbagai pangkalan data sistem.
Soalan Lazim
1. Pertanyaan PDO Gagal tetapi Tiada Mesej Ralat
Untuk memaparkan ralat pangkalan data, tetapkan mod ralat PDO kepada pengecualian:
$dsn = "mysql:host=$host;dbname=$db;charset=utf8"; $opt = [ PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION ]; $pdo = new PDO($dsn, $user, $pass, $opt);
Gunakan blok cuba-tangkap untuk mengendalikan ralat dengan anggun atau tentukan pengendali ralat tersuai untuk lebih kawalan.
2. Penyata Disediakan dengan Operator LIKE
Gunakan ruang letak untuk istilah carian dan lari dari operator LIKE menggunakan PDO::quote(). Contohnya:
$stmt = $pdo->prepare("SELECT * FROM users WHERE name LIKE ?"); $stmt->execute(['%search_term%']);
3. Penyata Disediakan untuk IN () Operator
Buat tatasusunan nilai dan hantarkannya sebagai parameter kedua untuk bindParam():
$values = [1, 2, 3]; $stmt = $pdo->prepare("SELECT * FROM users WHERE id IN (?)"); $stmt->bindParam(1, $values, PDO::PARAM_INT, count($values)); $stmt->execute();
4. Pengecam atau Kata Kunci Mengikat
Pernyataan yang disediakan tidak boleh digunakan untuk mengikat pengecam atau kata kunci. Gunakan kaedah PDO biasa, seperti PDO::quote(), untuk melarikan diri dan melindungi nilai ini.
5. Penyata PDO Disediakan dalam Penyata LIMIT
$stmt = $pdo->prepare("SELECT * FROM users ORDER BY id LIMIT ?"); $stmt->bindParam(1, $limit, PDO::PARAM_INT); $stmt->execute([$limit]);
Ingat bahawa memaparkan mesej ralat tanpa sekatan cuba-tangkap tidak disyorkan, kerana ia mungkin mendedahkan maklumat sensitif dan mengelirukan pengguna.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menggunakan PDO dengan Berkesan dalam PHP untuk Mengendalikan Pertanyaan dan Ralat Pangkalan Data?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!