[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: PDO вызов объекта из другого класса
nike90
Здравствуйте! Подскажите пожалуйста как можно реализовать следующую ситуацию?
Есть два файла:
1)database.php - в нем подключение к базе данных через PDO
      
Class Database extends PDO {

function __construct() {
try {
$dbh = new PDO("mysql:host=".HOST.";dbname=".DBNAME."", USER, PASS, array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"));
} catch(PDOException $e) {
echo $e->getMessages();
}
}
}


2)model.php - в нем выборка "категорий" через PDO

Class Model extends PDO {
function getCat () {
/** Этот код не правильный я просто написал для примера, что проще было понимать ситуаци */
//$sql('SELECT * FROM categories');
//$res = $dbh->query($sql)->fetchAll(PDO::FETCH_ASSOC);

print_r($res);
}
}



Мне нужно сделать выборку во втором файле model.php в функции getCat - но как я не пробовал все бесполезно ... Я не могу достучатся до Объекта $dbh - из первого файла database.php, <- если выборку делаю в этом файле то все работаю, а когда пытаюсь сделать выборку в другом файле и как то вызвать объект подкл. БД то оно не работает. Библиотека PDO раскомментирована в php.ini и присутствует файл php_pdo.ll ..



Спустя 12 минут, 37 секунд (28.06.2012 - 15:24) Arh написал(а):
Хз, в ООП не шарю пока что и может быть я дурак, но так работать должно =)

1) в датабазе.пхп

$db = new PDO("mysql:host=".HOST.";dbname=".DBNAME."", USER, PASS, array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"));
function db() {return $GLOBALS['db'];}


2) модель.пхп

Class Model extends PDO {
function getCat () {
/** Этот код не правильный я просто написал для примера, что проще было понимать ситуаци */
//$sql('SELECT * FROM categories');
//$res = db()->query($sql)->fetchAll(PDO::FETCH_ASSOC);

print_r($res);
}
}

Спустя 4 минуты, 54 секунды (28.06.2012 - 15:29) Arh написал(а):
А это нормально что пароль и логин к базе константой?)
в любом участке код сделать echo PASS; и приехали)

Спустя 4 минуты, 38 секунд (28.06.2012 - 15:34) Zzepish написал(а):
Вопрос на засыпку- накуя подключать базу через классы О_О

Спустя 3 минуты, 41 секунда (28.06.2012 - 15:37) Arh написал(а):
Цитата (Zzepish @ 28.06.2012 - 12:34)
Вопрос на засыпку- накуя подключать базу через классы О_О

PDO
В случае с PDO, что бы была поддержка нескольких баз.

Спустя 2 минуты, 50 секунд (28.06.2012 - 15:40) nike90 написал(а):
я так понял мне тут не чем не помогут... Zzepish - если интересно тебе "накуя подключать базу через классы" - спроси гугл ...

Спустя 5 минут, 25 секунд (28.06.2012 - 15:45) nike90 написал(а):
ссылка на PDO на Вики была к месту ... пускай человек узнает, что есть такая волшебная штука как PDO...))

Спустя 3 минуты, 49 секунд (28.06.2012 - 15:49) sergeiss написал(а):
Бан на сутки за кросспостинг. Такая же тема тут: http://phpforum.ru/index.php?showtopic=62952&hl=

Спустя 8 минут, 9 секунд (28.06.2012 - 15:57) sergeiss написал(а):
Цитата (Zzepish @ 28.06.2012 - 16:34)
Вопрос на засыпку- на...я

Предупреждение первое, оно же последнее. В следующий раз будет бан.

Пункт 2.4.а Правил форума: Основным языком форума является русский язык.

Спустя 2 минуты, 43 секунды (28.06.2012 - 16:00) Zzepish написал(а):
sergeiss
это и есть русский

Спустя 39 минут, 13 секунд (28.06.2012 - 16:39) twin написал(а):
Zzepish
Маскировать маты звездочками и другими буквами, это тоже самое, что делать миньет на площади и прикрываться ладошкой.

Спустя 2 минуты, 12 секунд (28.06.2012 - 16:42) Zzepish написал(а):
twin
но тем не менее- эти слова присутствуют в русской речи. Не так ли?

Спустя 46 секунд (28.06.2012 - 16:42) twin написал(а):
nike90
Попробуй волшебное слово $this->

Спустя 1 минута, 2 секунды (28.06.2012 - 16:43) twin написал(а):
Цитата (Zzepish @ 28.06.2012 - 13:42)
twin
но тем не менее- эти слова присутствуют в русской речи. Не так ли?

Не спорю. Оральный секс тоже из жизни не вычеркнуть. Однако не приходит же в голову делать это на площади...

Спустя 3 минуты, 5 секунд (28.06.2012 - 16:46) Zzepish написал(а):
twin
Это просто вопрос иллюзорной морали, которое навязало себе человечество. Не более

Спустя 3 часа, 45 минут, 7 секунд (28.06.2012 - 20:32) sergeiss написал(а):
Zzepish - с учетом того, что ты на форуме недавно, то ограничусь также устным предупреждением. Но это точно последнее устное. Причина - ты нарушил п.4.6 Правил Форума "Запрещены обсуждения действий модераторов и администраторов в общих разделах, пишите в ПМ.". Я озвучил предупреждение тебе, ты начал обсуждать. Всё. Точка. В другой раз будет бан.

"На том стояла и стоять будет Земля Русская" wink.gif Ну, то есть, форум.

Спустя 13 минут, 59 секунд (28.06.2012 - 20:46) Zzepish написал(а):
sergeiss
ок) laugh.gif
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.