Помогите с подключением к БД
Страницы: 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)
Новые темыОбъявленияСвободное общение
06:32 01.02. Апдейт 31.01 // Chrome готовит "чёрную метку" для ИИ? 
06:28 РСЯ и тормоза сайта: Яндекс начал штрафовать за плохой PageSpeed? 
23:09 Как безопасно купить Гугл почту? 
13:45 Какой движок выбрать для форума? 
13:43 Нашел скрины выплат с Сапы за 2010 год. Пошел плакать 
09:26 Трафик пробил дно? Худший январь за 10 лет и внезапный рост продаж с Bing 
19:27 Плагин ответа 
23:25 SOCKS5 приватные прокси на 30 дней для PayPal 
23:24 Google Voice аккаунты для бесплатных SMS и звонков 
23:23 PayPal аккаунты для любых целей 
23:02 BestX24 - быстрый и безопасный обменник криптовалют и электронных денежных средств 
20:21 CryptoGraph — Анонимный обмен криптовалют без KYC и AML 
12:09 Trustpilot Reviews | Подниму рейтинг вашей компании 
12:07 Купить отзывы на Яндекс и Гугл картах, на Авито, на Отзовике и IRecommend 
07:46 Moltbook: Соцсеть для ботов, где людям закрыли рот. Началось? 
06:26 Ставки на супер тренды в спорте 
22:31 [AI] Бот за $600к советовал есть сыр с крысами. Нью-Йорк его (наконец-то) снес 
22:30 Точные прогнозы на футбол 
13:38 Осталось 3-5 месяцев до блокировки YouTube в России, — заявил Клименко 
07:11 Список обновленных тем пуст... 
17:02 Gartner обещал смерть SEO к 2026 году. Открываем метрику и проверяем