Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Mengalami masalah dengan pencocokan baris dalam database menggunakan PDO

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 &lt;[email protected]&gt; .

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(); 



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara Mencadangkan Basis Data Terenkripsi dengan Server Percona untuk MySQL 8.0

  2. Hibernate:Buat tabel Mysql InnoDB alih-alih MyISAM

  3. Kesalahan:pilih perintah ditolak untuk pengguna '<userid>'@'<ip-address>' untuk tabel '<table-name>'

  4. Cara Mendapatkan Data 1 Jam Terakhir di MySQL

  5. ROW_NUMBER di SQL – Pilih Contoh Teratas di SQL dan SQL Server