Mesej Ralat: "mysql_fetch_array()/mysql_fetch_assoc()/mysql_fetch_row()/mysql_num_rows dll... menjangkakan parameter 1 akan menjadi sumber"Ralat ini berlaku apabila memanggil fungsi yang menjangkakan sumber sebagai parameter pertama, tetapi nilai boolean diluluskan sebaliknya. Dalam kes khusus ini, ini menunjukkan bahawa pertanyaan gagal, menyebabkan nilai palsu dikembalikan.
Penyelesaian:Untuk menyelesaikan isu ini, semak keputusan Pertanyaan MySQL sebelum menghantarnya ke fungsi mendapatkan data. Dalam sambungan mysql_ PHP, gunakan mysql_query() dan uji nilai pulangannya. Jika pertanyaan gagal, anda boleh menangani ralat dengan sewajarnya atau mengeluarkan pencetus.
Berikut ialah contoh dengan pengendalian ralat yang dipertingkatkan:
Dengan menggunakan mysql_real_escape_string() untuk membersihkan input pengguna, anda juga boleh menghalang serangan suntikan SQL, yang boleh menjadi punca kegagalan pertanyaan.<?php $username = mysql_real_escape_string($_POST['username']); $password = $_POST['password']; $result = mysql_query("SELECT * FROM Users WHERE UserName LIKE '$username'"); if ($result === FALSE) { trigger_error(mysql_error(), E_USER_ERROR); } while ($row = mysql_fetch_array($result)) { echo $row['FirstName']; } ?>
Atas ialah kandungan terperinci Mengapa Saya Mendapat Ralat 'mysql_fetch_array() menjangkakan parameter 1 sebagai sumber, boolean diberi' Ralat dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!