Привет, Я пытаюсь переписать часть кода, заменяя mysql_query на mysqli_query, но я получаю command out of sync
сообщения command out of sync
.
Я думал, это означало, что мне нужно было использовать mysqli_multi_query
но, видимо, нет, это должно сработать –
используя mysqli_multi_query для извлечения некоторых данных и повторного ввода его в другую таблицу .
Я попытался добавить MYSQL_STORE_RESULT
и освободить ресурсы $result
но не могу пройти мимо этой ошибки синхронизации. Что мне нужно сделать для того, чтобы эти вызовы db выполнялись счастливо и впоследствии.
$result = mysqli_query($con,"SELECT entity_id FROM customer_entity_int WHERE attribute_id = 153 and value = 1 ORDER BY entity_id;") or die(mysqli_error($con)); // this selects the entity id for all active registered users // $result = mysqli_query($con,"SELECT entity_id FROM customer_entity_int WHERE attribute_id = 153 AND value = 1 AND entity_id > 453 AND entity_id < 455 ORDER BY entity_id;"); while($row = mysqli_fetch_array($result)) { $activeUser = $row['entity_id']; // echo "<br />-<br />active user = $activeUser<br />"; $res_CheckAddRef = mysqli_query($con,"SELECT * FROM customer_address_entity WHERE parent_id = $activeUser;") or die(mysqli_error($con)); // check to see if there is an address stored against this user // echo "SELECT * FROM customer_address_entity WHERE parent_id = ".$activeUser."<br />"; if(mysqli_num_rows($res_CheckAddRef) < 1) // if no address stored against this active user retrieve the registration data and enter into address data fields { // echo "<br />my sql num rows = ".mysqli_num_rows($res_CheckAddRef)."<br />"; $res_GetAddrData = mysqli_query($con,"SELECT * FROM customer_entity_varchar WHERE entity_id = $activeUser;") or die(mysqli_error($con)); // echo "SELECT * FROM customer_entity_varchar WHERE entity_id = $activeUser;<br />"; while($row = mysqli_fetch_assoc($res_GetAddrData)) { switch($row['attribute_id']) { case 5: $fname = $row['value']; break; case 7: $lname = $row['value']; break; case 156: $street = strtoupper($row['value']); break; case 151: $pcode = strtoupper($row['value']); break; case 157: $telephone = $row['value']; break; } } echo "<br />$fname, $lname, $street, $pcode, $telephone<br />"; ## check we have retrieved address data if($fname != '' && $lname != '' && $street != '' && $pcode != '' && $telephone != '') { ## START CREATING THE NEW RECORD ## ## insert entity_id (auto increment), entity_type_id (2), attribute_set_id (0), increment_id(NULL), parent_id (active user), created at & modified at (now date()), is_active (1) date_default_timezone_set('GMT'); $res_CreateNewAddr = mysqli_query($con,"INSERT INTO customer_address_entity VALUES ('','2','0',NULL,'$activeUser','".date("Ymd H:i:s")."','".date("Ymd H:i:s")."','1');"); echo "INSERT INTO customer_address_entity VALUES ('','2','0',NULL,'$activeUser','".date("Ymd H:i:s")."','".date("Ymd H:i:s")."','1');"; echo "<br />"; if(mysqli_affected_rows($con) < 1) { echo "res_CreateNewAddr didn't work. ".mysqli_error()."<br />"; }
Это произойдет через один раз, но затем даст
Commands out of sync; you can't run this command now
ошибка на второй итерации.
Большое спасибо за любой свет, который вы можете потерять.