Помогите с подключением к БД
Страницы: 1
Помогите с подключением к БД
Для работы с БД используется рекурсия. Сама функция выглядит так

Код
{
   include('/config.php');
$db = mysql_connect("$parametr[host]","$config[user]","$config[pass]");
mysql_select_db("$config[db_name]",$db);
mysql_query("SET NAMES utf8");

$resultat = mysql_query("SELECT * FROM name WHERE url='$id'",$db);
$array = mysql_fetch_array($resultat);
$cat = $array['id'];
return ($cat);
}
 
В этом случае все работает, но из-за конструкции


Код
 include('/config.php');
Код
$db = mysql_connect("$parametr[host]","$config[user]","$config[pass]");
mysql_select_db("$config[db_name]",$db);
mysql_query("SET NAMES utf8");

получается, что подключение осуществляется при каждом вызове функции, те создается много лишних подключений
Можно ли как нибудь 1 раз подключиться к БД до вызова самой функции?
Цитата
Андрей Зиманов пишет:
include('/config.php');
include_once вам наверное нужен?
Цитата
Frank Sinatra пишет: 
Андрей Зиманов пишет: 
include('/config.php');
Цитата

include_once вам наверное нужен?

Думаю, что не в этом дело. В /config.php хранятся просто параметры подключения к БД (имя сервера, имя БД, имя пользователя БД, пароль) 
Я думаю, что нужно сделать как-то так



Код
include('/config.php'); 
$db = mysql_connect("$parametr[host]","$config[user]","$config[pass]"; 
mysql_select_db("$config[db_name]",$db); 


mysql_query("SET NAMES utf8"; 

function primer ($id) 
{ 
$resultat = mysql_query("SELECT * FROM name WHERE url='$id'",$db); 
$array = mysql_fetch_array($resultat); 
$cat = $array['id']; 
return ($cat); 
}



Но, не очень понимаю, как передать значение переменной $db в функцию. 
Объявление ее глобальной  



Код
global $db; //не помогает 




Пока, есть предположение сделать ее вторым аргументом 




Код
function primer ($id, $db)


Есть ли еще какие-то варианты?
Цитата
Андрей Зиманов пишет:
Есть ли еще какие-то варианты?
1.подключение осуществляется при каждом вызове функции
2. значение переменной $db занести в сессию. Сессия должна объявляться везде, где будет использоваться переменная.

Имхо.
Coder, спасибо за варианты
Цитата
Coder пишет:
1.подключение осуществляется при каждом вызове функции
На данный момент так и есть, но это создает лишние запросы к БД.
Цитата
Coder пишет:
2. значение переменной $db занести в сессию. Сессия должна объявляться везде, где будет использоваться переменная.
Попробую осуществить.
Те получается, что способа присвоить значение переменной в начале, чтобы ее можно было использовать во всех функциях в php нет? Что-то типа global, только наоборот для передачи переменных из программы в функцию?

Код
какое-то действие $db=1; 
function a () 
{ 
echo $db; //получается, что вывести тут 1 никак нельзя?
} 
Передайте нужное значение в функцию:
Код
function a($s) {
echo $s."Проба";
}
$db = 7;
$db = a($db);
http://hashcode.ru/questions/103212/%D0%BC%D0%BE%D0%B6%D0%BD%D0%BE-%D0%BB%D0%B8-%D1%81%D0%BE%D0%B7%D0%B4%D0%B0%D1%82%D1%8C-%D1%81%D1%83%D0%BF%D0%B5%D1%80%D0%B3%D0%BB%D0%BE%D0%B1%D0%B0%D0%BB%D1%8C%D0%BD%D1%83%D1%8E-%D0%BF%D0%B5%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%BD%D1%83%D1%8E-%D0%B2-php
Предлагаю Услуги по веб-разработке/программированию
HTML(HTML5), CSS(CSS3), JavaScript(jQuery, AJAX), PHP, MySQL
========================================
http://www.cy-pr.com/forum/f58/t37537/
http://www.cy-pr.com/forum/f50/t35619/
Зачем использовать рекурсию для запросов к базе данных?
Я думаю, что нужно пересмотреть сам запрос к базе или архитектуру скрипта/базы данных, а не использовать рекурсию.
Изменено: Aleksandr Botnikov - 14 Ноября 2013 18:49
Страницы: 1
Похожие темы:
Читают тему (гостей: 1, пользователей: 0, из них скрытых: 0)
Новые темыОбъявленияСвободное общение
03:12 Сайты-копипасты 
01:18 Найти элемент в коде 
21:47 Webvork - международная товарная СРА сеть с сертифицированными офферами на Европу. 
09:59 Ошибка после размещения кода HTML! 
15:34 Adtrafico - Правильная партнёрская сеть под бурж трафик 
14:43 Партнерская программа OWNR WALLET 
13:47 DreamCash.tl - заработок на онлайн-видео. До 95% отчислений, отличный конверт! 
16:38 Belurk — высокоскоростные анонимные прокси от 0,24 рублей 
15:28 Ural-obmen.ru — выгодный сервис обмена 
15:09 Obama.ru - безопасный обмен криптовалют и электронных денежных средств 
13:14 A-Parser 1.1 - продвинутый парсер поисковых систем, Suggest, PR, DMOZ, Whois, etc 
11:51 Европейский эквайринг 
11:19 BestChange – обменивать электронную валюту можно быстро и выгодно 
06:19 Просто $0.04/IP 9PROXY.COM Резидентные прокси Неограниченная пропускная способность Уникальная политика замены Без чёрного списка 
01:05 Точные прогнозы на футбол 
14:41 Бесплатный мини-аудит юзабилити и конверсии + технический SEO-аудит в подарок 
11:15 Каспкрски ОС 
15:24 Добро пожаловать в цифровой мир... 
22:58 У меня дикая просадка по РСЯ за последние 3 суток 
21:51 Linux - это максимальная свобода 
21:33 Ням-ням! - 8 деликатесов, которые когда-то ели только бедные люди