Можно ли отслеживать ход выполнения сценария mysql с помощью PHP mysqli_multi_query?

Код следующий:

if (mysqli_multi_query($conn, $query)) {

$token = $_POST['token'];

$query = "INSERT INTO _usuarios (
login_usuario,
nombre_usuario,
password_usuario,
id_perfil,
fecha_creacion_usuario,
id_usuarioCreate)
VALUES (
'$token',
'$token',
'$passCreate',
6,
NOW(),
1
);";

if ($conn->query($query) === TRUE)
{
echo "User created successfully";
}
else
{
echo "Error creating user: " . $conn->error.$query;
}
}

Каждый раз, когда я запускаю мультизапрос (который в данном случае является очень большим сценарием sql для создания базы данных), и я пытаюсь выполнить INSERT ниже, я получаю одно и то же сообщение:

«Таблица _usuarios не существует»

Я полагаю, что это потому, что сценарий еще не закончился, когда я пытаюсь выполнить вставку.

Есть идеи?

2

Решение

Да, это возможно.

while ($mysqli->next_result());

Запустите этот код после нескольких запросов, чтобы скрипт PHP ожидал выполнения последнего запроса.

Обратите внимание, что для второго запроса вы должны использовать подготовленные операторы, а не добавлять переменные в запрос напрямую.

1

Другие решения

Что касается сообщения об ошибке, кажется, что ваша таблица еще не была создана. Вы можете сделать следующее, чтобы создать его за один шаг:

    $token = $_POST['token'];
$token1 = $_POST['token1']; // I do not know it exactly anymore how you can retrieve all the POSTS

SELECT $token, $token1, field3, field4, ... INTO _usuarios

Теперь ваш стол будет создан и заполнен одновременно.

-1

По вопросам рекламы [email protected]