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

PHP и PDO(Singleton)

26.07.2016, 21:18. Показов 2943. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. Нуждаюсь в Вашей помощи, второй день ламаю голову над решением проблемы.Хочу вывести все данные из существующей таблицы id с бд learn используя шаблон singleton(в целях обучения)
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?
require('db_singleton.php');
 
define('HOST', 'localhost');
define('USER', 'root');
define('PASS', '');
define('DB','learn');
 
database::getInstance();//инициализация класса для работы с бд
 
 
$res = database::fquery("SELECT * FROM id");
 
echo $res;
?>
Добавлено через 54 секунды
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
35
36
37
38
39
40
41
42
43
44
45
46
<?
class database
{
    protected static $instance;
    
    public static function getInstance()
    {
        if(is_null(self::$instance))
        {
            self::$instance = new self;
        }
        return self::$instance;
    }
    private function __construct()
    {
        $opt = array(
            PDO::ATTR_ERRMODE               =>  PDO::ERRMODE_EXCEPTION,
            PDO::ATTR_DEFAULT_FETCH_MODE    =>  PDO::FETCH_ASSOC);
        try{
            $this->pdo = new PDO("mysql:host=".HOST.";DB_name=".DB,USER,PASS,$this->opt);
            }catch(PDOException $x){
                die('подключение не удалось '. $x->getMessage().
                    '<br />ошибка на строчке '. $x->getLine()    );
        }
    }
    private function __clone()  {} //запрещаем клонирование обьектов
    private function __wakeup() {} //
    
    public static function fquery($sql)
    {
        $obj = self::$instance;
        
        if(isset($obj->pdo))
        {
            $obj->count_sql++;
            $result = $obj->pdo->prepare($sql);
            $result -> execute();
            echo "<br/><span style='color:blue'># Запрос номер ".$obj->count_sql."<br />".$obj->result;
            
                return $result->fetchAll;
        }
                return false;
    }
    
}
?>
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
26.07.2016, 21:18
Ответы с готовыми решениями:

PHP и PDO(Singleton)
Здравствуйте. Нуждаюсь в Вашей помощи, второй день ламаю голову над решением проблемы.Хочу вывести все данные из существующей таблицы id с...

Php,pdo, mysql+php,
К примеру у меня есть функция добавления в бд через PDO Так вот, а если я передаю массив значений, в котором есть и числовые значения, он...

PHP PDO
include('connect.php'); $busynamequery = $pdo-&gt;prepare('SELECT * FROM tz_members WHERE usr=:username'); ...

11
26.07.2016, 21:19

Не по теме:

Цитата Сообщение от Shvarko Посмотреть сообщение
второй день ламаю голову над решением проблемы.Хочу вывести все данные из существующей таблицы id с бд learn используя шаблон singleton(в целях обучения)
А, вопрос-то в чём?

0
0 / 0 / 0
Регистрация: 02.06.2016
Сообщений: 18
26.07.2016, 21:21  [ТС]
Но в итоге у меня выводит только:"
# Запрос номер 1"

Добавлено через 1 минуту
Ой,блин,дико извиняюсь.Вопрос в том,где ошибки,которые не дают взять существующие данные с таблицы?Заранее благодарен тем,кто поможет.Очень выручите
0
349 / 262 / 65
Регистрация: 07.04.2014
Сообщений: 1,603
26.07.2016, 21:45
Цитата Сообщение от Shvarko Посмотреть сообщение
Но в итоге у меня выводит только:"
# Запрос номер 1"
Вероятно, дальше код не выполняется из-за критической ошибки.
Цитата Сообщение от Shvarko Посмотреть сообщение
Вопрос в том,где ошибки,которые не дают взять существующие данные с таблицы?
Я бы посоветовал для начала включить отображение ошибок в PHP. Это часто помогает понять, что к чему.
0
0 / 0 / 0
Регистрация: 02.06.2016
Сообщений: 18
27.07.2016, 12:47  [ТС]
Если включение ошибок выглядит так
PHP
1
2
ini_set('display_errors','On');
error_reporting('E_ALL');
То ничего оно не меняет((
0
Эксперт PHP
3899 / 3237 / 1353
Регистрация: 01.08.2012
Сообщений: 10,909
27.07.2016, 13:24
Цитата Сообщение от Shvarko Посмотреть сообщение
PHP
1
return $result->fetchAll;
Скобок нет.

Добавлено через 1 минуту
Цитата Сообщение от Shvarko Посмотреть сообщение
echo $res;
Если fetchall возвращает массив, проверять его надо через var_dump/print_r, а не echo.
0
0 / 0 / 0
Регистрация: 02.06.2016
Сообщений: 18
27.07.2016, 14:47  [ТС]
убрал эти недочеты.Теперь выводит:# Запрос номер 1
Array ( )
Походу в массив ничего не попадает,но не могу понять почему, в бд информация есть.В обычном простом mysql примере всё выводит, а вот с pdo не разберусь никак
0
Эксперт PHP
3899 / 3237 / 1353
Регистрация: 01.08.2012
Сообщений: 10,909
27.07.2016, 15:23
Цитата Сообщение от Shvarko Посмотреть сообщение
"SELECT * FROM id"
Таблица точно id называется?

Покажите итоговый код со всеми правками.
0
0 / 0 / 0
Регистрация: 02.06.2016
Сообщений: 18
27.07.2016, 15:34  [ТС]
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?
ini_set('display_errors','On');
error_reporting('E_ALL');
 
require('db_singleton.php');
 
define('HOST', 'localhost');
define('USER', 'root');
define('PASS', '');
define('DB','learn');
 
database::getInstance();//инициализация класса для работы с бд
 
 
$res = database::fquery("SELECT * FROM id");
 
print_r($res);
?>
файл db_singleton.php
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
<?
 
class database
{
    protected static $instance;
    
    public static function getInstance()
    {
        if(is_null(self::$instance))
        {
            self::$instance = new database();
        }
        return self::$instance;
    }
    private function __construct()
    {
        $opt = array(
            PDO::ATTR_ERRMODE               =>  PDO::ERRMODE_EXCEPTION,
            PDO::ATTR_DEFAULT_FETCH_MODE    =>  PDO::FETCH_ASSOC);
        try{
            $this->pdo = new PDO("mysql:host=".HOST.";DB_name=".DB,USER,PASS,$this->opt);
            }catch(PDOException $x){
                die('подключение не удалось '. $x->getMessage().
                    '<br />ошибка на строчке '. $x->getLine()    );
        }
    }
    private function __clone()  {} //запрещаем клонирование обьектов
    private function __wakeup() {} //
    
    public static function fquery($sql)
    {
        $obj = self::$instance;
        
        if(isset($obj->pdo))
        {
            $obj->count_sql++;
            $result = $obj->pdo->prepare($sql);
            $result -> execute();
            
            echo "# Запрос номер ".$obj->count_sql."<br />";
            
                return $result->fetchAll();
        }
                return false;
    }
    
}
?>
0
0 / 0 / 0
Регистрация: 02.06.2016
Сообщений: 18
27.07.2016, 15:35  [ТС]
вот скрин с phpmyadmin
Миниатюры
PHP и PDO(Singleton)  
0
Эксперт PHP
3899 / 3237 / 1353
Регистрация: 01.08.2012
Сообщений: 10,909
27.07.2016, 15:42
Цитата Сообщение от Shvarko Посмотреть сообщение
$this->opt
на 21-ой строке, здесь должен быть просто $opt.
0
0 / 0 / 0
Регистрация: 02.06.2016
Сообщений: 18
27.07.2016, 15:49  [ТС]
убрал,теперь при выполнении скрипта выводится просто пустая страница,вообще никакого текста
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
27.07.2016, 15:49
Помогаю со студенческими работами здесь

PHP, PDO, POST, INSERT
Есть несколько баз данных, для удобства редакторования, администратор отправляет данные через метод POST, однако не только данные, но и...

PHP PDO UPDATE неработает
вот запрос $sql = &quot;UPDATE calculators SET name = :name , url = :url , height = :height WHERE id_calculator = :id_calculator&quot;;...

PHP Data Objects (PDO)
Доброго всем дня. Нахожусь на этапе познания PDO. Вот в чем вопрос: &lt;?php error_reporting(E_ALL | E_STRICT); $db = new...

PHP PDO не обновляет данные в MySQL
Приветствую форумчане. Не могу понять, почему следующий код не обновляет в MySQL данные public function edit($ignored=Array()) {...

PHP PDO - фатальная ошибка fetch()
Доброго времени суток! Проблема такая - делаю проверку на существование логина пользователя (при регистрации), выскакивает ошибка...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru