Доброго всем вечера! Уже второй день бьюсь над проблемой. Переносил сайт с хостинга на локальный сервер. На сайте подключение к базе шло через php функцию: PHP: function connectDB ($aw_mysql_db) { include ( $aw_mysql_db ); $db = mysql_connect($host_db, $user_db , $pass_db); mysql_select_db($base_db, $db); mysql_query("SET NAMES utf8"); return $db; } Вызываю функцию так: PHP: $connectDB = connectDB ( 'путь к php-файлу с данными для доступа' ); Долго понять не мог почему не коннектится база... Как только я подключился к базе напрямую: PHP: include ( 'путь к php-файлу с данными для доступа' ); $db = mysql_connect($host_db, $user_db , $pass_db); mysql_select_db($base_db, $db); mysql_query("SET NAMES utf8"); Таким образом подключение к базе работает правильно... Пробовал в функции переменные объявлять как глобальные - не помогает. Почему такое происходит? Почему коннект к базе через php-функцию не работает? Спасибо!
мы не знаем как устроен файл "путь к php-файлу с данными для доступа" и по какому пути подключается. И заменить нужно include на require без скобок
PHP: <? $host_db="localhost"; $user_db="root"; $pass_db=""; $base_db="databasename"; ?> Это файл с данными для доступа к базе...
config.php PHP: <?php $host_db="localhost"; $user_db="root"; $pass_db=""; $base_db="databasename"; --- Добавлено --- для более быстрого решения , можно скинуть проект в лс
Решение найдено: PHP: // Подключаем данные для доступа к базе данных require_once 'genm к файлу с данными для доступа к базе'; // Подключаемся к MYSQL $connectDB = connectDB (); Сама функция: PHP: function connectDB () { global $aw_mysql_db, $host_db, $user_db, $pass_db, $base_db; mysql_connect($host_db, $user_db, $pass_db) or die(mysql_error()); mysql_select_db($base_db); mysql_query("SET NAMES utf8"); }
Я бы Вам посоветовал вместо Denwera использовать Open Server (на ОС Windows), а вместо MySQL - MySQLi. Denwer и Mysql устарели.
Я не понял, нафига нужно было выносить эти переменные в глобальную область видимости. От параметра ф-ции при этом действительно лучше избавиться или, чтобы не страдала универсальность, сделать его присутствие вариативным.