Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL_fetch_array()的基本PHP/MySQL错误_Php_Mysql - Fatal编程技术网

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()函数。可能重复的可能重复