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

Cuộc gọi Ajax với truy vấn PHP / MySQLi trả về kết quả sai

Không có lý do gì để sử dụng num_rows , điều này không chỉ gây nhầm lẫn, dễ sử dụng mà còn có thể gây ra các vấn đề về hiệu suất nếu sử dụng sai.

Chỉ cần tìm nạp COUNT(1) và sau đó tìm nạp một cột từ hàng đầu tiên trong kết quả SQL của bạn.

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$conn = new mysqli($host, $username, $password, $database);
$conn->set_charset('utf8mb4');

$stmt = $conn->prepare("SELECT COUNT(1) FROM users WHERE username = ?");
$stmt->bind_param("s", $_POST['username']);
$stmt->execute();
$exists = $stmt->get_result()->fetch_row()[0];

if($exists) {
    echo "valid";
} else {
    echo "invalid";
}

Nếu bạn muốn vì một lý do kỳ lạ nào đó gắn bó với num_rows bạn sẽ phải gọi store_result() trên câu lệnh và sau đó lấy num_rows từ câu lệnh hoặc gọi get_result() và đọc giá trị của num_rows trên tập kết quả trả về.



  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ách lấy số hàng cụ thể từ một bảng khác trong một truy vấn con

  2. MySQL ALTER TABLE thêm cột:lỗi ở cột khác

  3. Tạo Trình kích hoạt để xóa các hàng cũ hơn 90 ngày

  4. Lưu trữ một tỷ lệ phần trăm trong Rails + MySQL

  5. Cách chèn, xóa, chọn, cập nhật giá trị trong datagridview trong C # bằng MYSQL