Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Gặp sự cố với các hàng khớp trong cơ sở dữ liệu bằng cách sử dụng PDO

Sự cố do dữ liệu gây ra

Nhiều khả năng có một số ký tự được chuyển đổi hoặc không thể in được trong dữ liệu đầu vào (hoặc cơ sở dữ liệu). Ví dụ:có thể có một ký tự dòng cấp dữ liệu hoặc một ký hiệu được mã hóa đặc biệt hoặc một số ký tự như <> được chuyển đổi thành các thực thể HTML. Do đó, truy vấn chứa <[email protected]> sẽ không bao giờ khớp với văn bản &lt;[email protected]&gt; .

Vấn đề là, đây chỉ là phỏng đoán và không ai có thể cho bạn biết vấn đề thực sự là gì, vì đó là của bạn cơ sở dữ liệu, của bạn dữ liệu đầu vào và chỉ bạn có thể tìm thấy vấn đề.

Tôi đã viết một bài viết giải thích cách gỡ lỗi các sự cố PDO của bạn .

Để gỡ lỗi một vấn đề cụ thể, bạn cần

  • đảm bảo rằng báo cáo lỗi đầy đủ được bật cho cả PDO và PHP. Nó thực sự hữu ích, hiển thị cho bạn các lỗi đánh máy không thường xuyên, lỗi chính tả và những lỗi tương tự
  • xem xét kỹ lưỡng cả dữ liệu trong cơ sở dữ liệu và dữ liệu đầu vào để tìm ra sự khác biệt. bin2hex() hàm sẽ hữu ích, hiển thị tất cả các ký tự không thể in và đã chuyển đổi, trong cả cơ sở dữ liệu và đầu vào.

Sự cố do thông tin xác thực kết nối

Một vấn đề thường xuyên khác là khi bạn có một số cơ sở dữ liệu và kết nối với một cơ sở dữ liệu sai không có dữ liệu được yêu cầu. Sự cố này tương tự với sự cố này , vì vậy chỉ cần làm theo quy trình tương tự, không kiểm tra danh sách bảng mà chỉ kiểm tra các hàng dữ liệu.

Một lưu ý không liên quan nhưng quan trọng

Tuy nhiên, có một lưu ý nhỏ nhưng rất quan trọng:tuyên bố chuẩn bị của bạn là mã hàng hóa điều đó không có gì bảo vệ . Đây là cách nó phải là:

$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. Tạo người dùng MySQL trên Linux qua Dòng lệnh

  2. Chạy MySQLDump mà không cần khóa bảng

  3. 2 cách trả về hàng chỉ chứa các ký tự không phải chữ và số trong MySQL

  4. Cách sao lưu cơ sở dữ liệu được mã hóa với máy chủ Percona cho MySQL 8.0

  5. Làm việc với Cơ sở dữ liệu MySQL cPanel