Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: mysql_select_db - вопрос по функции

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: работа с несколькими базами
Вездеход
Отправлено: 26 Апреля, 2008 - 15:21:33
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 820
Дата рег-ции: Апр. 2008  
Откуда: Россия


Помог: 0 раз(а)




при создании сайта возникла потребность сделать несколько баз данных (MySQL)
конект к серверу у всех баз одинаковый и осуществляется один раз.
а вот как быть с базой?

сейчас при работе только с 1 базой - у меня сразу после конекта прописано названии базы данных через функцию mysql_select_db. и в дальнейшем при запросе каких либо данных - указывается просто таблица откуда брать. например таблица `users`

а как сделать чтобы можно было работать с несколькими базами одновременно?
можно ли например прописать сразу после конекта к серверу названия нескольких баз, а потом при запросе данных просто указывать откуда брать инфу - т.е. название таблицы будет уже не `users`, а `my_bd.users`?


-----
о великий nl2br!
Хочешь невероятных ощущений? Юзай блокнот! Блокнот - чудеса сбываются!
Чем меньше вы знаете PHP - тем ценнее мои знания!
 
 Top
SION-ZENIT
Отправлено: 26 Апреля, 2008 - 16:11:11
Post Id


Частый гость


Покинул форум
Сообщений всего: 148
Дата рег-ции: Июль 2007  
Откуда: SPb


Помог: 0 раз(а)




PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. $link=mysql_connect('host','name','pass',true);
  4. mysql_select_db('dbname',$link);
  5. $result2=mysql_query('SELECT * FROM `table`',$link);
  6. //Ваши действия с первой БД
  7. $link2=mysql_connect('host','name','pass',true);
  8. mysql_select_db('dbname2',$link2);
  9. $result2=mysql_query('SELECT * FROM `table`',$link2);
  10. //Ваши действия со второй БД
  11. ?>
  12.  
 
 Top
Вездеход
Отправлено: 26 Апреля, 2008 - 16:43:16
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 820
Дата рег-ции: Апр. 2008  
Откуда: Россия


Помог: 0 раз(а)




т.е. для каждого запроса просто напросто писать выбор базы?
а по другому как либо можно?


-----
о великий nl2br!
Хочешь невероятных ощущений? Юзай блокнот! Блокнот - чудеса сбываются!
Чем меньше вы знаете PHP - тем ценнее мои знания!
 
 Top
SION-ZENIT
Отправлено: 26 Апреля, 2008 - 18:54:07
Post Id


Частый гость


Покинул форум
Сообщений всего: 148
Дата рег-ции: Июль 2007  
Откуда: SPb


Помог: 0 раз(а)




Вездеход пишет:
т.е. для каждого запроса просто напросто писать выбор базы?

Нет, для каждой базы создать свою ссылку и использовать её. Прочтите код еще раз
 
 Top
Вездеход
Отправлено: 26 Апреля, 2008 - 20:50:59
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 820
Дата рег-ции: Апр. 2008  
Откуда: Россия


Помог: 0 раз(а)




гм
не понел...
а если $link и $link2 одно и тоже все равно нужно делать столько ссылок скока будет баз?

еще.
SION-ZENIT пишет:
$link=mysql_connect('host','name','pass',true);
mysql_select_db('dbname',$link);

а в данном случае конект к базе будет происходить только во время выбора базы. я правельно понимаю?
(Добавление)
а закрывать соединение нужно я так понимаю так:
mysql_close($link);

и соответственно

mysql_close($link2);

я правельно понел?


-----
о великий nl2br!
Хочешь невероятных ощущений? Юзай блокнот! Блокнот - чудеса сбываются!
Чем меньше вы знаете PHP - тем ценнее мои знания!
 
 Top
SION-ZENIT
Отправлено: 26 Апреля, 2008 - 23:28:44
Post Id


Частый гость


Покинул форум
Сообщений всего: 148
Дата рег-ции: Июль 2007  
Откуда: SPb


Помог: 0 раз(а)




Сколько баз, столько и ссылок, но запросов-то может быть сколько угодно и работать можно одновременно, только надо указывать ссылку на соединение
 
 Top
EuGen Администратор
Отправлено: 27 Апреля, 2008 - 10:47:43
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




Вообще говоря, не обязательно использовать несколько соединений. Можно менять БД и в пределах одного соединения.
Выглядит это так - поработали с одной БД, сменили, поработали с другой. По моему, логичнее, если один скрипт генерирует одно соединение с БД (чтобы сэкономить соединения с БД)


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
Вездеход
Отправлено: 27 Апреля, 2008 - 14:35:06
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 820
Дата рег-ции: Апр. 2008  
Откуда: Россия


Помог: 0 раз(а)




т.е. я шас смело могу написать конект к серверу с базами в начале страницы (а все скрипты работаю только там - других страниц нет)
и потом в модулях перед выполнением действий каких либо просто указывать название базы через mysql_select_db.
и соответственно в mysql_select_db значит ссылку на соединение с бд указывать не надо будет?


-----
о великий nl2br!
Хочешь невероятных ощущений? Юзай блокнот! Блокнот - чудеса сбываются!
Чем меньше вы знаете PHP - тем ценнее мои знания!
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« SQL и Архитектура БД »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB