Intereting Posts
как я могу получить вставленный id php и oracle Как проверить, является ли строка допустимым PCRE? Вставка данных в несколько таблиц с использованием одной формы PHP: Лучший способ проверить, является ли ввод допустимым числом? Извлечение подстроки, которая обертывается некоторыми символами Есть ли лучшая практика только для частичной интеграции фреймворка PHP в подкаталог веб-сайта? Как управлять простой сессией PHP с использованием C ++ cURL (libcurl) Обновление без касания временных меток (Laravel) Компиляция php с модулями vs с использованием общих модулей? Создание REST API с использованием PHP Использование preg_match для определения надежного пароля Как правильно вывести значения формы ввода html в php? Pagination с помощью Mysql и PHP Help Расстояние Левенштейна: как лучше обрабатывать слова, заменяющие позиции? Класс Wrapper Thread для функции с переменными аргументами в PHP

Как использовать несколько баз данных с помощью php?

Я прочитал несколько вопросов в Интернете, включая этот вопрос stackoverflow, но никто из них не работает для меня. Вот мой код:

<?php $conn1 = mysql_connect("localhost","root","passw0rd") or die(mysql_error()); $conn2 = mysql_connect("localhost","root","passw0rd") or die(mysql_error()); mysql_select_db("asteriskcdrdb",$conn1); mysql_select_db("pj8v2",$conn2); $query = "SELECT * FROM cdr"; $result = mysql_query($query,$conn1); var_dump($result); $query2 = "SELECT * FROM tb_did_avalaible"; $result2 = mysql_query($query2,$conn2); var_dump($result2); ?> 

Когда я var_dump результат, он возвращает false. В чем проблема? Спасибо.

Вам не нужны два подключения, если обе базы данных расположены на одном и том же сервере mysql, и вы обращаетесь к ним как к уникальному пользователю.

Вам также не нужно выбирать БД.
Просто используйте имя базы данных в качестве префикса при указании таблиц:

 <?php mysql_connect("localhost","root","pass") or die(mysql_error()); $query = "SELECT * FROM asteriskcdrdb.cdr"; $result = mysql_query($query)or die(mysql_error()); var_dump($result); $query2 = "SELECT * FROM pj8v2.tb_did_avalaible"; $result2 = mysql_query($query2)or die(mysql_error()); var_dump($result2); ?> 

Реальная проблема в вашем коде: там может быть только одна активная БД, она должна работать так:

 <?php $conn1 = mysql_connect("localhost","root","passw0rd") or die(mysql_error()); $conn2 = mysql_connect("localhost","root","passw0rd",true) or die(mysql_error()); mysql_select_db("asteriskcdrdb",$conn1); $query = "SELECT * FROM cdr"; $result = mysql_query($query,$conn1); var_dump($result); mysql_select_db("pj8v2",$conn2); $query2 = "SELECT * FROM tb_did_avalaible"; $result2 = mysql_query($query2,$conn2); var_dump($result2); ?> 

Хотя нет необходимости в двух соединениях, вы можете выбрать оба БД, используя одно и то же соединение.

Извините, я просто выясню проблему. При использовании одного и того же параметра подключения необходимо добавить true в параметр connect

 $conn1 = mysql_connect("localhost","root","passw0rd") or die(mysql_error()); $conn2 = mysql_connect("localhost","root","passw0rd",true) or die(mysql_error()); 

Не используйте соединитель mysql, используйте mysqli. Он более безопасен по сравнению с mysql.

код будет.

 $conn1 = new mysqli("localhost","user","password","db1"); $conn2 = new mysqli("localhost","user","password","db2"); $query1 = "select * from table1"; $query2 = "select * from table2"; echo $query1 . "<br />"; echo $query2 . "<br />"; $rs1 = $conn1->query($query1); $rs2 = $conn2->query($query1); 

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