我在调试几次后发布了这个问题。请看一看。
<?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。