0

可能重复:
警告:mysql_fetch_array() 期望参数 1 是资源,布尔值在

好的,我有这个代码。

<?//index.php
if(!defined('INCLUDE_CHECK')) die('You are not allowed to execute this file directly');


include('db.php');//include our database
//connecting to the database
$con = mysql_connect($dbhost, $dbusername, $dbpassword);
//if we cant connect
if (!$con)
{
die ('could not connect to the database' . mysql_error());
}
//if successfully connected then select db
mysql_select_db ($dbtable, $con);
//our query
$result = mysql_query("SELECT * FROM header");
//fetch our result
while($row = mysql_fetch_array($result)) //this is the line 18
{
//if type is meta then..
if ($row['type'] === "meta")
{
$meta .= "<meta name='".$row['name']."' content='".$row['content']."' />";
}
//if type is title then..
elseif ($row['type'] === "title")
{
$title = "<title>".$row['content']."</title>";
$title2 = "<div id='ti'>".$row['name']."</div>";
}
//if type is favicon then..
elseif ($row['type'] === "favicon")
{
$favicon = "<link rel='shortcut icon' href='".$row['content']."' />";
$imglogo = "<img class='imglogo' src='".$row['content']."' />";
}
//if type is description then..
elseif ($row['type'] === "description")
{
$des = "<div id='ti2'>".$row['content']."</div>";
}

}
mysql_close($con);
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<? echo $title; //line 50 ?>
<? echo $favicon; //line 51 ?>
<? echo $meta; //line 52 ?>
<? echo (file_get_contents("cc.txt")); ?>
</head>

我收到以下错误,警告:mysql_fetch_array() 期望参数 1 是资源,在第 18 行的 C:\xampp\htdocs\wr\header.php 中给出的布尔值

注意:未定义变量:第 50 行 C:\xampp\htdocs\wr\header.php 中的标题

注意:未定义的变量:第 51 行 C:\xampp\htdocs\wr\header.php 中的 favicon

注意:未定义变量:第 52 行 C:\xampp\htdocs\wr\header.php 中的元

错误行是在代码中指定的,请参阅错误行的顶部代码。

有人可以帮我解决这个问题吗?提前致谢。

朱利弗。

4

4 回答 4

2

也许您的 SELECT 没有成功。您应该检查是否$result为 FALSE

if ($result === false)

如果是这样,您可以使用mysql_error().

于 2012-05-31T18:51:48.950 回答
1

在将 $result 传递给 mysql_fetch_array 之前,您应该始终检查它!== false,因为如果查询失败,这就是它的值,这就是您的情况所发生的情况。请参阅http://php.net/manual/en/function.mysql-query.php。如果它确实失败了,你可能想回显 mysql_error() 来看看出了什么问题。

于 2012-05-31T18:52:20.463 回答
0

http://php.net/manual/en/function.mysql-query.php

对于 SELECT、SHOW、DESCRIBE、EXPLAIN 和其他返回结果集的语句,mysql_query() 成功时返回资源,错误时返回 FALSE。

对于其他类型的 SQL 语句,INSERT、UPDATE、DELETE、DROP 等,mysql_query() 在成功时返回 TRUE,在错误时返回 FALSE。

如果用户无权访问 > 查询引用的表,mysql_query() 也将失败并返回 FALSE。

在进一步处理结果之前,您应该始终确保它不是布尔值 FALSE(即!== FALSE)

于 2012-05-31T18:57:40.437 回答
0

错误仍然存​​在于以下行之一中,因此请添加:

mysql_select_db ($dbtable, $con) OR DIE(mysql_error());

$result = mysql_query("SELECT * FROM header") OR DIE(mysql_error());

于 2012-05-31T19:07:34.460 回答