繁体   English   中英

有人可以告诉我如何计算select prepare语句的返回值吗?

[英]can someone tell me how to count the select prepare statement returns?

问题是,我在下面有一条这样的声明,我在我的android应用的服务器端使用它

$statement = mysqli_prepare($con, "SELECT * FROM accounts WHERE email = ? OR username = ?");
mysqli_stmt_bind_param($statement, "ss", $email, $username);
$result = mysqli_stmt_execute($statement);
$rows = mysqli_stmt_fetch($result);

而且我想知道从中返回了多少行,所以我可以知道数据库中是否已经存在具有相同用户名和电子邮件的数据,但是它不起作用。

如何解决这个问题呢? 并预先感谢。

我想知道又返回了几行

不,你没有。 这是一个错误的目标。

使用数据库时,应始终请求所需的确切数据 ,而不是在客户端进行一些计算。

因此,在您的情况下,您需要用户信息-因此请选择该信息。 意味着您可以使用此非常用户信息来判断您的查询是否返回了任何内容。

$statement = mysqli_prepare($con, "SELECT * FROM accounts WHERE email = ? OR username = ?");
mysqli_stmt_bind_param($statement, "ss", $email, $username);
mysqli_stmt_execute($statement);
$result = mysqli_get_result($statement);
$user = mysqli_fetch_assoc($result);

//now you have the very $user variable to tell whether anything was found
if ($user) {
  //user exists
}

您所缺少的只是将num_rows函数与生成的mysqli对象一起使用:

$statement = mysqli_prepare($con, 
    "SELECT * FROM accounts WHERE email = ? OR username = ?");
mysqli_stmt_bind_param($statement, "ss", $email, $username);
$result = mysqli_stmt_execute($statement);

$numbRows = $result->num_rows;

//printing the result:
echo "number of rows = {$numbRows}<br>";

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM