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

时间:2014-03-30 16:31:31

标签: php mysqli

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

<?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的值手动执行了相同的查询。查询已执行。那可能是错的?请帮忙!!

2 个答案:

答案 0 :(得分:1)

引用mysqli_query文档:

  

失败时返回FALSE。成功 SELECT,SHOW,DESCRIBE或   EXPLAIN 查询mysqli_query()将返回一个mysqli_result对象。   对于其他成功查询,mysqli_query()将返回TRUE。

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

答案 1 :(得分:0)

在UPDATE查询的情况下使用mysqli_affected_rows。