Rumah >pembangunan bahagian belakang >tutorial php >Mengapa Adakah `mysql_fetch_array()` Menunjukkan 'menjangka parameter 1 menjadi sumber' dan Bagaimana Saya Boleh Membetulkannya?

Mengapa Adakah `mysql_fetch_array()` Menunjukkan 'menjangka parameter 1 menjadi sumber' dan Bagaimana Saya Boleh Membetulkannya?

Linda Hamilton
Linda Hamiltonasal
2024-12-22 20:17:12561semak imbas

Why Does `mysql_fetch_array()` Show

Memahami "mysql_fetch_array()/mysql_fetch_assoc()/mysql_fetch_row()/mysql_num_rows dll... menjangkakan parameter 1 menjadi sumber">Apabila anda menghadapi ralat ini, ia menunjukkan bahawa salah satu fungsi mendapatkan semula pangkalan data (cth., mysql_fetch_array(), mysql_fetch_assoc(), dll.) sedang dipanggil dengan parameter yang tidak sah. Khususnya, parameter itu hendaklah sumber yang mewakili set hasil pangkalan data, tetapi ia sebaliknya merupakan nilai boolean.

Punca Ralat

Punca punca ini ralat biasanya merupakan pertanyaan pangkalan data yang gagal. Apabila pertanyaan gagal, mysql_* fungsi/kaedah mengembalikan palsu, yang boleh disalahtafsirkan sebagai nilai boolean. Akibatnya, apabila anda kemudiannya memanggil fungsi dapatkan semula dengan hasil palsu, ia membawa kepada ralat ini.

Membetulkan Ralat

Untuk menyelesaikan isu ini, anda mesti ikut langkah berikut:

    Semak Keputusan Pertanyaan:
  1. Sahkan bahawa panggilan mysql_query() tidak kembali palsu dengan menyemak keputusannya.
  2. Kendalikan Kegagalan Pertanyaan:
  3. Jika pertanyaan gagal, cetuskan ralat atau kendalikannya dengan sewajarnya.
  4. Pastikan Parameter Betul:
  5. Hantar sumber hasil yang betul kepada fungsi perolehan dan bukannya nilai boolean yang terhasil daripada pertanyaan yang gagal.
Contoh

Pertimbangkan kod berikut:

Dalam contoh ini, kami mula-mula semak hasil mysql_query() dan cetuskan ralat jika pertanyaan gagal. Kemudian, kami menghantar sumber $result dengan betul ke mysql_fetch_array() fungsi. Ini memastikan bahawa parameter yang sesuai digunakan, menghalang ralat daripada berlaku.
$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 Adakah `mysql_fetch_array()` Menunjukkan 'menjangka parameter 1 menjadi sumber' dan Bagaimana Saya Boleh Membetulkannya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn