我正在使用 MySQL 作为数据库的 PHP 项目。
这是我的代码片段。
$query = "SELECT * FROM FEED_DETAILS";
$result = mysql_db_query (DB_NAME, $query, $conn);
while($row = **mysql_fetch_assoc($result)**)
{
// Things i need to execute....
}
这DB_NAME
是我之前定义的。
这以前对我有用。但是这次它给出了以下错误
<b>Warning</b>: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in <b>C:\xampp\htdocs\My_Rss\classes\RSS.class.php</b> on line <b>28</b><br />
我使用的唯一参数是 $result。我已经在php.net
网站上查看了与 php 中的数据库查询相关的文档。我什至尝试过基本的mysql_query
和mysql_fetch_array
。
在我去年学习 php 时制作的所有以前的程序中都会产生相同的错误。他们以前都曾经工作过。这一次他们停止了工作。
注意
- 我正在使用最新版本的 XAMPP(即 1.7.7)
- 我正在使用 PHP 5.3.8。
- 前几天将phpmyadmin版本升级到3.4.10.2。
- 其余是默认的 XAMPP 1.7.7 设置。
我听说 php 5.3 发生了重大变化并导致了问题。这是问题吗,因为我无法指出代码中的错误..
这是index.php
<?
header("Content-Type: application/xml; charset=ISO-8859-1");
include("classes/RSS.class.php");
$rss = new RSS();
echo $rss->GetFeed();
?>
这是RSS.class.php
class RSS
{
public function __construct()
{
require_once ('./classes/mysql_connect.php');
}
public function GetFeed()
{
return $this->getDetails() . $this->getItems();
}
private function dbConnect()
{
//DEFINE ('LINK', mysql_connect (DB_HOST, DB_USER, DB_PASSWORD));
}
private function getDetails()
{
$detailsTable = "webref_rss_details";
$this->dbConnect($detailsTable);
$query = "SELECT * FROM FEED_DETAILS";
$result = mysql_query ($query) or trigger_error(mysql_error()." ".$query);
while($row = mysql_fetch_assoc($result))
{
$details = '<?xml version="1.0" encoding="ISO-8859-1" ?>
<rss version="2.0">
<channel>
<title>'. $row['title'] .'</title>
<link>'. $row['link'] .'</link>
<description>'. $row['description'] .'</description>
<language>'. $row['language'] .'</language>
<image>
<title>'. $row['image_title'] .'</title>
<url>'. $row['image_url'] .'</url>
<link>'. $row['image_link'] .'</link>
<width>'. $row['image_width'] .'</width>
<height>'. $row['image_height'] .'</height>
</image>';
}
return $details;
}
private function getItems()
{
$itemsTable = "webref_rss_items";
$this->dbConnect($itemsTable);
$query = "SELECT * FROM FEED_ITEMS";
$result = mysql_query ($query) or trigger_error(mysql_error()." ".$query);
//print_r($result);
//$row = mysql_fetch_assoc($result);
//print_r($row);
$items = '';
while($row = mysql_fetch_array($result))
{
$items .= '<item>
<title>'. $row["title"] .'</title>
<link>'. $row["link"] .'</link>
<description><![CDATA['. $row["description"] .']]></description>
</item>';
}
$items .= '</channel>
</rss>';
return $items;
}
}