Rumah > Artikel > pangkalan data > Mengapakah ralat \"mysql_fetch_array() menjangkakan parameter 1 sebagai masalah sumber\" berlaku dan bagaimana untuk menyelesaikannya?
Ralat " mysql_fetch_array() menjangkakan parameter 1 menjadi masalah sumber" timbul apabila fungsi mysql_fetch_array() tidak menerima sumber yang sah sebagai hujah pertama. Ini biasanya berlaku apabila panggilan mysql_query() sebelumnya gagal mendapatkan data daripada pangkalan data.
Untuk menyelesaikan ralat ini, adalah penting untuk melakukan semakan ralat selepas panggilan mysql_query(). Contoh berikut menunjukkan cara menambah semakan ralat pada kod yang disediakan:
<br>$result = mysql_query("SELECT * FROM student WHERE IDNO=" . $_GET['id']) ;<br>jika (!$result) { // Tambahkan semakan ralat ini.</p> <pre class="brush:php;toolbar:false">die('Invalid query: ' . mysql_error());
}
Apabila mysql_query() gagal, ia kembali palsu, nilai boolean. Jika anda menghantarnya kepada mysql_fetch_array(), mengharapkan objek hasil mysql, anda akan menghadapi ralat yang dinyatakan.
Berikut ialah kod yang ditulis semula dengan semakan ralat:
$ con = mysql_connect("localhost", "root", "nitoryolai123$%^");
jika (!$con) {
die('Could not connect: ' . mysql_error());
}
mysql_select_db("school ", $con);
$result = mysql_query("SELECT * FROM student WHERE IDNO=" . $_GET['id']);
if (!$result) {
die('Invalid query: ' . mysql_error());
}
while ($row = mysql_fetch_array($result)) {
?> <table class="a" border="0" align="center" cellpadding="0" cellspacing="1" bgcolor="#D3D3D3"> <tr> <form name="formcheck" method="get" action="updateact.php" onsubmit="return formCheck(this);"> <td> <table border="0" cellpadding="3" cellspacing="1" bgcolor=""> <tr> <td colspan="16" height="25" style="background:#5C915C; color:white; border:white 1px solid; text-align: left"><strong><font size="2">Update Students</font></strong></td> </tr> <tr> <td width="30" height="35"><font size="2">*I D Number:</font></td> <td width="30"><input name="idnum" onkeypress="return isNumberKey(event)" type="text" maxlength="5" id='numbers' value="<?php echo $_GET['id']; ?>" /></td> </tr> <tr> <td width="30" height="35"><font size="2">*Year:</font></td> <td width="30"><input name="yr" onkeypress="return isNumberKey(event)" type="text" maxlength="5" id='numbers' value="<?php echo $row["YEAR"]; ?>" /></td> </tr> </table> </td> </form> </tr> </table> <?php
}
Dengan memasukkan ralat menyemak ke dalam kod anda, kini anda boleh mengenal pasti dan mengendalikan potensi kegagalan mendapatkan semula pangkalan data dengan berkesan, menghalang ralat "mysql_fetch_array() menjangkakan parameter 1 sebagai masalah sumber".
Atas ialah kandungan terperinci Mengapakah ralat \"mysql_fetch_array() menjangkakan parameter 1 sebagai masalah sumber\" berlaku dan bagaimana untuk menyelesaikannya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!