Здравствуйте всем! не пойму почему var_dump($articles_array); выдает пустой массив? База не пустая и если пользоваться mysql_connect, то работает корректно. Код (Text): Class TestPDO { public static $dbh; public static function dbConnect() { $hostname = 'localhost'; $username = 'root'; $password = ''; $dbName = 'news'; self::$dbh = new PDO("mysql:$dbName; host:$hostname", $username, $password); } public static function articles_all() { self::dbConnect(); $query = "SELECT * FROM `articles` ORDER BY `id_article` DESC"; $stmt = self::$dbh->prepare($query); $stmt->execute(); $articles_array = $stmt->fetchAll(); var_dump($articles_array); return $articles_array; } } $obj = new TestPDO(); $obj->articles_all();
попробовал на денвере все равно пишет Array() Empty с денвером вроде все нормально PDO включен попробовал на хостинге, также пишет array(0) { } что за ерунда
Вот такая штука (переделал твоё немного, в основном - изменил параметры подключения к б.д. и запрос немного) у меня работает Код (PHP): <?php Class TestPDO { public static $dbh; public static function dbConnect() { $hostname = 'localhost'; $username = 'root'; $password = '123'; $dbName = 'gal'; self::$dbh = new PDO("mysql:dbname={$dbName};host={$hostname}", $username, $password); } public static function articles_all() { self::dbConnect(); $query = "SELECT * FROM `tbl_galleries` ORDER BY `gal_id` DESC"; $stmt = self::$dbh->prepare($query); $stmt->execute(); $articles_array = $stmt->fetchAll(); return $articles_array; } } $rows = TestPDO::articles_all(); print_r($rows); ?> Добавлено спустя 2 минуты 21 секунду: Попробуй после $stmt->execute(); добавить var_dump($stmt->errorInfo());
Респект вам! Спасибо, надо было заэкранировать всего лишь {$dbName};{$hostname} и все заработало. Интересно почему в мануалах это не используется и об этом не написано???