Masalah yang disebabkan oleh data
Kemungkinan besar ada beberapa karakter yang dikonversi atau tidak dapat dicetak dalam data input (atau database). Misalnya, mungkin ada karakter umpan baris atau simbol yang dikodekan secara khusus, atau beberapa karakter seperti <
dan >
diubah menjadi entitas HTML. Akibatnya, kueri berisi <[email protected]>
tidak akan pernah cocok dengan teks <[email protected]>
.
Masalahnya adalah, ini hanya tebakan, dan tidak ada yang dapat memberi tahu Anda apa masalah sebenarnya, karena ini adalah Anda basis data, Anda masukan data dan hanya Anda dapat menemukan masalahnya.
Saya menulis artikel yang menjelaskan cara men-debug masalah PDO Anda .
Untuk men-debug masalah tertentu, Anda perlu
- pastikan pelaporan kesalahan lengkap diaktifkan untuk PDO dan PHP. Ini sangat membantu, menampilkan kesalahan tipografi sesekali, kesalahan ejaan, dan semacamnya
- periksa baik data dalam database dan input untuk menemukan perbedaannya.
bin2hex()
fungsi akan membantu, mengungkapkan semua karakter yang tidak dapat dicetak dan dikonversi, baik dalam basis data maupun input.
Masalah yang disebabkan oleh kredensial koneksi
Masalah lain yang sering terjadi adalah ketika Anda memiliki beberapa database dan terhubung ke database yang salah yang tidak memiliki data yang diminta. Masalah ini mirip dengan yang ini , jadi ikuti saja rutinitas yang sama, hanya memeriksa bukan daftar tabel tetapi baris data.
Catatan yang tidak relevan tapi penting
Sebagai tambahan, tetapi tetap sangat penting:pernyataan yang Anda siapkan adalah kode kultus kargo yang tidak melindungi apa pun . Begini caranya harus menjadi:
$sql = 'SELECT count(*) FROM inbox WHERE uid = ? AND from_email = ?';
$result = $link->prepare($sql);
$result->execute([$email_number,$email_f]);
$number_of_rows = $result->fetchColumn();