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()
的部分替换为类似的“数据库不可用”
这样,它将只回显该文本,而不是它,告诉您脚本的敏感信息