你好,我是新來的,我在分析這段代碼時很難。 錯誤不斷顯示,我不知道該怎麼辦。mysql_fetch_array()期望參數1是資源,布爾給定PHP
mysql_fetch_array()預計參數1是資源,鑑於布爾
發生這種情況,每次我使用搜索功能。有任何想法嗎?
if(isset($_POST['search']))//if search
{
if(($_POST['year']) && ($_POST['month']) && ($_POST['day']))
$_SESSION['select']= mysql_query("SELECT * FROM ".$_SESSION['dbtable3']." WHERE eyear = '".$_POST['year']."' AND emonth = '".$_POST['month']."' AND edate = '".$_POST['day']."' ;" or die(mysql_error()));
else if(($_POST['year']) && ($_POST['month']))
$_SESSION['select']=mysql_query("SELECT * FROM ".$_SESSION['dbtable3']." WHERE eyear = '".$_POST['year']."' AND emonth = '".$_POST['month']."' ;" or die(mysql_error()));
else if(isset($_POST['year']))
$_SESSION['select']= mysql_query("SELECT * FROM ".$_SESSION['dbtable3']." WHERE eyear = '".$_POST['year']."' ;" or die(mysql_error()));
else if(!$_POST['year'])
die("FILL IN AT LEAST THE YEAR");
else
die("Date not found");
if($_POST['year'])
while($select2 = mysql_fetch_array($_SESSION['select']))
{
$n1 = $select2[0];
$n2 = $select2[1];
$n3 = $select2[2]."-".$select2[3]."-".$select2[4];
echo
"<tr>
<td width=\"30px\"> $n1</td>
<td width=\"30px\"> $n2</td>
<td width=\"30px\"> $n3</td>
</tr>";
}
**你的代碼很容易受到SQL注入**你真的* *應該使用。 [已準備好的語句](http://stackoverflow.com/a/60496/623041),將您的變量作爲參數傳遞到其中,而這些參數不針對SQL進行評估。如果你不知道我在說什麼,或者如何解決它,請閱讀[Bobby Tables]的故事(http://stackoverflow.com/questions/332365/xkcd-sql-injection-please-explain) 。 – eggyal
[So many duplicates](http://stackoverflow.com/search?q=mysql_fetch_array%28%29+expects+parameter+1+to+be+resource%2C+boolean+given) –
此外,正如[介紹](http://www.php.net/manual/en/intro.mysql.php)到'mysql_ *'函數的PHP手冊一章:*不推薦使用這種擴展來編寫新的代碼。相反,無論是[mysqli](http://www.php.net/manual/en/book.mysqli.php)還是[PDO_MySQL](http://www.php.net/manual/en/ref.pdo應該使用-mysql.php)擴展名。請參閱[MySQL API概述](http://www.php.net/manual/en/mysqlinfo.api.choosing.php)以獲得進一步的幫助,以便選擇MySQL API。* – eggyal