MySqli commands are not synchronized; you cannot run this command now

I converted my case register script from mysql to mysqli. I worked fine as mysql, but now it gives me an error

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

This is the function I use to register a user.

 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 "); } 

The letter is sent with the correct data from my array. However, the data is not inserted into the database, and I get the error mentioned above. I have never encountered this error before.

+8
php mysql mysqli
source share
1 answer

If you get Teams are not synchronized; you cannot run this command in your client code , you are calling client functions in the wrong order.

This can happen, for example, if you use mysql_use_result () and try to execute a new query before you call mysql_free_result (). This can also happen if you try to execute two queries that return data without calling mysql_use_result () or mysql_store_result () between them.

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

Update

If you make a variable for the query and insert the variable directly into something like MySQL Workbench, you can check the syntax before executing.

 <?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)); } } ?> 
+9
source share

All Articles