Apabila berhadapan dengan pernyataan PDO yang mengembalikan palsu dan membuatkan anda tidak tahu apabila var lambakan, ingat dua emas ini peraturan:
Konfigurasikan PHP dan PDO untuk mendedahkan mesej ralat MySQL. Tambahkan baris berikut pada kod sambungan anda:
$dbh->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
Atau, lebih baik lagi, sertakan parameter ini sebagai pilihan sambungan. Dengan cara ini, ralat pangkalan data akan diterjemahkan ke dalam pengecualian PDO, bertindak seperti ralat PHP biasa.
Ganti pembolehubah PHP dalam Pertanyaan SQL dengan tanda soal. Kemudian, laksanakan pertanyaan menggunakan pernyataan yang disediakan:
$sql = $dbh->prepare('INSERT INTO users(full_name, e_mail, username, password) VALUES (?, ?, ?, ?)'); $result = $sql->execute(array($_GET['fullname'], $_GET['email'], $_GET['username'], $password_hash));
Pernyataan yang disediakan melindungi daripada ralat sintaks dan pastikan data input dikendalikan dengan betul.
Pengecualian PDO akan memberikan mesej ralat terperinci yang menunjukkan isu itu, memecahkan Mesej ralat MySQL ke dalam kategori:
Teknik nyahpepijat boleh membantu anda mengenal pasti dua kategori pertama. Walau bagaimanapun, ralat pelaksanaan adalah punca yang paling biasa, dan pengecualian PDO akan memudahkan untuk memahaminya.
Ingat, percayai mesej ralat, kerana ia menunjukkan masalah dengan tepat. Jika ia menyatakan jadual tidak wujud, semak semula ejaan dan sambungan pangkalan data anda. Jika ia menyerlahkan ralat sintaks, periksa pernyataan SQL sebelum ralat yang disebut.
Jika kod tersebut berjaya dilaksanakan tetapi tiada keputusan diperhatikan, ia berkemungkinan bermakna data tidak sepadan dengan kriteria pemilihan. Ikut arahan dalam tutorial yang dipautkan untuk mengenal pasti isu dan menyelesaikannya.
Atas ialah kandungan terperinci Mengapa Pernyataan PDO Saya Gagal Secara Senyap, dan Bagaimana Saya Boleh Nyahpepijat Ia?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!