Спустя 6 минут, 54 секунды (24.02.2012 - 00:22) killer8080 написал(а):
Цитата (hamado @ 23.02.2012 - 23:16) |
в чём проблема? |
в области видимости, объяви её глобальной в функции
function connect(){
global $db_host
...
Спустя 8 минут, 19 секунд (24.02.2012 - 00:31) veolancer написал(а):
А если я заместо переменных константы объявлю в самой функции sql, они кстати тоже выдают ошибку, почему? php Говор что они обьявлены
Спустя 1 минута, 39 секунд (24.02.2012 - 00:32) veolancer написал(а):
Цитата (hamado @ 23.02.2012 - 21:16) |
в области видимости |
Точно ж, там глобальная и локальная зона видимости, чёт я позабыл
Спустя 8 минут, 4 секунды (24.02.2012 - 00:40) m4a1fox написал(а):
Глобальные переменные зло
Спустя 10 часов, 7 минут, 26 секунд (24.02.2012 - 10:48) veolancer написал(а):
Мне надо данные переенных из вне вставить (из config.php в файл db.php). В конфиге у еня переменные созданы , а в db у меня функция sql, и как быть, как мне дынные то всё таки втавить в функцию?
Спустя 21 минута, 8 секунд (24.02.2012 - 11:09) sergeiss написал(а):
Цитата (hamado @ 24.02.2012 - 11:48) |
В конфиге у меня переменные созданы , а в db у меня функция sql, и как быть, как мне да |
Так передавай как параметры. И возвращай либо по ссылке, либо как обычная функция возвращает. Либо вообще сделай класс, который будет внутри себя "знать" про все эти подключения, и пусть твоя функция будет частью этого класса.
А вообще - код "не повредит" показать. Потому что иначе можно только гадать на кофейной гуще.
Спустя 15 минут, 23 секунды (24.02.2012 - 11:24) veolancer написал(а):
Свернутый текст
Да у тебя не голова, а дом советов :D
Свернутый текст
Извиняюсь за орфографию, буква 'М' не прописывается и ещё пара клавишь, приходится сильнее жаМкать.
Файл config.php
<?php
#ИМЯ
$db_name = 'baza';
#ХОСТ
$db_host = 'localhost';
#ЛОГИН
$db_login = 'admin';
#ПАРОЛЬ
$db_password = '12345';
Файл db.php
<?php
#ФУНКЦИЯ СОЕДИНЕНИЯ С БАЗОЙ ДАННЫХ
function sql(){
mysql_connect($db_host,$db_login,$db_password) or die("Ошибка соединения с базой данных.");
mysql_select_db($db_name) or die(mysql_error());
mysql_query('SET NAMES utf8');
mysql_query('SET CHARACTER SET utf8');
mysql_query('SET COLLATION_CONNECTION="utf8_general_ci"');
}
Стоит на данный момент так(Не работает). Прописываю напрямую, всё ништяк, вношу переменные в самой функции, тоже работает, но мне надо из вне..
Спустя 1 час, 11 минут, 8 секунд (24.02.2012 - 12:36) sergeiss написал(а):
Ну так и в чем проблемы? Только надо еще вернуть состояние, если были ошибки. Выходить из скрипта в такой ситуации я лично считаю "дурным тоном" :)
Оставь config.php как есть, а другой файл переделай
И уже после выхода из функции проверь, что она вернула (тип данных). Если символьная строка - то это текст ошибки. Иначе - подключение было успешным и с ним можно работать, а полученная величина - это идентификатор подключения, который можно (хотя и не обязательно) использовать в функции mysql_query() в качестве второго параметра.
Оставь config.php как есть, а другой файл переделай
#ФУНКЦИЯ СОЕДИНЕНИЯ С БАЗОЙ ДАННЫХ
function sql(){ $db_host,$db_login,$db_password )
$connect=mysql_connect($db_host,$db_login,$db_password) or return "Ошибка соединения с базой данных.";
mysql_select_db($db_name) or return mysql_error();
mysql_query('SET NAMES utf8');
mysql_query('SET CHARACTER SET utf8');
mysql_query('SET COLLATION_CONNECTION="utf8_general_ci"');
return $connect;
}
И уже после выхода из функции проверь, что она вернула (тип данных). Если символьная строка - то это текст ошибки. Иначе - подключение было успешным и с ним можно работать, а полученная величина - это идентификатор подключения, который можно (хотя и не обязательно) использовать в функции mysql_query() в качестве второго параметра.
Спустя 1 час, 53 минуты, 27 секунд (24.02.2012 - 14:29) veolancer написал(а):
Там ошибка в примере твоём, ну да ладно, суть понял, но всё ровно ошибку выдаёт Missing argument
Спустя 12 минут, 37 секунд (24.02.2012 - 14:42) sergeiss написал(а):
Ну да. Там надо еще передать $db_name. Но если действительно понял суть, то и сам это всё сделаешь, я думаю
И где выдает ошибку про потерянный аргумент? Скорее всего как раз в mysql_select_db()?
И где выдает ошибку про потерянный аргумент? Скорее всего как раз в mysql_select_db()?
Спустя 3 минуты, 47 секунд (24.02.2012 - 14:45) killer8080 написал(а):
sergeiss
Цитата (sergeiss @ 24.02.2012 - 11:36) |
function sql(){ $db_host,$db_login,$db_password ) |
очепятка
Спустя 45 минут, 50 секунд (24.02.2012 - 15:31) veolancer написал(а):
Цитата (hamado @ 24.02.2012 - 11:29) |
Скорее всего как раз в mysql_select_db() |
Да именно там
Спустя 1 минута, 14 секунд (24.02.2012 - 15:32) veolancer написал(а):
<?php
#ФУНКЦИЯ СОЕДИНЕНИЯ С БАЗОЙ ДАННЫХ
function sql($db_host,$db_login,$db_password,$db_name){
mysql_connect($db_host,$db_login,$db_password) or die("Ошибка соединения с базой данных.");
mysql_select_db($db_name) or die(mysql_error());
mysql_query('SET NAMES utf8');
mysql_query('SET CHARACTER SET utf8');
mysql_query('SET COLLATION_CONNECTION="utf8_general_ci"');
}
Спустя 1 день, 3 часа, 54 минуты, 34 секунды (25.02.2012 - 19:27) veolancer написал(а):
оп, я забыл всего лишь на всего указать эти параметры при выборе функции таким же образом
sql($db_host,$db_login,$db_password,$db_name);