Php 获得;mysqli num_rows命令不同步;你可以';“现在不要运行此命令”;mysql查询中出现错误
我在使用php脚本调用mysqli查询时遇到问题。我已经多次重写了它,并不断收到错误:“mysqli num_rows命令不同步;您现在无法运行此命令”这是第一次尝试从此页面访问数据库。我之前绑定了这些参数,然后调用:$checkAcct->num_rows()得到了同样的问题。我还尝试了有人在本网站的另一篇帖子中提出的建议: 当($checkAcct->next_result())时,不要{$checkAcct->use_result();}; 但这也不起作用,我也犯了同样的错误。在我确保具有这些详细信息的用户不在数据库中之后,我执行另一个查询,将用户的信息插入到站点中,但我得到的错误消息与此查询相关。让我知道,如果看到其他查询也会有帮助 下面是我尝试使用的代码:Php 获得;mysqli num_rows命令不同步;你可以';“现在不要运行此命令”;mysql查询中出现错误,php,mysql,sql,mysqli,Php,Mysql,Sql,Mysqli,我在使用php脚本调用mysqli查询时遇到问题。我已经多次重写了它,并不断收到错误:“mysqli num_rows命令不同步;您现在无法运行此命令”这是第一次尝试从此页面访问数据库。我之前绑定了这些参数,然后调用:$checkAcct->num_rows()得到了同样的问题。我还尝试了有人在本网站的另一篇帖子中提出的建议: 当($checkAcct->next_result())时,不要{$checkAcct->use_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电话。我在脚本中较高链接的include文件的db调用中发现了有问题的查询。有趣的是,它从未在其他任何地方引起问题,但现在我释放了结果,它工作得很好。谢谢你的帮助。我没有足够的分数来支持你的建议,你认为它必须在代码的上面。你能像这样更改上面的代码,看看你得到了什么吗
$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->store_result();
printf("Number of rows: %d.\n", $stmt->num_rows);
$checkAcct->free_result();
$checkAcct->close();
}
在再次使用前,请确保“准备缓冲区”已清除。我希望在此语句在mysqli prepare语句缓冲区中仍然处于活动状态之前执行其他一些查询。谢谢。这是一个隐藏在include文件中的db调用,我不想检查它。你可以接受答案,而不是向上投票。我是新来的。谢谢