Задавайте вопросы, мы ответим
Вы не зашли.
Возникла ситуация подключить к сайту еще одну БД.
это допустим основная
$db = mysql_connect ("localhost","root","");
mysql_select_db ("baze1",$db);
это дополнительная
$db = mysql_connect ("localhost","root","");
mysql_select_db ("baze2",$db);
Подскажите как правильно написать код для подключения еще одной базы? И как дать понять запросам с какой базой нужно работать, ведь на одной странице их может быть несколько?
Неактивен
Неактивен
почему то не работет( оставляю одно подключение к $db_1, все работает, когда добавляю второе подключение $db_2, перестает работать!?
Я проверил на ошибки показало
пoдключение к серверу mysql прошло успешно, идентификатор соединения - Resource id #3
Notice: Undefined variable: myrow in Z:\home\vdonbasse\www\block\online.php on line 13
[Денвер: показать возможную причину ошибки]
Notice: Constant _JEXEC already defined in Z:\home\vdonbasse\www\block\online.php on line 18
Notice: Constant _JEXEC already defined in Z:\home\vdonbasse\www\index.php on line 97
Notice: Constant _JEXEC already defined in Z:\home\vdonbasse\www\index.php on line 99
на строках 97,99... такой код <?php define( '_JEXEC', 1 ); $n=1; include ("block/main_menu.php"); ?> я связываю это define( '_JEXEC', 1 );
а в main_menu
<?php defined('_JEXEC') or die("<html><head>
<meta http-equiv='Refresh' content='0; URL=../index.php'>
</head></html>");?>
только не могу понять что на что влияет ???
Неактивен
Создайте простенький тестовый пример, в котором Вы подключаетесь к двум базам, из каждой выбираете немножко данных и выводите всё это на экран. Приложите сюда код примера и код вывода (с максимальной диагностикой, конечно).
И еще - при вызове функции mysql_query - Вы в нужный вызов нужный идентификатор передаёте?
Неактивен
$db = mysql_connect ("localhost","root","");
mysql_select_db ("soft-mai_vdonb10",$db);
mysql_query("SET NAMES 'cp1251'");
$db2 = mysql_connect ("localhost","root","");
mysql_select_db ("soft-mai_parab73",$db2);
mysql_query("SET NAMES 'cp1251'");
$result = mysql_query("SELECT * FROM users WHERE id='307'",$db);
$myrow = mysql_fetch_array($result);
echo $myrow["nik"]
$result2 = mysql_query("SELECT * FROM users WHERE id='307'",$db2);
$myrow2 = mysql_fetch_array($result2);
echo $myrow2["nik"]
по отдельности подключение и выборка №1 и №2 работают. всесте нет
Неактивен
кстати, при выыоде двух подключений и двух запросов - ошибка
Parse error: syntax error, unexpected T_VARIABLE, expecting ',' or ';' in Z:\home\vdonbasse\www\index.php on line 28
Неактивен
Как я понял, Вы подключаетесь к одному серверу. Тогда лучше просто вот так делать:
$result_1 = mysql_query("SELECT * FROM soft-mai_vdonb10.users WHERE id='307'",$db);
$result_2 = mysql_query("SELECT * FROM soft-mai_parab73.users WHERE id='307'",$db);
Неактивен
serj011 написал:
кстати, при выводе двух подключений и двух запросов - ошибка
Parse error: syntax error, unexpected T_VARIABLE, expecting ',' or ';' in Z:\home\vdonbasse\www\index.php on line 28
И что же там расположено на строке 28?
Неактивен
deadka написал:
Как я понял, Вы подключаетесь к одному серверу.
В данном случае да, я тестирую на локальном. А вообще сервера будут разные!
Но это тоже не работает, даже в таком виде!
Отредактированно serj011 (26.12.2012 20:53:58)
Неактивен
deadka написал:
И что же там расположено на строке 28?
$result2 = mysql_query("SELECT * FROM users WHERE id='308'",$db2);
Отредактированно serj011 (26.12.2012 20:56:35)
Неактивен
В этой строке синтаксически всё выглядит корректно (я правда не понял, зачем Вы оборачиваете целое число 308 в одинарные кавычки), значит ошибка в соседних.
Неактивен
serj011 написал:
deadka написал:
Как я понял, Вы подключаетесь к одному серверу.
В данном случае да, я тестирую на локальном. А вообще сервера будут разные!
Но это тоже не работает, даже в таком виде!
????????????
У Вас там явно какая-то синтаксическая трабла. Возьмите за основу мой рабочий скрипт, только что создал и проверил, работает исправно, и его доращивайте (faun и f - две разные базы с одинаковыми по структуре таблицами).
Неактивен
deadka написал:
я правда не понял, зачем Вы оборачиваете целое число 308 в одинарные кавычки), значит ошибка в соседних.
может и не нужно оборачивать..., но суть то не в кавычках) а в том что не получается подключить две базы.
а вы пробовали таким путем подключать? глупый вопрос, наверное пробовали)) я понимаю что я могу ошибиться и в двух строчках)), но в этом случае врятли. вот почему не работает, понять не могу!?
А может не пробовали? )))))
Неактивен
Вы как-то пропустили мой предыдущий пост №12, в нём приведен рабочий пример подключения к двум базам. Что касается двух строчек, в которых Вы могли и ошибиться - чем троллить, Вы бы лучше их привели , глядишь и нашлась бы ошибка. Ну или правда что воспользуйтесь пока тем, что я привёл чуть выше.
Неактивен
я не пропустил, а писал видимо свой пост одновременно с вашим)))
я доработал
Неактивен
Теперь работает) Но проблемма не решена. У меня сервера баз данных будут разные, поэтому это решение мне не подходит
vasya, может вы подскажете. Почему не работает код, который изначально предлагал использовать deadka?
$db = mysql_connect ("localhost","root","");
mysql_select_db ("soft-mai_vdonb10",$db);
mysql_query("SET NAMES 'cp1251'");
$db2 = mysql_connect ("localhost","root","");
mysql_select_db ("soft-mai_parab73",$db2);
mysql_query("SET NAMES 'cp1251'");
$result = mysql_query("SELECT * FROM users WHERE id='307'",$db);
$myrow = mysql_fetch_array($result);
echo $myrow["nik"]
$result2 = mysql_query("SELECT * FROM users WHERE id='307'",$db2);
$myrow2 = mysql_fetch_array($result2);
echo $myrow2["nik"]
В чем может быть ошибка?
Неактивен
Я немного разобрался)))
у меня к сайту подключена одна база
$db = mysql_connect ("localhost","root","");
mysql_select_db ("soft-mai_vdonb10",$db);
mysql_query("SET NAMES 'cp1251'");
если я подключаю другую
$db2 = mysql_connect ("localhost","root","");
mysql_select_db ("soft-mai_parab73",$db2);
mysql_query("SET NAMES 'cp1251'");
...то все пропало))) запросы перестают работать
если изменить старые запросы, и добавить к таблице базу (`soft-mai_vdonb10`.`users`), о ЧУДО запрос работает.
Вопрос в следующем, мне теперь нужно по всему сайту переделывать все запросы? Их больше 100.
Или я не до конца разобрался?
Неактивен
Прочитал тредик. Меня реально очень сильно смущает отсутствие точек с запятыми
после echo во всех приведенных примерах. В остальном должно работать, кажется.
Также интересен таки вывод mysql_error в местах, где происходит ошибка.
Неактивен