PHP错误-我的错误是什么意思?

PHP错误-我的错误是什么意思?,php,Php,在单击view_users.php页面上的删除链接后,我出现此错误。我认为错误出现在delete_users.php页面上,但当我使用您可以从他的网站下载的数据文件版本时,我仍然会遇到相同的错误 这就是错误: 警告:mysqli_num_rows()期望参数1是mysqli_result,布尔值在第38行的/var/www/PHP和MySQL for Dynamic Web Sites/Chapter 9/delete_user.PHP中给出 <?php # Script 10.2 - d

在单击view_users.php页面上的删除链接后,我出现此错误。我认为错误出现在delete_users.php页面上,但当我使用您可以从他的网站下载的数据文件版本时,我仍然会遇到相同的错误

这就是错误:

警告:mysqli_num_rows()期望参数1是mysqli_result,布尔值在第38行的/var/www/PHP和MySQL for Dynamic Web Sites/Chapter 9/delete_user.PHP中给出

<?php # Script 10.2 - delete_user.php
// This page is for deleting a user record.
// This page is accessed through view_users.php.

$page_title = 'Delete a User';
include ('includes/header.html');
echo '<h1>Delete a User</h1>';

// Check for a valid user ID, through GET or POST:
if ( (isset($_GET['id'])) && (is_numeric($_GET['id'])) ) { // From view_users.php
    $id = $_GET['id'];
} elseif ( (isset($_POST['id'])) && (is_numeric($_POST['id'])) ) { // Form submission.
    $id = $_POST['id'];
} else { // No valid ID, kill the script.
    echo '<p class="error">This page has been accessed in error.</p>';
    include ('includes/footer.html'); 
    exit();
}

require ('mysqli_connect.php');

// Check if the form has been submitted:
if ($_SERVER['REQUEST_METHOD'] == 'POST') {

    if ($_POST['sure'] == 'Yes') { // Delete the record.

        // Make the query:
        $q = "DELETE FROM users WHERE user_id=$id LIMIT 1";     
        $r = @mysqli_query ($dbc, $q);
        if (mysqli_affected_rows($dbc) == 1) { // If it ran OK.

            // Print a message:
            echo '<p>The user has been deleted.</p>';   

        } else { // If the query did not run OK.
            echo '<p class="error">The user could not be deleted due to a system error.</p>'; // Public message.
            echo '<p>' . mysqli_error($dbc) . '<br />Query: ' . $q .     '</p>'; // Debugging message.
        }

    } else { // No confirmation of deletion.
        echo '<p>The user has NOT been deleted.</p>';   
    }

} else { // Show the form.

    // Retrieve the user's information:
    $q = "SELECT CONCAT(last_name, ', ', first_name) FROM users WHERE user_id=$id";
    $r = @mysqli_query ($dbc, $q);

    if (mysqli_num_rows($r) == 1) { // Valid user ID, show the form.

        // Get the user's information:
        $row = mysqli_fetch_array ($r, MYSQLI_NUM);

        // Display the record being deleted:
        echo "<h3>Name: $row[0]</h3>
        Are you sure you want to delete this user?";

        // Create the form:
        echo '<form action="delete_user.php" method="post">
    <input type="radio" name="sure" value="Yes" /> Yes 
    <input type="radio" name="sure" value="No" checked="checked" /> No
    <input type="submit" name="submit" value="Submit" />
    <input type="hidden" name="id" value="' . $id . '" />
    </form>';

    } else { // Not a valid user ID.
        echo '<p class="error">This page has been accessed in error.    </p>';
    }

} // End of the main submission conditional.

mysqli_close($dbc);

include ('includes/footer.html');
?>

您应该检查$r是否为假,并找出错误所在

if($r===false)
{
echo mysqli_error($dbc) ;
}
您应该检查$r是否为假,并找出错误所在

if($r===false)
{
echo mysqli_error($dbc) ;
}

尝试检查您的数据库连接是否有任何问题。因此,请查看
$dbc
是否抛出任何错误,它可能会导致
mysqli\u query()
一些问题。为了进行调试,请删除
mysqli\u query()
前面的错误控制操作符


另外,请查看您试图运行的查询(
从user_id=$id
的用户处选择CONCAT(姓氏,,,姓氏)是否引发任何错误。作为一个快速提示,不要在查询中使用字符串插值,尝试将变量作为参数绑定到准备好的语句。

尝试检查数据库连接是否有问题。因此,请查看
$dbc
是否抛出任何错误,它可能会导致
mysqli\u query()
一些问题。为了进行调试,请删除
mysqli\u query()
前面的错误控制操作符


另外,请查看您试图运行的查询(
从user_id=$id
的用户处选择CONCAT(姓氏,,,姓氏)是否引发任何错误。作为一个快速提示,不要在查询中使用字符串插值,尝试将变量作为参数绑定到准备好的语句。

mysqli_num_rows()期望参数1是mysqli_result,布尔给定意味着
$r
false
,并且查询执行失败。用于调试问题。mysqli_num_rows()预期参数1为mysqli_result,布尔给定的意思是
$r
false
,并且查询执行失败。用于调试问题。我不知道我做了什么,但我关闭了电脑,两天后返回,脚本工作正常。我不知道我做了什么,但我关闭了电脑,两天后返回,脚本工作正常。