我是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行看起来非常紧张,我是否会忽略某些东西? 感谢
答案 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阻止其他方式你将顺利执行...