Имеется файл config.php в нем содержаться параметры для соеденения с БД PHP: <?php //указываем параметры для подключения к БД $host = "localhost"; $login = "root"; $password = ""; $db_name = "cms"; ?> также есть файл get_information.php. PHP: require("config.php"); function get_menu() { $dbcon = mysql_connect($host, $login, $password) or die('База данных не доступна'); mysql_select_db($db_name); $qGetMenu = 'select * from menu'; $rGetMenu = mysql_query($qGetMenu) or die('Таблица не доступна'); if (mysql_num_rows($rGetMenu) != 0) { return $rGetMenu; } else { return false; } } В index.php есть момент когда функция get_menu() используется. В принципе как видно из примера все должно работать, а именно конект с базой. Но появляется следующая ошибка: PHP: Warning: mysql_connect() [function.mysql-connect]: Access denied for user 'ODBC'@'localhost' (using password: NO) in Z:\home\cms.ru\www\get_information.php on line 6 В строке 6 содержитсяфункция конекта с БД. Нет доступа, но с какой стати? Почему у меня появляется эта ошибка? Заранее всем благодарен.
а ты попробуй PHP: $dbcon = mysql_connect($host, $login, $password) or die('База данных не доступна'); mysql_select_db($db_name); записать в файл config.php
А ты не хочешь global добавить в ф-цию? Иначе он просто их не видит PHP: function get_menu() { global $host, $login, $password, $db_name; $dbcon = mysql_connect($host, $login, $password) or die('База данных не доступна'); mysql_select_db($db_name); $qGetMenu = 'select * from menu'; $rGetMenu = mysql_query($qGetMenu) or die('Таблица не доступна'); if (mysql_num_rows($rGetMenu) != 0) { return $rGetMenu; } else { return false; } } Писать в конфиг конект к БД - ацко ппц.
to FraiDex Хех, а так работает. Спс. Че то совсем мозги на бикрень, думаю больше об алгоритмической части. Но мне всеравно интересно почему не работало иначе. Так как значения переменных рекварились. Ну вот с etc фактически одновременно отпостили.. Ок, понял спс.
потому, что функция не видет переменные $host, $login, $password, $db_name, так как они не глобальные. как сделать их глобальными те etc написал немного выше. но лучше всего коннект прописывать в конфиге.
Я зделал немного по другому.. config.php переименовал в db_fns.php и там внес некоторые изменения. db_fns.php PHP: <?php function db_connect() { $host = "localhost"; $login = "root"; $password = ""; $db_name = "cms"; $dbcon = mysql_pconnect($host, $login, $password) or die('База данных не доступна'); mysql_select_db($db_name); } ?> Думаю так будт лучше и удобнее. Всем огромное спасибо!
mysql_pconnect() - откроет постоянный конект к БД, функцию db_connect вызываю всего один раз в get_menu(), а в остальных случая работаю с готовым соеденением.