Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Нужна помощь по интеграции ПДО

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
Irvin1713
Отправлено: 27 Июля, 2014 - 12:08:32
Post Id


Новичок


Покинул форум
Сообщений всего: 3
Дата рег-ции: Июль 2014  


Помог: 0 раз(а)




Добрый день! Радость В очередной раз мне захотелось узнать чего-нибудь новенького, и я взялся за PDO. Но не без проблем. Прочитав десяток другой мануалов, и пролистав половину Яндекса, я так и не смог понять, каким образом можно работать с PDO в ООП. Вот пример кода моего подключения
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. define('DB_DRIVER','mysql');
  3. define('DB_HOST','localhost');
  4. define('DB_NAME','nsoft');
  5. define('DB_USER','root');
  6. define('DB_PASSWORD','');
  7. $connect_str=DB_DRIVER.':host='.DB_HOST.';dbname='.DB_NAME;
  8. $link=new PDO($connect_str, DB_USER, DB_PASSWORD) or die("Невозможно установить соединение");

Если использовать процедурное программирование, то никаких проблем нет, но при таком вот действии
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. class NAV extends PDO{
  3.     function GetPage($p_n){
  4.         $res=$this->query("SELECT id, cat_name, cat_description, link FROM cat_menu WHERE page='$p_n'");
  5.         var_dump($res);
  6.         $row=$res->fetch();
  7.         return $row;
  8.     }
  9. }
  10.  

var_dump говорит ясно и понятно: bool(false), на счёт существования $row дамп вообще ничего не знает.
Помогите пожалуйста разобраться, что как и почему. Может я не знаю чего? Заранее спасибо Улыбка Улыбка Улыбка
 
 Top
avtor.fox
Отправлено: 27 Июля, 2014 - 13:30:57
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2083
Дата рег-ции: Март 2012  
Откуда: Воронеж


Помог: 50 раз(а)




Irvin1713, ваяйте синглтон, ворочайте назад объект и с ним работайте. Примеров в нете полно
 
 Top
Irvin1713
Отправлено: 27 Июля, 2014 - 13:46:58
Post Id


Новичок


Покинул форум
Сообщений всего: 3
Дата рег-ции: Июль 2014  


Помог: 0 раз(а)




avtor.fox пишет:
Irvin1713, ваяйте синглтон, ворочайте назад объект и с ним работайте. Примеров в нете полно

Мил человек, если не сложно скинь хоть один такой. Я о синглтонах понятия не имею, а мануал читать долговато, да и в лом после изучения PDO
 
 Top
DelphinPRO
Отправлено: 27 Июля, 2014 - 15:01:11
Post Id



Активный участник


Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012  


Помог: 353 раз(а)




Irvin1713 пишет:
В очередной раз мне захотелось узнать чего-нибудь новенького

Irvin1713 пишет:
мануал читать долговато, да и в лом после изучения PDO

Как-то ты противоречишь сам себе...


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
Irvin1713
Отправлено: 27 Июля, 2014 - 22:40:42
Post Id


Новичок


Покинул форум
Сообщений всего: 3
Дата рег-ции: Июль 2014  


Помог: 0 раз(а)




Irvin1713 пишет:
Прочитав десяток другой мануалов
Поймите меня, я не робот. Если есть возможность, киньте пожалуйста готовое решение (буду благодарен если с комментариями) Улыбка
 
 Top
Edwvee
Отправлено: 28 Июля, 2014 - 16:21:44
Post Id


Частый гость


Покинул форум
Сообщений всего: 195
Дата рег-ции: Июнь 2013  


Помог: 1 раз(а)




Понятие "Синглтон" не относится конкретно к пдо. А если лень изучать, то плохо. Куда вы все за результатом гонитесь? На таком уровне нужно гнаться за следующим, а не пытаться скорее результат ухватить.

Апд: Прочитал тему, не понял как тут может помочь синглтон Радость Не фетчится ряд как я понял, что странно, но мало данных.
АпдАпд: Запрос фейлится. Мало данных, чтобы понять почему
CODE (htmlphp):
скопировать код в буфер обмена
  1. PDO::query() returns a PDOStatement object, or FALSE on failure.

(Отредактировано автором: 28 Июля, 2014 - 16:31:05)

 
 Top
esterio
Отправлено: 28 Июля, 2014 - 18:10:42
Post Id



Активный участник


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


Помог: 127 раз(а)




Irvin1713 пишет:
$link=new NAV($connect_str, DB_USER, DB_PASSWORD) or die("Невозможно установить соединение");

Унаследовали NAV от PDO, но все равно далее используете PDO.
и да при таком вот подходе у вас будет 100500 коннектов, так как я понял класс NAV предназначен для навигации, а еще будут классы для других задач и все они будут унаследованы от PDO класса. Знаете много кто из новичков попадаеться на такую ловушку: все наследовать от базы данных. Но это и есть ошыбка. Со временем сами поймете.
P.S. сделайте синглтон и да будет вам щастье

(Отредактировано автором: 28 Июля, 2014 - 18:11:25)

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Объектно-ориентированное программирование »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB