Вернуться   Дизайнерский форум » ВЕБ-ПРОГРАММИРОВАНИЕ » ASP, Perl, PHP и MySQL

mySQL

Обсуждение темы mySQL в разделе ASP, Perl, PHP и MySQL, часть категории ВЕБ-ПРОГРАММИРОВАНИЕ; Так, я немного пенек в php - забыл все, сейчас вспоминаю. В общем - PHP код: require_once( 'func/const.php' ); function  db_connect () {      ...


Закрытая тема
 
Опции темы
Старый 11.01.2011, 20:56   #1
Так, я немного пенек в php - забыл все, сейчас вспоминаю.
В общем -
PHP код:
require_once('func/const.php');
function 
db_connect() {
    
mysql_connect("a37586.mysql.mchost.ru"
        
$db['login'],$db['pass']); 
    
mysql_select_db($db['database']); 
}

db_connect();

function 
get_cont($table,$state)
{
    
$query "SELECT * FROM $table WHERE id = $state";
    
$result mysql_query($query
        or die(
mysql_error()); 
    
$i mysql_fetch_row($result); 
    return 
$i[2];

вот это ноет на: Access denied for user 'apache'@'localhost' (using password: NO)

Хотя данные ведены вроде правильно. Кто поможет?
 
Старый 11.01.2011, 20:56
Ссылки
Старый 11.01.2011, 21:17   #2
Цитата:
Сообщение от iDeViL Посмотреть сообщение
mysql_connect("a37586.mysql.mchost.ru",*
это точно правельно?
Цитата:
$db['login'],$db['pass'])
на свои не забыли изменить? из-за этого возможно, хз.

Последний раз редактировалось 74ivan74; 11.01.2011 в 21:22..
 
Старый 11.01.2011, 21:42   #3
я вроде нашел проблему. Почему то $db['login'] не подгружался из require_once(...)

Добавлено через 10 минут

вот теперь не пойму - почему это он вдруг передумал работать

Добавлено через 5 минут

смотрю как баран на новые ворота:


require_once('func/const.php');
function db_connect() {
mysql_connect("a37586.mysql.mchost.ru",
$db['login'],$db['pass']) or die(mysql_error());
mysql_select_db($db['database']) or die(mysql_error());
}
оно не видит это (хотя сам файл находит, если неправильно написать - вообще не грузится)
$db['database'] = 'xxx';
$db['login'] = 'xxx';
$db['pass'] = 'xxx'; (все введено верно, но я же не покажу свои пароли))

Последний раз редактировалось iDeViL; 11.01.2011 в 21:42.. Причина: Добавлено сообщение
 
Старый 11.01.2011, 21:55   #4
Цитата:
Сообщение от iDeViL Посмотреть сообщение
$db['database'] = 'xxx';
$db['login'] = 'xxx';
$db['pass'] = 'xxx';
Я с таким не сталкивался (
может еще и хост добавить надо $db['host']
 
Старый 11.01.2011, 22:00   #5
нее, это все работает. Если это подставить в самой функции коннекта к сайту, то работает. А вот именно если это загружать через include - хрен там. Причем самое забавное, что если написать вместо
mysql_connect("a37586.mysql.mchost.ru",
$db['login'],$db['pass']) or die(mysql_error());

это:
echo $db['pass'];
то все прекрасно выводится. Что за нафиг?
Вру, не выводит. Значит, сама функция не видит это.

Последний раз редактировалось iDeViL; 11.01.2011 в 22:03..
 
Старый 11.01.2011, 22:09   #6
Мудистика какая-то, хз.
Дело как всегда наверное в пару строках.
Здесь php-mysql гуру нужен.
 
Старый 11.01.2011, 22:17   #7
что за?!
пишу:
PHP код:
function db_connect() {
    echo 
$db['login'];
    echo 
'sdsss';
/*
    mysql_connect("a37586.mysql.mchost.ru", 
        $db['login'],$db['pass']) or die(mysql_error()); 
    mysql_select_db($db['database']) or die(mysql_error());  */
}
echo 
$db['login'];
db_connect(); 
a35786_1sdssss
выводит только тот echo, который перед db_connect(); Они же на одном уровне лежат!

В общем - решение нашел - передавать массив $db в функцию. Но блин, это тупо - он же глобальный

Последний раз редактировалось iDeViL; 11.01.2011 в 22:21..
 
Старый 21.01.2011, 10:37   #8
Для того чтобы массив $db был доступен в функции db_connect, нужно прописать так function db_connect() { global $db; ... }, тогда будет выводиться как надо.
 
Старый 31.01.2011, 21:30   #9
Глобальные переменные не определены в функциях. Ваш массив будет глобальным в данном скрипте и в подключаемых файлах, но не будет определен в функциях, где создается локальная область видимости. Это сделано разработчиками языка для того, чтобы программисты случайно не переопределили глобальные переменные в функциях и не допустили ошибку.

Так что выходов действительно 2: либо передавать массив как параметр в функцию, либо определять этот массив вначале функции как глобальный.
 
Старый 31.01.2011, 21:30
Закрытая тема




Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
MySQL 74ivan74 Кальянная 0 16.10.2010 14:33
PHP + MySQL бан ip Tigran ASP, Perl, PHP и MySQL 2 11.06.2010 17:23
MySQL Razrushitel ASP, Perl, PHP и MySQL 3 18.09.2005 16:18
Mysql под win Lex ASP, Perl, PHP и MySQL 2 03.12.2004 17:27
PHP и Mysql vision HTML, CSS, JavaScript 0 18.07.2003 08:59


Текущее время: 01:25. Часовой пояс GMT +4.

Реклама на форуме Условия размещения рекламы
Биржа ссылок Заработай на сайте!
Дизайнерский форум