mysql_fetch_array错误 - 不是有效的MySQL结果资源

时间:2011-07-26 12:14:26

标签: php mysql phpmyadmin

我是PHP的新手,尝试编写一个连接到MySQL数据库的脚本,只需在每个标题下以列表格式显示内容;

我的表包含ID(AutoIncrement),FName,SName& EAddress字段。

数据库名为iphonehe_MGFSales,用户名为iphonehe_MGFSale - 我已将用户添加到具有完全权限的数据库中。

我正在尝试使用带有此代码的mysql函数建立与DB的连接;

mysql_connect ("localhost", "iphonehe_MGFSale", "xxxxxxx") or die ('I cannot connect to the database because: ' . mysql_error());
mysql_select_db ("iphonehe_MGFSales");

我创建的表名为MGFSales DB。我正在使用此代码尝试构建查询;

$query = mysql_query("SELECT * FROM MGFSales_DB");

最后我尝试使用以下代码显示结果;

while ($row = mysql_fetch_array ($query)) {
echo "<br /> ID: " .$row['ID']. "<br /> First Name: ".$row['FName']. "<br /> Last Name: ".$row['LName']. "<br /> Email: ".$row['EAddress']. "<br />";
}

我已将文件命名为index.php并上传到我的服务器,运行时我收到以下错误'警告:mysql_fetch_array():提供的参数不是/ home / iphonehe / public_html / pauldmorris中的有效MySQL结果资源。第16行的'co.uk/mgf/index.php

有人指出我正确的方向吗?从我能看到的东西来看,我的代码第16行看起来非常紧张,我是否会忽略某些东西? 感谢

5 个答案:

答案 0 :(得分:3)

这是因为 $ query 中找到空资源。 您需要检查以下代码

$query = mysql_query("SELECT * FROM MGFSales_DB"); or die("Error: ". mysql_error(). " with query ");

if(mysql_num_rows($query) > 0 ){
 while ($row = mysql_fetch_array ($query)) {
echo "<br /> ID: " .$row['ID']. "<br /> First Name: ".$row['FName']. "<br /> Last Name: ".$row['LName']. "<br /> Email: ".$row['EAddress']. "<br />";
 }
}

或者您也可以参考this link

试试这可能会对你有所帮助。

感谢。

答案 1 :(得分:2)

错误仅在mysql_fetch_array行,纠正此问题应该是故障排除的第一步。

mysql_fetch_array更改为

mysqli_fetch_array

因为mysql或php中的最新更新不接受mysql但只接受mysqli。还要在代码中将mysql更改为mysqli。

答案 2 :(得分:1)

mysql_query失败时会返回 false ,这会产生您在mysql_fetch_array期间收到的错误。

请为您的代码添加一些错误检查,并打印/记录错误消息 - 在不知道源错误的情况下无法提供帮助。

答案 3 :(得分:1)

检查mysql_select_db上的返回代码。

答案 4 :(得分:1)

你不应该直接应用mysql_fetch_array ..

您应首先检查数据..

if(mysql_num_row($query)>0){
   your code   
}
else{
   echo 'it brings no data....';
}

它检查是否没有数据然后它将执行else阻止其他方式你将顺利执行...