2013-08-05 74 views
-4

附件是我的search.php中的代码,但我有线上的错误9.为什么我得到一个“mysql_fetch_array()期望参数1是资源”错误?

我得到以下PHP的错误:

while($row = mysql_fetch_array($results)){ 
下面

Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\series\insert\Search.php on line 9

第9行代码是我的完整代码:

<?php 
if($_GET){ 
    $search=$_GET['search']; 
    $connect =mysql_connect("localhost","root",""); 
    if($connect){ 
     mysql_select_db("b_database",$connect); 
     $query = "SELECT * FROM b_database WHERE search='". $search . "'"; 
     $results=mysql_query($query); 
     while($row = mysql_fetch_array($results)){ 
      echo $row['isbn']. "<br/>". $row['title']. "<br/>"; 
     } 
    }else{ 
     die(mysql_error()); 
    } 
} 
?> 
<form action="" method="GET"> 
    <table style="border:1px solid silver" cellpadding="10px" cellspacing="0px" align="center"> 
     <tr><td colspan="4" style="background:#0066FF; color:#FFFFFF; fontsize:20px">Search Record</td></tr> 
     <tr> 
      <td>Enter Search </td> 
      <td><input type="text" name="search" size="40" /></td> 
      <td><input type="submit" value="Go" /></td> 
     </tr> 
    </table> 
</form> 

为什么我得到这个错误?

+1

首先,您的代码完全开放给SQL注入。 – Jared

+0

试着在数据库上执行你的sql,看看你的查询是否正确。 – sanders

+0

**没有** mysql_ *'函数的支持**,它们是[**正式弃用**](https ://wiki.php.net/rfc/mysql_deprecation),**不再维护**,并将[**删除**](http://php.net/manual/en/function.mysql-connect。 php#warning)。您应该使用[PDO](http://php.net/pdo)或[MySQLi](http://php.net/msqli)更新您的代码,以确保您的项目未来的功能。 –

回答

1
$query = "SELECT * FROM b_database WHERE search='". $search . "'"; 
$results=mysql_query($query) or die(mysql_error()); 

我觉得你$results回报bool(false)

问题在您的查询:

SELECT * FROM b_database WHERE search='". $search . "' 
// b_database is a database not table. 
0

检查如果查询无效,或者如果它返回false。

$query = "SELECT * FROM b_database WHERE search='". $search . "'"; 
$results = mysql_query($query); 
if(!$results){ 
    die('Invalid query'); 
}else{ 
    // Continue with the code 
} 
相关问题