MySQL_fetch_array()的基本PHP/MySQL错误
我得到的错误是:MySQL_fetch_array()的基本PHP/MySQL错误,php,mysql,Php,Mysql,我得到的错误是: ...mysql_fetch_array() expects parameter 1 to be resource, boolean given... awayid正确地位于地址栏中。我可以很好地打印出来,但是由于某种原因,下面的代码给了我上面的错误 $result = mysql_query("select * from team where id=" . $_GET['awayid']); $row = mysql_fetch_array($result); EDIT尝
...mysql_fetch_array() expects parameter 1 to be resource, boolean given...
awayid
正确地位于地址栏中。我可以很好地打印出来,但是由于某种原因,下面的代码给了我上面的错误
$result = mysql_query("select * from team where id=" . $_GET['awayid']);
$row = mysql_fetch_array($result);
EDIT尝试了mysql\u错误()。好像我忘了选择一个数据库。。。然而,即使我为什么使用mysql_select_db('gamelydb')代码>我仍然收到mysql错误
未选择任何数据库
您的查询失败。。。因此,$result
被设置为false
$result = mysql_query("select * from team where id=" . $_GET['awayid']);
var_dump($result); // bool(false)
调用以获取查询的错误消息:
echo mysql_error();
您的查询失败并返回布尔值FALSE。试试这个:
$result = mysql_query("select ...") or die(mysql_error());
^^^^^^^^^^^^^^^^^^^^^^---- add this
这将终止脚本并向您显示查询失败的确切原因。mysql\u query()如果查询失败,即发生错误,则返回false。这就是为什么需要首先检查$result是否为false
使用mysql_error()输出错误。您需要确保查询结果:
while ($row = mysql_fetch_array($result)) {
// echo $row[] ... ;
}
首先,您的查询非常容易受到SQL注入攻击。不要直接将$\u GET或$\u POST(或任何地方)中的任何内容插入到查询中。至少在变量上使用
mysql\u real\u escape\u string
mysql\u查询
返回false,因为查询有问题。您可以使用mysql\u error
查看上次报告的错误是什么
if ($result = mysql_query("select * from team where id='" . $_GET['awayid']) . "'") {
$row = mysql_fetch_array($result);
}
else {
echo mysql_error();
}
无论如何,您知道将
$\u GET
参数直接写入SQL查询是非常糟糕的吗?试试看。你有没有试着搜索第一个保守党,我们一遍又一遍地回答这些问题,下次请搜索
出现此错误的原因是,您使用mysql\u query
运行一个失败的查询,因为它失败,所以返回false,然后将false
的值传递给mysql\u fetch\u array
,就像执行mysql\u fetch\u array(false)
您需要确保mysql\u查询
成功:
试着这样做:
if(false !== ($result = mysql_query("select * from team where id=" . $_GET['awayid'])))
{
$row = mysql_fetch_array($result);
}else
{
die("Query has failed: " . mysql_error())
}
该错误意味着您的查询失败。你可以用它来找出原因。
mysql\u query
函数失败时返回false
(布尔值)。此错误表示“$result”未包含有效的结果集。它们一定是查询中的某个错误,很可能是$\u GET['awayid']为空。尝试通过回显查询来调试查询,然后直接在MySQL中运行或使用MySQL_error()函数。可能重复的可能重复