Я прочитал несколько вопросов в Интернете, включая этот вопрос 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);
Также проверьте правильность запроса. В большинстве случаев ошибка возникает в запросе, а не в синтаксисе.