我的代码出了什么问题???更新查询不起作用


What's wrong in my code??? Update query not working

我在调试几次后发布了这个问题。请看一看。

<?php
if(isset($_POST["g"]) && isset($_POST["c"]))
{
    $g = preg_replace('#[^a-z]#i', '', $_POST['g']);
    $c = preg_replace('#[^a-z ]#i', '', $_POST['c']);
    //echo $g.$c.$log_username;
    if($g == "" || $c == "")
    {
        echo "The form submission is missing values.";
        exit();  
    }
    else
    {
        $sql = "UPDATE users SET gender='$g',country='$c' WHERE username='$log_username'";
        $query = mysqli_query($db_conx,$sql);
        //echo $query;
        $numrows = mysqli_num_rows($query);
        //echo $numrows;
        if($numrows > 0)
        {
            echo "success";
            exit();
        }
        else
        {
            echo "failed";
            exit();
        }
        exit();
    }
}
?>

我得到的错误是 Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given in C:'xampp'htdocs'sns2'root'account_config.php on line 36

我完全得到了$g,$c,$log_username的值(使用 echo 对其进行了测试)。我正在连接到数据库。我认为查询语法没有问题,因为我使用 $g,$c,$log_username 的值手动执行了相同的查询。查询已执行。所以这可能错了??请帮忙!!

引用 php 文档 for mysqli_query

失败时返回 FALSE。成功选择、显示、描述或 EXPLAIN 查询 mysqli_query() 将返回一个mysqli_result对象。 对于其他成功的查询mysqli_query() 将返回 TRUE。

因此,您可能会获得TRUE返回值,因此应改用 http://de3.php.net/manual/en/mysqli.affected-rows.php

更新查询的情况下使用mysqli_affected_rows。