|
|
|
| Доброй ночи.
Подскажите как можно в одном php скрипте соединиться с двумя базами? | |
|
|
|
|
|
|
|
для: Minus
(21.04.2009 в 00:03)
| | 1. Функция mysql_connect() возвращает дескриптор соединения.
2. В рамках даже одного соединения можно работать со всеми базами, доступными этому логину. | |
|
|
|
|
|
|
|
для: Trianon
(21.04.2009 в 00:16)
| | Ну вот допустим у меня такой скриптик есть:
<?
$dbhost = 'localhost';
$dbuser = 'user';
$dbpass = '1234';
$dbname = 'base';
$connect = mysql_connect($dbhost,$dbuser,$dbpass);
mysql_select_db($dbname,$connect);
/*Запрос на вывод информации из базы base*/
include("file2.php");
?>
|
Файл file2.php:
<?
$dbhost2 = 'localhost';
$dbuser2 = 'user2';
$dbpass2 = '12345';
$dbname2 = 'base2';
$connect = mysql_connect($dbhost2,$dbuser2,$dbpass2);
mysql_select_db($dbname2,$connect);
/*Запрос на вывод информации из базы base2*/
?>
|
как такое сделать? | |
|
|
|
|
|
|
|
для: Minus
(21.04.2009 в 00:25)
| | В чем сложности? | |
|
|
|
|
|
|
|
для: Trianon
(21.04.2009 в 00:46)
| | Не понял смысл двух соединений с базами.
Вот вы писали:
"2. В рамках даже одного соединения можно работать со всеми базами, доступными этому логину.".
Это получается:
$connect = mysql_connect($dbhost,$dbuser,$dbpass);
mysql_select_db($dbname,$connect);
$connect2 = mysql_connect($dbhost2,$dbuser2,$dbpass2);
mysql_select_db($dbname2,$connect2);
так это все равно выдаст ошибку.. | |
|
|
|
|
|
|
|
для: Minus
(21.04.2009 в 00:47)
| | Из этих функций за выбор базы отвечает только mysql_select_db().
<?php
$connect = mysql_connect($dbhost,$dbuser,$dbpass);
mysql_select_db('1st_database',$connect);
// тут работа с 1st_database
mysql_select_db('2nd_database',$connect);
// тут работа с 2nd_database
// и т.д.
|
| |
|
|
|
|
|
|
|
для: Лерк
(21.04.2009 в 02:00)
| | На самом деле можно и проще :)
К примеру
INSERT INTO db2.table2 (f1, f2) SELECT f1, f2 FROM db1.table1
|
| |
|
|
|
|
|
|
|
для: Trianon
(21.04.2009 в 02:59)
| | Да, тоже верно | |
|
|
|
|
|
|
|
для: Trianon
(21.04.2009 в 02:59)
| | Спасибо! помогло :) | |
|
|
|
|
|
|
|
для: Minus
(21.04.2009 в 00:47)
| | >Вот вы писали:
>"2. В рамках даже одного соединения можно работать со всеми базами, доступными этому логину.".
>Это получается:
>$connect = mysql_connect($dbhost,$dbuser,$dbpass);
>mysql_select_db($dbname,$connect);
>
>$connect2 = mysql_connect($dbhost2,$dbuser2,$dbpass2);
>mysql_select_db($dbname2,$connect2);
>
>так это все равно выдаст ошибку..
Вполне адекватный код. Только всё же через два разных соединения.
И если далее во всех обращениях честно используются дескрипторы $connect и $connect2
(и соответствующие логины наделены правами к соответствующим базам),
то никаких специфических ошибок быть не должно. | |
|
|
|