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

Làm cách nào để gỡ lỗi tại sao truy vấn MySQL đơn giản nhất lại trả về false?

Cập nhật bắt buộc :vì mysql ext không còn nữa, đây là câu trả lời cho hai API MySQL còn lại mà tôi đã viết trên trang web của mình dựa trên kinh nghiệm từ việc trả lời các câu hỏi trong thập kỷ 1000 trên Stack Overflow:

Tóm lại, đối với mysqi, dòng sau phải được thêm vào trước mysqli_connect() gọi:

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);

trong khi đối với PDO, chế độ lỗi thích hợp phải được đặt, chẳng hạn như

$pdo->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );

Kể từ máy lẻ mysql cũ,

Để gặp lỗi từ mysql_query() bạn phải sử dụng mysql_error() .
Vì vậy, hãy luôn chạy tất cả các truy vấn của bạn theo cách này, ít nhất là cho đến khi bạn phát triển một trình xử lý truy vấn nâng cao hơn:

$query = "SELECT * FROM 'users'";
$result = mysql_query($query) or trigger_error(mysql_error()." ".$query);

vấn đề với truy vấn hiện tại của bạn là 'users' phần. Các dấu ngoặc kép phải được sử dụng để phân tách các chuỗi trong khi đối với các số nhận dạng, bạn phải sử dụng dấu ngoặc kép:

SELECT * FROM `users`

Để xem những lỗi này trong quá trình phát triển, hãy thêm những dòng này vào đầu mã của bạn để đảm bảo rằng bạn có thể thấy mọi lỗi đã xảy ra

ini_set('display_errors',1);
error_reporting(E_ALL);

trên máy chủ sản xuất, tuy nhiên, giá trị trên dòng đầu tiên phải được thay đổi từ 1 thành 0



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Có ANSI SQL thay thế cho từ khóa MYSQL LIMIT không?

  2. HQL đang tạo 'kết hợp chéo' không hoàn chỉnh trên executeUpdate

  3. Lưu dữ liệu JSON lồng nhau vào cơ sở dữ liệu MySQL bằng Hibernate

  4. Django Nhiều cơ sở dữ liệu Dự phòng cho Master nếu Slave bị lỗi

  5. MySQL - tìm sự khác biệt giữa các hàng của cùng một bảng