Rumah > Artikel > pangkalan data > Mengapa Skrip PHP Saya Membuang \"mysql_fetch_array(): Parameter 1 Harus Menjadi Sumber\"?
mysql_fetch_array(): Parameter 1 Harus Menjadi Sumber
Dalam skrip PHP anda, anda menghadapi ralat "mysql_fetch_array() expects parameter 1 untuk menjadi sumber." Ini menunjukkan bahawa fungsi menerima jenis parameter yang salah.
Sumber Ralat
Isu ini berpunca daripada baris berikut:
<code class="php">$result = mysql_query("SELECT * FROM student WHERE IDNO=".$_GET['id']);</code>
Baris ini melaksanakan pertanyaan pada pangkalan data. Jika pertanyaan gagal atau jika tiada hasil, fungsi mengembalikan nilai boolean, menunjukkan kejayaan atau kegagalan pertanyaan. Walau bagaimanapun, fungsi mysql_fetch_array() menjangkakan sumber sebagai parameter pertamanya, yang merupakan hasil daripada pertanyaan yang berjaya.
Penyelesaian
Untuk menyelesaikan isu tersebut, anda harus semak nilai pulangan mysql_query() untuk memastikan ia adalah sumber. Anda boleh melakukan ini dengan menambahkan semakan ralat selepas baris pertanyaan:
<code class="php">$result = mysql_query("SELECT * FROM student WHERE IDNO=".$_GET['id']); if (!$result) { die('Invalid query: ' . mysql_error()); }</code>
Ini akan memaparkan mesej ralat dan menamatkan skrip jika pertanyaan gagal.
Pertimbangan Tambahan
Selain daripada isu ini, adalah disyorkan untuk menggunakan sambungan MySQLi atau PDO yang dipertingkatkan untuk interaksi pangkalan data dan bukannya fungsi mysql_* yang tidak digunakan lagi. Sambungan ini menyediakan ciri keselamatan dan prestasi yang dipertingkatkan.
Atas ialah kandungan terperinci Mengapa Skrip PHP Saya Membuang \"mysql_fetch_array(): Parameter 1 Harus Menjadi Sumber\"?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!