Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Подключение к двум БД 
:(
    Опции темы
Win MK 32
Дата 14.2.2012, 21:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 492
Регистрация: 15.7.2002

Репутация: нет
Всего: нет



Не получается, выдает ошибку Table 'diplom.tables' doesn't exist. Как я понял - путаются подключения. Почему так?

 Вот весь код

Код

<?php
define('DB_NAME','diplom');

$link = mysql_connect("localhost", "root", "") or die (mysql_error());
mysql_select_db("information_schema",$link) or die (mysql_error());

$link2 = mysql_connect("localhost", "root", "") or die (mysql_error());
mysql_select_db("diplom",$link2) or die (mysql_error());

mysql_query("set character_set_client    ='cp1251'");
mysql_query("set character_set_results    ='cp1251'");
mysql_query("set collation_connection    ='cp1251_general_ci'");



$sql = mysql_query("SELECT * FROM TABLES WHERE TABLE_SCHEMA='".DB_NAME."';",$link) or die(mysql_error());
while($tables = mysql_fetch_assoc($sql)){
    dump($tables);
    ?><table border="1">
       <tr>
          <th><?PHP echo $tables['TABLE_NAME'] ?></th>
          <td><?PHP echo "Записей:".$tables['TABLE_ROWS'] ?></td>
          <td><?PHP echo "След:".$tables['AUTO_INCREMENT'] ?></td>
      </tr>
        <tr><?PHP
        $sql2 = mysql_query("SHOW COLUMNS FROM ".$tables['TABLE_NAME'],$link2) or die(mysql_error());
        while($columns = mysql_fetch_assoc($sql2)){
            ?><th><?PHP echo $columns['Field'] ?></th><?PHP
        }
        ?></tr>
    </table><?PHP
}
mysql_close($link);
?>

PM   Вверх
krundetz
Дата 14.2.2012, 22:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вечный странник
***


Профиль
Группа: Завсегдатай
Сообщений: 1400
Регистрация: 14.6.2007
Где: НН(Сормово)

Репутация: 1
Всего: 69



Win MK 32, а ошибку какую выдает?

а вообще ты путаешь установление двух разных соединений под разными пользователями с сервером баз данных и работу с двумя разными базами данных.

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

Либо заменить localhost на 127.0.0.1, чтобы клиентская библиотека MySQL не пыталась соединиться с локальным сокетом, который по идеи один, для каждого пользователя. Но это уже полное ИМХО. Поищи подтверждение или опровержение моих догадок самостоятельно.


--------------------
!цензоры - Хранитель стратегической жидкости
Группа ТГВ
Группа Нижний Новгород
user posted image
PM MAIL   Вверх
MoLeX
Дата 16.2.2012, 19:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Местный пингвин
****


Профиль
Группа: Модератор
Сообщений: 4076
Регистрация: 17.5.2007

Репутация: 7
Всего: 140



а зачем это надо то? 
пользователю даешь права на необходимую БД и используешь префикс при работе
Код

SELECT * FROM `database_1`.`table` as `d1t`, `database_2`.`table` as `d2t`



--------------------
Amazing  smile 
PM MAIL WWW ICQ   Вверх
ksnk
Дата 16.2.2012, 19:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 14
Всего: 386



http://ru.php.net/manual/en/function.mysql-connect.php
параметр new_link
Цитата

new_link
Если второй вызов функции mysql_connect() произошёл с теми же аргументами, то новое соединение не будет установлено. Вместо этого функция вернёт ссылку на уже установленное соединение. Параметр new_link может заставить функцию mysql_connect() открыть ещё одно соединение, даже если соединение с аналогичными параметрами уже открыто. В SQL safe mode этот параметр игнорируется.



--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
krundetz
Дата 16.2.2012, 20:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вечный странник
***


Профиль
Группа: Завсегдатай
Сообщений: 1400
Регистрация: 14.6.2007
Где: НН(Сормово)

Репутация: 1
Всего: 69



Цитата(ksnk @  16.2.2012,  19:33 Найти цитируемый пост)
В SQL safe mode этот параметр игнорируется.

Вот это не понял. Кто может разяснить?


--------------------
!цензоры - Хранитель стратегической жидкости
Группа ТГВ
Группа Нижний Новгород
user posted image
PM MAIL   Вверх
ksnk
Дата 17.2.2012, 12:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 14
Всего: 386



Цитата(krundetz @  16.2.2012,  20:25 Найти цитируемый пост)
Вот это не понял. Кто может разяснить? 

SQL safe mode - специальный режим запуска Mysql сервера. идеологически - что-то вроде safe mode в php - куча странных, на первый взгляд, ограничений.
В частности, в этом режиме нельзя открыть второй линк к той-же базе с тем-же аккаунтом, даже если захочется.

Проверить режим своего сервера - команда `show variables`.



--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Базы Данных | Следующая тема »


 




[ Время генерации скрипта: 0.0536 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.