Intereting Posts
Почему пустой ожидает T_PAAMAYIM_NEKUDOTAYIM, когда задана не переменная? MediaWiki использует файлы cookie для входа в систему. У вас отключены файлы cookie. Включите их и повторите попытку. Как сделать запрос с использованием базовой аутентификации HTTP с помощью PHP curl? PHP mysqli_fetch_array как перейти к следующей строке? php возвращает смешанные типы данных – хорошие или плохие Что не так с этим, где предложение запроса zend Создание модулей внутри модуля в CodeIgniter Как можно реализовать форвардный индекс в PHP? Удалить DOM Предупреждение PHP В SimpleXML, как я могу добавить существующий SimpleXMLElement в качестве дочернего элемента? Как нарисовать многоугольник на карте Google, используя множество координат Как отсортировать многомерный массив по одному из полей внутреннего массива в PHP? Получение данных из фрагмента Javascript Перемещение базы данных на один домен на другой PHP получатель формы отправки электронной почты не получает правильный адрес электронной почты sendr

Подключение нескольких баз данных и объединение запросов по базе данных в php

Используя php i, я хочу сделать запрос соединения в 2 базы данных.

Это мое первое соединение.

$conn = mysql_connect('localhost','root1','pass1'); @mysql_select_db('database1',$conn); 

Это мое второе соединение.

 $conn1 = mysql_connect('localhost','root2','pass2'); @mysql_select_db('database2',$conn1); 

Если я хочу получить данные из базы данных1, я делаю следующее.

 $sql = 'SELECT * FROM users'; $result = mysql_query($sql, $conn); print_r(mysql_fetch_array($result)); 

Аналогично для второй базы данных2

 $sql = 'SELECT * FROM orders'; $result = mysql_query($sql, $conn1); print_r(mysql_fetch_array($result)); 

Но я столкнулся с проблемой, когда я делаю запрос на соединение следующим образом

 $sql = 'SELECT a.fname AS fname, a.lname AS lname FROM database1.users a JOIN database2.orders b ON b.creator_id = a.id'; $result = mysql_query($sql);//what should be second parameter over here. print_r(mysql_fetch_array($result)); 

Вы можете сделать это, указав имя таблицы и имя базы данных, как вы предложили в этом примере. Но зарегистрированный пользователь должен иметь доступ к обеим базам данных с одинаковыми учетными данными. Эта последняя часть очень важна, иначе вы не сможете это сделать.

Это дает вам простой, но простой пример: ссылка

Пример, взятый из этой ссылки (будет работать только с теми же учетными данными):

 SELECT c.customer_name, o.order_date FROM db1.tbl_customers c LEFT JOIN db2.tbl_orders o ON o.customer_id = c.id 

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

mysqli и PDO лучше, более полные (поддержка транзакции и подготовленного оператора, «mysql» – нет), а PDO поддерживает также многобайтовый запрос.

Старый mysql только процедурный, mysqli может использоваться в процедурных и OO-программировании, PDO – ООП.