Php “如何调试mysql”;期望参数1为“资源”;错误

Php “如何调试mysql”;期望参数1为“资源”;错误,php,mysql,sql,Php,Mysql,Sql,嗨,我试图从我的数据库中提取一些数据,但我得到了那个错误 Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in C:\Users\malasuerte94\Dropbox\MinecraftSv\minecraftsv\SITE\refferal\top.php on line 117 我的代码是 <?php echo '<table class="table table-

嗨,我试图从我的数据库中提取一些数据,但我得到了那个错误

Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in C:\Users\malasuerte94\Dropbox\MinecraftSv\minecraftsv\SITE\refferal\top.php on line 117
我的代码是

<?php
echo '<table class="table table-hover"><tr><th>Player</th><th>Invitati</th></tr>';
$query6 = mysql_query("SELECT `referrer`, count(1) FROM `ref_invites` GROUP BY `referrer` ORDER BY `count(1)` DESC");
while($row6 = mysql_fetch_assoc($query6))
    {
        $taracast = $row6['referrer'];
        $scor = $row6['count(1)'];  

        echo "<tr><td>".$taracast." </td><td> ".$scor."</td></tr>";

    }   
echo "</table>";

?>

$query6
失败,返回的是
布尔值而不是MySQL资源

要修复它,请检查
$query6
是否返回布尔值,如果返回布尔值,请使用MySQL错误处理函数找出错误所在


(另外,不要再使用
mysql.*
,而是使用MySQLi或PDO)

我建议您使用、
或die(mysql.\u error())
来处理查询中的错误,您可以从这里添加它开始,就像我所做的那样

mysql_query("SELECT `referrer`, count(1) FROM `ref_invites` GROUP BY `referrer` ORDER BY `count(1)` DESC") or die(mysql_error());

如果在查询结束时添加
或死亡(mysql\u error())
,即在
mysql\u query()
mysql\u connect()
mysql\u select\u db()

您缺少
mysql_connect()语句,后跟
mysql_select_db()

(顺便说一句,哪些是不推荐使用的。您最好改用mysqli或pdo函数。)


如果错过这些调用,您的
mysql_query()
返回false(布尔值),而不是资源。

修复MySQL查询我认为
计数(1)
不是已知的列名;改为使用别名。LOL,谢谢我发现了问题:)我错过了DB配置。你应该强调,这只应该在开发过程中使用,因为
mysql\u error
会泄露敏感的内部信息。@Malasuerte94是的,正如Gumbo所说,当使用
或死(mysql\u error())
时,你不应该在线上传脚本,如果出现问题,它会显示文档的每一个结构以及更多信息。因此,在构建脚本后,将其显示为
mysql\u error()
的部分替换为类似
的“数据库不可用”
这样,它将只回显该文本,而不是它,告诉您脚本的敏感信息