我在多次调试后发布了这个问题。请看看。
<?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
的值手动执行了相同的查询。查询已执行。那可能是错的?请帮忙!!
答案 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。