mysql命令不同步;您现在不能运行这个命令


MySqli Commands out of sync; you can't run this command now

我已经将我的注册脚本从mysql转换为mysqli。我工作得很好mysql,但它现在给我错误

Commands out of sync; you can't run this command now
这是我用来注册用户的函数
function register_user($register_data) { 
global $myConnection;
array_walk($register_data, 'array_sanitize'); 
//Make the array readable and seperate the fields from data 
$fields = '`' . implode('`, `', array_keys($register_data)) . '`'; 
$data = '''' . implode(''', ''', $register_data) . ''''; 
//Insert the data and email an activation email to the user 
mysqli_query($myConnection, "INSERT INTO `members` ($fields) VALUES ($data)") or die(mysqli_error($myConnection)); 
email($register_data['mem_email'], 'Activate your account', "Hello " . $register_data['mem_first_name'] . ",'n'nThank you for creating an account with H Fencing. Please use the link below to activate your account so we can confirm you identity:'n'nhttp://blah.blah.co.uk/activate.php?mem_email=" . $register_data['mem_email'] . "&email_code=" . $register_data['email_code'] . "'n'n - David & Jay "); 
}

电子邮件发送正确的数据从我的数组。然而,没有数据插入到数据库中,我得到上面提到的错误。我从来没有遇到过这个错误。

如果你得到命令不同步;你不能在你的客户端代码中运行这个命令,你正在以错误的顺序调用客户端函数。

例如,如果您正在使用mysql_use_result(),并在调用mysql_free_result()之前尝试执行新查询,则可能发生

。如果您尝试执行两个返回数据的查询,而不调用mysql_use_result()或mysql_store_result(),也可能发生这种情况。

从这里

:http://dev.mysql.com/doc/refman/5.0/en/commands-out-of-sync.html

如果您为查询创建一个变量,并将该变量直接粘贴到MySQL Workbench中,您可以在执行之前检查语法。

<?php
            function myConnection(){
              $myConnection = mysqli_connect('localhost', 'my_user', 'my_password', 'my_db');
              return $myConnection;
            }   

    function register_user($register_data) { 
        array_walk($register_data, 'array_sanitize'); 
        //Make the array readable and seperate the fields from data 
        $fields = '`' . implode('`, `', array_keys($register_data)) . '`'; 
        $data = "'" . implode("', '", $register_data) . "'"; 
        //Insert the data and email an activation email to the user 
        $query = "INSERT INTO `members` ($fields) VALUES ($data)";
                    $myNewConnection = myConnection();          
                    if($result = mysqli_query($myNewConnection, $query)){ 
        email($register_data['mem_email'], 'Activate your account', "Hello " . $register_data['mem_first_name'] . ",'n'nThank you for creating an account with H Fencing. Please use the link below to activate your account so we can confirm you identity:'n'nhttp://blah.blah.co.uk/activate.php?mem_email=" . $register_data['mem_email'] . "&email_code=" . $register_data['email_code'] . "'n'n - David & Jay "); 
        mysqli_free_result($result);
         return ("Success");
        } else {
            echo $query;
            die(mysqli_error($myNewConnection));
        } 
    }
?>