让我首先道歉,如果这个错误有重复。我搜索并发现没有明确与我的情况有关,尽管提出了相同的错误消息。我是PHP的新手,我正在尝试使用HTML搜索表单来检索我的表中的记录。我的代码看起来像这样。
<form action="" method="post">
Search: <input type="text" name="term" /><br />
<input type="submit" name="submit" value="Submit" />
</form>
<?php
$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = 'pass';
$conn = mysql_connect($dbhost, $dbuser, $dbpass);
if(! $conn ){
die('Could not connect: ' . mysql_error());
}
if (!empty($_REQUEST['term'])) {
$term = mysql_real_escape_string($_REQUEST['term']);
$sql = "SELECT * FROM shoes WHERE name LIKE '%".$term."%'";
$r_query = mysql_query($sql);
while($row = mysql_fetch_array($r_query)){
echo 'Shoe Name: ' .$row['name'];
echo '<br /> SKU: ' .$row['sku'];
echo '<br /> Size: ' .$row['size'];
echo '<br /> Quantity: ' .$row['quantity'];
}
}
mysql_close($conn);
?>
` 我收到此错误消息:mysql_fetch_array()期望参数1是资源,布尔给定
我非常感谢有关此事的任何帮助。我很难过。
答案 0 :(得分:0)
如果出现错误,mysql_query函数将返回false。您可能想要添加一些错误检查,例如。
if ($r_query === false){
echo 'Error';
// maybe check mysql_error* functions
die ();
}
答案 1 :(得分:0)
您尚未使用mysql_select_db()
定义或选择数据库,也未将DB连接传递给您的查询。
<?php
$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = 'pass';
$db = 'your_database'; // added. Modify to be your database
$conn = mysql_connect($dbhost, $dbuser, $dbpass);
mysql_select_db($db)or die(mysql_error());
if(! $conn ){
die('Could not connect: ' . mysql_error());
}
if (!empty($_REQUEST['term'])) {
$term = mysql_real_escape_string($_REQUEST['term']);
$sql = "SELECT * FROM shoes WHERE name LIKE '%".$term."%'";
$r_query = mysql_query($sql,$conn); // added DB connection
while($row = mysql_fetch_array($r_query)){
echo 'Shoe Name: ' .$row['name'];
echo '<br /> SKU: ' .$row['sku'];
echo '<br /> Size: ' .$row['size'];
echo '<br /> Quantity: ' .$row['quantity'];
}
}
mysql_close($conn);
?>
从PHP.net引用
http://www.php.net/mysql_query
返回值
对于返回结果集的SELECT,SHOW,DESCRIBE,EXPLAIN和其他语句,mysql_query()在成功时返回资源,如果出错则返回FALSE。
对于其他类型的SQL语句,INSERT,UPDATE,DELETE,DROP等,mysql_query()成功时返回TRUE,错误时返回FALSE。
http://php.net/manual/en/language.types.resource.php
<强>资源强>
资源是一个特殊变量,包含对外部资源的引用。资源由特殊功能创建和使用。
<强>脚注:强>
mysql_*
函数弃用通知:
http://www.php.net/manual/en/intro.mysql.php
从PHP 5.5.0开始,不推荐使用此扩展,不建议用于编写新代码,因为将来会删除它。相反,应使用mysqli或PDO_MySQL扩展名。在选择MySQL API时,另请参阅MySQL API Overview以获得进一步的帮助。