В веб-приложении, которое я создал в Zend Framework, я создаю новую базу данных для каждого нового клиента, который регистрируется. Этот запрос, конечно, довольно тяжелый и занимает много времени, так как нам нужно создать базу данных, создать около 10 таблиц и поместить некоторые данные в таблицы.
Мы используем один большой файл SQL, который мы читаем, и exec ().
После этих запросов с другим подключением mysql в ZF мне нужно вставить новую запись в одну из таблиц, созданных на предыдущем шаге.
Вот где он терпит неудачу: когда первый запрос еще не завершен, и я пытаюсь вставить данные в создаваемые таблицы, я получаю сообщение об ошибке «таблица xxxx не существует».
Все это происходит за доли секунды, но я не могу найти способ «дождаться» завершения первого большого запроса.
добавление команды sleep (2) до того, как второе выражение решило эту проблему, но на самом деле это не тот способ, которым мы хотим играть.
Кроме того, мы не можем использовать транзакцию, поскольку мы используем CREATE DATABASE и другие операторы, которые нельзя использовать с транзакциями.