Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/275.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 获得;mysqli num_rows命令不同步;你可以';“现在不要运行此命令”;mysql查询中出现错误_Php_Mysql_Sql_Mysqli - Fatal编程技术网

Php 获得;mysqli num_rows命令不同步;你可以';“现在不要运行此命令”;mysql查询中出现错误

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();}; 但这也不起作用,我也犯了同样的错误。在我确保具有

我在使用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调用,我不想检查它。你可以接受答案,而不是向上投票。我是新来的。谢谢