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
Форумы портала PHP.SU :: Версия для печати :: Нужна помощь по интеграции ПДО
Форумы портала PHP.SU » » Объектно-ориентированное программирование » Нужна помощь по интеграции ПДО

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

1. Irvin1713 - 27 Июля, 2014 - 12:08:32 - перейти к сообщению
Добрый день! Радость В очередной раз мне захотелось узнать чего-нибудь новенького, и я взялся за 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 дамп вообще ничего не знает.
Помогите пожалуйста разобраться, что как и почему. Может я не знаю чего? Заранее спасибо Улыбка Улыбка Улыбка
2. avtor.fox - 27 Июля, 2014 - 13:30:57 - перейти к сообщению
Irvin1713, ваяйте синглтон, ворочайте назад объект и с ним работайте. Примеров в нете полно
3. Irvin1713 - 27 Июля, 2014 - 13:46:58 - перейти к сообщению
avtor.fox пишет:
Irvin1713, ваяйте синглтон, ворочайте назад объект и с ним работайте. Примеров в нете полно

Мил человек, если не сложно скинь хоть один такой. Я о синглтонах понятия не имею, а мануал читать долговато, да и в лом после изучения PDO
4. DelphinPRO - 27 Июля, 2014 - 15:01:11 - перейти к сообщению
Irvin1713 пишет:
В очередной раз мне захотелось узнать чего-нибудь новенького

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

Как-то ты противоречишь сам себе...
5. Irvin1713 - 27 Июля, 2014 - 22:40:42 - перейти к сообщению
Irvin1713 пишет:
Прочитав десяток другой мануалов
Поймите меня, я не робот. Если есть возможность, киньте пожалуйста готовое решение (буду благодарен если с комментариями) Улыбка
6. Edwvee - 28 Июля, 2014 - 16:21:44 - перейти к сообщению
Понятие "Синглтон" не относится конкретно к пдо. А если лень изучать, то плохо. Куда вы все за результатом гонитесь? На таком уровне нужно гнаться за следующим, а не пытаться скорее результат ухватить.

Апд: Прочитал тему, не понял как тут может помочь синглтон Радость Не фетчится ряд как я понял, что странно, но мало данных.
АпдАпд: Запрос фейлится. Мало данных, чтобы понять почему
CODE (htmlphp):
скопировать код в буфер обмена
  1. PDO::query() returns a PDOStatement object, or FALSE on failure.
7. esterio - 28 Июля, 2014 - 18:10:42 - перейти к сообщению
Irvin1713 пишет:
$link=new NAV($connect_str, DB_USER, DB_PASSWORD) or die("Невозможно установить соединение");

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

 

Powered by ExBB FM 1.0 RC1