2014-10-06 3 views
0

У меня есть система билетов, которую я создал для нескольких сайтов. Каждый веб-сайт имеет свою собственную базу данных, и таблицы в каждой базе данных одинаковы на всех сайтах с несколькими незначительными изменениями на каждом сайте.Вставить запрос в несколько баз данных

Я создаю CMS для управления всеми сайтами с одного сайта.

Я могу запросить мои базы данных и настроить переменную таким образом, чтобы вызывать каждую базу данных.

  • $database_1 = 'cats';
  • $database_2 = 'dogs';

Затем вызовите базу данных, как это в запросе:

SELECT `whatever` FROM {$database_1}.`support_ticket`..etc 

Мой вопрос, как я могу вставлять данные в таблицы базы данных?

Это работает для меня:

$addticket = DB::getInstance()->insert('cats.`st_messages`', array(etc.. 

Но я хочу, чтобы работать так:

$addticket = DB::getInstance()->insert('{$database_1}.`st_messages`', array(etc.. 

Не знаю, почему это не будет работать ..?

Так повторить:

  • $database_1 = 'cats';
  • Это работает: 'cats.st_messages'
  • Это не работает, но хочу, чтобы это: '{$database_1}.st_messages'

Если кто-то может объяснить, что я делая ошибку, используя переменную в запросе вставки, я был бы признателен. Спасибо

+1

Подключитесь к каждой базе данных отдельно, а затем обратитесь к этому идентификатору соединения при выполнении запроса –

+0

@JohnConde Я считаю, что это то, что я пытаюсь сделать. У меня есть БД, называемая кошками, и на вызываемых собаках и т. Д. Каждый подключается отдельно. Я ссылаюсь на соединение '$ database_1 = 'cats';', но при запуске моей строки вставки '' {$ database_1} .st_messages'' он не читает ее как '' cats.st_messages'' ..... . Что я спрашиваю, это не так: '' {$ database_1} .st_messages'' ..? – echo

ответ

1

Вы должны использовать двойные кавычки при построении строк, иначе они не будут интерполированы.

+0

Спасибо за советы, которые работают отлично. Большое спасибо @meda – echo

Смежные вопросы