When using NetBeans to debug PHP script, 'affected_rows' will change from 1 to -1

I am testing a simple PHP-MySQL script, and it’s to delete one record from the table. The strange thing is in this block of code:

  // 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. 

When I use NetBeans to debug this script, after the record is deleted($r = @mysqli_query ($dbc, $q) is executed), the affected_rows = 1 in the variable section of NetBeans, which is correct. But then after I press F7 to step into and ‘if (mysqli_affected_rows($dbc) == 1)’ is executed, affected_rows suddenly becomes -1, and the program logic jumps to the error reporting branch.

If I don’t debug and just run the script, the Deletion is totally OK. What’s the possible cause?

Here’s the whole script:


        <?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, to confirm that this user should be deleted.

        // 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. (Just 1 result as user_id is PK)

            // 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');
    ?>

Another problem is that after running the script, there are many lines of warnings:


    Warning: main(): Couldn't fetch mysqli in C:\\xampp\\htdocs\\phpmysql4_working\\delete_user.php on line 75

     Warning: main(): Couldn't fetch mysqli in C:\\xampp\\htdocs\\phpmysql4_working\\includes\\footer.html on line 11
    Call Stack
    #    Time    Memory    Function    Location
    1    0.1000    146128    {main}( )    ..\\delete_user.php:0
    2    249.5054    187032    include( 'C:\\xampp\\htdocs\\phpmysql4_working\\includes\\footer.html' )    ..\\delete_user.php:75 

But MySQL was actually been accessed successfully. The footer.html is:


       <!-- End of the page-specific content. --></div>

        <div id="footer">
            <p>Copyright &copy; <a href="#">Plain and Simple</a> 2007 |
                Designed by <a href="http://www.edg3.co.uk/">edg3.co.uk</a> |
                Sponsored by <a href="http://www.opendesigns.org/">Open Designs</a> |
                Valid <a href="http://jigsaw.w3.org/css-validator/">CSS</a> &amp; <a href="http://validator.w3.org/">XHTML</a></p>
        </div>
    </body>
    </html>