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

Panggilan Ajax dengan kueri PHP / MySQLi mengembalikan hasil yang salah

Tidak ada alasan untuk menggunakan num_rows , yang tidak hanya membingungkan, mudah disalahgunakan, tetapi juga dapat menyebabkan masalah kinerja jika disalahgunakan.

Ambil saja COUNT(1) dan kemudian ambil satu kolom dari baris pertama dalam hasil SQL Anda.

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";
}

Jika Anda menginginkan alasan aneh untuk tetap menggunakan num_rows Anda juga harus memanggil store_result() pada pernyataan dan kemudian dapatkan num_rows dari pernyataan atau panggil get_result() dan baca nilai num_rows pada set hasil yang dikembalikan.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Terjebak pada kesalahan ini:Nilai integer salah:'' untuk kolom '____' di baris 1

  2. Bisakah saya menggunakan fungsi MySQL di LIMIT offset?

  3. Cakephp 2.0 kueri mysql

  4. Tidak ada hasil kueri untuk model [App\Products] Laravel

  5. MySQL - Menemukan Kecocokan yang Dekat