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 で指定されたブール値です。

注意: 未定義の変数: C:\xampp\htdocs\wr\header.php の 50 行目の title

注意: 未定義の変数: C:\xampp\htdocs\wr\header.php の 51 行目の favicon

注意: 未定義の変数: C:\xampp\htdocs\wr\header.php の 52 行目のメタ

エラー行はコードに沿って指定されています。エラー行についてはトップ コードを参照してください。

これについて私を助けることができますか?前もって感謝します。

ジュリバー。

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

エラーは以下の行のいずれかで持続するため、次を追加します。

mysql_select_db($ dbtable、$ con)またはDIE(mysql_error());

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

于 2012-05-31T19:07:34.460 に答える
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 に答える