Форум программистов, компьютерный форум, киберфорум
PHP: ООП
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.92/13: Рейтинг темы: голосов - 13, средняя оценка - 4.92
 Аватар для stupidstudent
18 / 15 / 0
Регистрация: 25.10.2011
Сообщений: 241

pdo, конструктор

15.11.2012, 02:38. Показов 2711. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
В конструкторе идет подключение к бд, через pdo.
Объект класса PDO лежит в $this->db
Создал новый метод, делаю там запрос, но объекта в $this->db нету..., следовательно и данных из бд нету.

Что я упустил?

пример
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
class Foo
{
  private $db;
 
  public function __construct($_driver='mysql',$_host='localhost' ...)
  {
     $this->db = new PDO($connect_str, $log, $pass);
     var_dump($this->db); // PDOObject ...
     ...
   }
   public function bar()
   {
       var_dump($this->db); // NULL почему?
   }
 
}
Добавлено через 5 минут
*с соединением и с самой pdo проблем нет., тока это не пойму...
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
15.11.2012, 02:38
Ответы с готовыми решениями:

Запустить приватный конструктор signleton PDO
И снова singleton , не пойму как запустить приватный конструктор , мне нужно получить от него экземпляр соединения. А ООп у меня на...

Скорость PDO ?
Вопрос к специалистам ... Много слышал про PDO и его скорости, решил попробовать в своём фреймворке. Резултат не удовлетворяет потому что...

ООП и PDO
Привет, мир! Пытаюсь делать так: abstract class Gauga { protected $_db; public function __construct() { //...

13
 Аватар для Sanu0074
59 / 59 / 16
Регистрация: 14.06.2010
Сообщений: 1,190
Записей в блоге: 5
15.11.2012, 11:01
Цитата Сообщение от stupidstudent Посмотреть сообщение
В конструкторе идет подключение к бд, через pdo.
Объект класса PDO лежит в $this->db
Создал новый метод, делаю там запрос, но объекта в $this->db нету..., следовательно и данных из бд нету.
Что я упустил?
Добавлено через 5 минут
*с соединением и с самой pdo проблем нет., тока это не пойму...
На тебе рабочий пример:
PHP
1
2
3
4
5
    function __construct($host,$db_name,$user,$pass)
    {
        
        $this -> dbh = new PDO("mysql:host=$host;dbname=$db_name",$user,$pass,array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES cp1251"));
}
0
 Аватар для stupidstudent
18 / 15 / 0
Регистрация: 25.10.2011
Сообщений: 241
15.11.2012, 16:43  [ТС]
Sanu0074, я же сказал, что с подключением и использованием проблем нет.
0
Каратель
Эксперт С++
6610 / 4029 / 401
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
15.11.2012, 16:45
т.е. на запросе валится?
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
15.11.2012, 16:59
а ошибку выдает на неизвестную переменную?

Добавлено через 24 секунды
внутри
PHP
1
var_dump($this);
есть там PDO Obj?
0
 Аватар для stupidstudent
18 / 15 / 0
Регистрация: 25.10.2011
Сообщений: 241
15.11.2012, 17:26  [ТС]
KOPOJI, также, как я и говорил - пусто ...
PHP
1
2
3
4
5
6
7
  
["db"]=> object(PDO)#6 (0) {}
 
["_foo"]=>
NULL
["_bar"]=>
NULL
Добавлено через 1 минуту
Цитата Сообщение от KOPOJI Посмотреть сообщение
а ошибку выдает на неизвестную переменную?
нет, ни разу не было.
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
15.11.2012, 17:30
погоди. ты где прописал этот код? в функции bar?

Добавлено через 39 секунд
пропиши рядом с
Цитата Сообщение от stupidstudent Посмотреть сообщение
PHP
1
var_dump($this->db); // NULL почему?
0
 Аватар для stupidstudent
18 / 15 / 0
Регистрация: 25.10.2011
Сообщений: 241
15.11.2012, 17:31  [ТС]
в конструкторе

Добавлено через 58 секунд
а это в bar
PHP
1
object(Load)#4 (0) { } NULL
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
15.11.2012, 17:33
ничего не пойму, должно работать
выложи код от начала класса до проблемного места
0
 Аватар для stupidstudent
18 / 15 / 0
Регистрация: 25.10.2011
Сообщений: 241
15.11.2012, 17:34  [ТС]
да я вот тоже.
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<?php
    class baseModel
    { 
        private $_dsn;    
        public $db;
        
        public function __construct(
                                            $_host = 'localhost', 
                                            $_user = 'root', 
                                            $_pass = '', 
                                            $_dbname = 'test'
                                      )
        {
             try
             {
                 $_dsn = 'mysql:host='.$_host.';dbname='.$_dbname.'';  
                 $this->db = new PDO($_dsn, $_user, $_pass);
                 // если версия пхп > 5.3.6 использовать charset в dns
                 $this->db->exec("set names utf8");
             }  
             catch(PDOException $e)
                {
                    die("Error: ".$e->getMessage());
                } 
                
        }
 
        
        public function MenuVert()
        {
           var_dump($this);    
           var_dump($this->db);
        }
    }
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
15.11.2012, 17:37
а если так:
PHP
1
2
3
4
public function __construct(...) {
.....
$this->MenuVert();
}
Что выводит?

Не по теме:

P.S. имена методов по стандарту с маленькой буквы, имена классов с большой..

0
 Аватар для stupidstudent
18 / 15 / 0
Регистрация: 25.10.2011
Сообщений: 241
15.11.2012, 17:40  [ТС]
PHP
1
2
3
4
5
6
7
8
9
object(defaultModel)#5 (4) {
  ["_dsn"]=>
  NULL
  ["db"]=>
  NULL
  ["_MenuVert"]=>
  NULL
 
}
Добавлено через 46 секунд

Не по теме:

Цитата Сообщение от KOPOJI Посмотреть сообщение
Не по теме:
P.S. имена методов по стандарту с маленькой буквы, имена классов с большой..
ок, но это набросок

0
15.11.2012, 17:41

Не по теме:

чудеса на виражах :smoke: я не знаю в чем может быть проблема.. может кто поумнее появится, скажет в чем проблема :pardon:

1
 Аватар для Vovan-VE
13210 / 6599 / 1041
Регистрация: 10.01.2008
Сообщений: 15,069
15.11.2012, 20:28
stupidstudent, Где-то в другом методе свойство db случано не перезаписали или не unset()'нули?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
15.11.2012, 20:28
Помогаю со студенческими работами здесь

pdo vs singleton
сервер на котором расположен мой сайт выводит вот такое сообщение: Вот и решил я применить Singlton! Вот реализация шаблона: ...

Работа с PDO
Недавно начал изучать php, так как он нужен был для связи базы данных с сайтом. Нашел видео урок по написанию кода для этой самой связи, но...

Singleton и PDO::MYSQL
Здравствуйте. Пытаюсь организовать работу с БД используя шаблон Singleton. В интернете нашел такой пример. Но тут используется устаревший...

Подключение PDO в ООП
Делаю маленький сайт обьявлений, на ооп и mvc. Есть подключение к БД. class Db { public static function getConnection() { ...

Подключение к mssql PDO
Здравствуйте! Скажите, что я делаю не так? Хочу создать класс с подключение к базе данных и потом использовать его по мере нужды. Вот...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru