我知道一个类似的问题已经回答,但我的情况下,我不使用布尔值,我得到这个错误
警告:mysql_num_rows()期望参数1为resource, null,在/home3/arm103/public_html/battle.php第19行
这里是battle.php从第1行到第25行
<?php
session_start();
include("header.php");
if(!isset($_SESSION['uid'])){
echo "You must be logged in to view this page!";
}else{
if(isset($_POST['gold'])) {
$energy = protect($_POST['energy']);
$id = protect($_POST['id']);
$user_check = mysql_query("SELECT * FROM `stats` WHERE `id`='".$id."'") or die(mysql_error());
if(mysql_num_rows($user_check) ==0) {
output("There is no user with that ID!");
}elseif($energy < 1 || $energy > 10) {
output("You must attack with 1 - 10 energy!");
}elseif($energy > $stats['energy']){
output("You do not have enough energy!");
}elseif($id == $_SESSION['uid']) {
output("You can not attack yourself!");
}elseif(mysql_num_rows($attacks_check) > 9) {
output("This person has been already attacked the maximum of 10 times in the last 24 hours!");
}else{
$enemy_stats = mysql_fetch_assoc($user_check);
$attack_effect = $energy * 0.1 * $stats['attack'];
$defence_effect = $enemy_stats['defence'];
如果有人能告诉我这个问题就太好了,谢谢
$attacks_check
未定义,因此为null。在将其作为参数传递给mysql_num_rows()
之前,您需要将其初始化为资源。
}elseif(mysql_num_rows($attacks_check) > 9) {
作为旁注,请注意mysql_*
函数已被弃用,而支持mysqli或PDO。请考虑更新您的代码以提高安全性和稳定性。
不再支持mysql_*函数,它们已被正式弃用,不再维护,并将在将来删除。你应该用PDO或MySQLi更新你的代码,以确保你的项目在未来的功能。
您正在引用一个未定义的变量,$attacks_check
未分配,因此为null。
您使用了$attack_check
,但没有定义
}elseif(mysql_num_rows($attacks_check) > 9) {
由于变量为空,因此导致错误
然后我希望你记住mysql_*
函数已被弃用,所以我建议你切换到mysqli
或PDO