我从 php 脚本调用的 mysqli 查询有问题。我已经重写了很多次,并且不断收到错误:“mysqli num_rows 命令不同步;您现在无法运行此命令” 这是从该页面访问数据库的第一次尝试。我之前绑定了参数,然后调用: $checkAcct->num_rows() 并遇到了同样的问题。我还尝试了有人在此站点上的不同帖子中提出的建议:do { $checkAcct->use_result(); } 而( $checkAcct->next_result() ); 但这也不起作用,我遇到了同样的错误。在确保具有这些详细信息的用户不在数据库中后,我执行另一个查询以将用户的信息插入站点,但我收到的错误消息与此查询有关。
以下是我尝试使用的代码:
$checkAcct = $dbConn->stmt_init();
$existingAcct = array();
if ($checkAcct->prepare("select usrName, eAddy from usr where usrName = ? OR eAddy = ?"))
{
$checkAcct->bind_param("ss", $usr, $eml);
$checkAcct->execute();
$checkAcct->bind_result($result);
while($checkAcct->fetch())
{
$existingAcct[] = $result;
}
if ($existingAcct[0] != 0)
{
if ($usr == $inputs['usrName'] && $eml == $inputs['eAddy'])
{
$acctSetupErrors[] = "Someone with your username and email address already exists. Please use the forgot password form to reset your password";
} else if ($eml == $inputs['eAddy']) {
$acctSetupErrors[] = "Someone with your email address already exists. Please use the forgot password form to reset your password or setup an account with a different email address";
} else {
$acctSetupErrors[] = "Someone with your username already exists. Please choose a different username";
}
}
$checkAcct->free_result();
$checkAcct->close();
编辑
好吧。我尝试了你的方法,但它也不起作用,所以我去寻找任何以前的数据库调用。我在脚本中链接较高的包含文件中的 db 调用中发现了有问题的查询。有趣的是,它从未在其他任何地方造成问题,但现在我释放了结果并且效果很好。感谢您对此的帮助。我没有足够的分数来支持你建议它必须在代码上方的某个地方。