|
2 / 2 / 0
Регистрация: 03.05.2014
Сообщений: 72
|
|
PDO - not execute28.05.2018, 12:51. Показов 1946. Ответов 18
Метки нет (Все метки)
И так делаю подключение к ДБ через PDO.PDO возвращает PDOobject()..все OK..
Теперь делаю обычный запрос " SELECT username FROM userreg";..a PDO-query(sql); Ничего не возвращает а должен был возвращать PDOStatement Object ("query")..таб. (userreg) есть username тоже...дело в том что он не возвращает даже предупреждение или что-то еще...он вообще не вылоняет эту строку.А при добовление вывода результата вывод -> (img). В чем проблема. Файл: autoload.php -> содержит spl_autoload_register(nameFunc) где nameFunc также описана выше этой функций а ниже экземпляр класса DB() Файл: index.php -> просто require 'autoload.php'
0
|
|
| 28.05.2018, 12:51 | |
|
Ответы с готовыми решениями:
18
PDOStatement::execute(): MySQL server has gone away |
|
3899 / 3237 / 1353
Регистрация: 01.08.2012
Сообщений: 10,909
|
|
| 28.05.2018, 13:01 | |
|
Строка 13, мб забыли echo?
0
|
|
|
2 / 2 / 0
Регистрация: 03.05.2014
Сообщений: 72
|
|
| 28.05.2018, 13:10 [ТС] | |
|
Jodah, вывод был тот что из Exception - > Error Connect to DB..но в чем тогда проблема соединения если
класс PDO extends Define а в Define есть все свойства host = localhost root = root pwd = ' ' dbname = 'test' и все под protected
0
|
|
|
1992 / 1216 / 440
Регистрация: 13.06.2013
Сообщений: 4,115
|
|
| 28.05.2018, 13:38 | |
|
1) Кидайте код сюда в теги php. На скринах пол кода не видно + не скопируешь.
2) На 9 строчке вы сами бросаете exception, хз зачем. 3) На 10 return. В конструкторе он не работает. 4) В 13 как уже сказали нужен echo. 5) Четко видна ошибка "попытка вызвать fetch от boolean". В доке видим что false возвращается если запрос выполнить не удалось. Там же в доке видим команду для получения ошибок при выполнении запроса. 6) Наследовать БД от конфигов полный бред. Это как говорить что человек произошел от камня. Простой статический класс с константами и то логичней. 7) Писать свою обертку над PDO довольно глупо. Долго + опыта не хватит. Лучше взять готовую библиотеку либо довольствоваться самим PDO. 8) print_r($stmt) "ничего не вернул", потому что там false, а он уже превращается в пустую строку. Лучше использовать var_dump.
0
|
|
|
2 / 2 / 0
Регистрация: 03.05.2014
Сообщений: 72
|
||||||||||||||||
| 28.05.2018, 14:09 [ТС] | ||||||||||||||||
|
tarasalk, хмм...так вроде throw new...вызывается когда try{} не сработал а так как там была ошибка (Error Connect to DB)..то вызвался catch()...блок написал ну типа чтоб не писать if и else для каждой строки кода
.. return на 10 строке был для того чтоб не создавать каждый раз новый экземпляр класса PDO..а вернул уже существуюший...ну типа вместо PDO::ATTR_PERSISTENT=>true...постоянное подключение к ДБ после чего просто добавил этот параметр а return закоментировал...по поводу наследование класса Define даже не знаю думал просто где-то поставить нужные переменные ...код ша отправлю Добавлено через 5 минут tarasalk, db_class.php // __construct был изменен просто на 1 строку
![]()
autoload.php
require_once 'autoload.php';
0
|
||||||||||||||||
|
295 / 244 / 128
Регистрация: 24.12.2014
Сообщений: 708
|
|||||||||||||
| 28.05.2018, 14:57 | |||||||||||||
0
|
|||||||||||||
|
2 / 2 / 0
Регистрация: 03.05.2014
Сообщений: 72
|
|
| 28.05.2018, 15:23 [ТС] | |
|
wmysterio, почему статистические методы все..не подготовленные запросы это круть
но мне нравится больше не ? а :name... хотя смотря как строится движок
0
|
|
|
295 / 244 / 128
Регистрация: 24.12.2014
Сообщений: 708
|
|||||
| 28.05.2018, 15:36 | |||||
0
|
|||||
|
2 / 2 / 0
Регистрация: 03.05.2014
Сообщений: 72
|
||
| 28.05.2018, 15:54 [ТС] | ||
|
wmysterio, ой прости..ПОДГОТОВЛЕННЫЕ запросы
![]() Добавлено через 12 минут б*я ...так как класс возврощает назад PDOobject из функций GetPDO(). следовательно можно оперировать с запросами где угодно просто вызывая PDO::"query|prepare".мммм даже не знаю ![]() Добавлено через 10 секунд wmysterio,
0
|
||
|
295 / 244 / 128
Регистрация: 24.12.2014
Сообщений: 708
|
|||
| 28.05.2018, 16:12 | |||
Ещё ни разу не приходилось им пользоваться: у меня всё и так загружается последовательно в коде, так как использую единую точку входа на сайт через "index.php" и я уже знаю какие классы я загружаю.
0
|
|||
|
1992 / 1216 / 440
Регистрация: 13.06.2013
Сообщений: 4,115
|
|||||
| 28.05.2018, 18:28 | |||||
|
1) Все завязано на одно окружение. Обычно их несколько. Например: локальное, тестовое, продакшен. В вашем случае придется постоянно менять класс. Даже наследование запретили. 2) Вытекает из первого. Не сделать одновременно 2 подключения, а такое тоже бывает нужно. 3) Совершенно не очевидно что нужно дергать метод Connect, а без него GetPDO вернет null. Логично было бы их объединить. В итоге получился бы паттерн синглтон. Его много ругают, но всяко лучше чем это. 4) Хз зачем подавлять ошибки. Вместо информативного эксепшена на экран выйдет Connection problem... и потом на форуме появляются темы "а почему же у меня не работает, ошибок нет". Ну и сдались вам эти require, include. Даешь автозагрузчик composer с psr-4.
0
|
|||||
|
2 / 2 / 0
Регистрация: 03.05.2014
Сообщений: 72
|
||
| 28.05.2018, 19:15 [ТС] | ||
|
tarasalk,
..как то не понел (..Вашу обертку тоже можно спокойно обойти создав напрямую свой PDO )..как это напрямую в Си написать свой PDOДобавлено через 7 минут я просто хотел сделать так...создать класс DB и в нем был метод select() .. который был бы универсальным для любого запроса SELECT как видно это я сделал в методе select вызывается другие методы this->and(item,val) this->where(item,val) все они возврошаль строку вида " AND $item = $val" или для where " WHERE $item = $val"..просто чтоб не написать каждый раз $sql = "SELECT ...". это было вся идея класса DB...далее с помощью функ. autoload избавился от постоянного вызова класса т.е создание в каждом файле строку вида $name = new NameClass...по мере я так думал ... и вроде сработала ... все это было толька в целях обучения.![]() Добавлено через 12 минут думал как про шаблон (Singleton) но хотелось как то самому чтоб не использовать стандарты PHP а типа создать что то свое ну как практика разнобразия если понадобится какой то сложная абстрактная идея.
0
|
||
|
1992 / 1216 / 440
Регистрация: 13.06.2013
Сообщений: 4,115
|
||||||||||||||||
| 28.05.2018, 19:36 | ||||||||||||||||
![]() Просто пишешь "new PDO(....)" в любой точке кода и вся обертка остается вне игры. Следовательно
... до тех пор пока ему хватает простейших запросов.
Впрочем да, думаю каждому надо испытать это на себе, дабы познать всю боль и отчаяние и больше никогда к этому не возвращаться
0
|
||||||||||||||||
|
2 / 2 / 0
Регистрация: 03.05.2014
Сообщений: 72
|
||||
| 28.05.2018, 19:49 [ТС] | ||||
|
tarasalk,
для сложного подумаю я потом ![]() а не для все . (если я правилно написал) там вроде есть ReadBeanPHP это же вроде MariaDB не так...там типо (пока еше не использовал его) запросы какой хочеш пишь а потом db->query(sql) и все... та sql же строка..знасит этот метод query тоже так придкмали чтоб был универсальным для любого запроса <ко всему выше >:<если я прав>
0
|
||||
|
1992 / 1216 / 440
Регистрация: 13.06.2013
Сообщений: 4,115
|
|||
| 28.05.2018, 20:15 | |||
|
В joomle свои причины для такой обертки, одна из таких причин - поддержка различных драйверов для работы с БД, а не только PDO.
0
|
|||
|
295 / 244 / 128
Регистрация: 24.12.2014
Сообщений: 708
|
||||
| 28.05.2018, 20:18 | ||||
|
2) Киньте несколько ссылок с примерами, где нужно использовать несколько соединений одновременно. Ни разу такой необходимости не было, но интересно почитать. 3) Что не очевидно? Подключили файл класса, в конце которого вызывается соединение через Connect. В остальном коде его дёргать не надо, так как всё сделано уже в файле. 4) Писал для примера. Пишите там что Вам в душе угодно.
0
|
||||
|
2 / 2 / 0
Регистрация: 03.05.2014
Сообщений: 72
|
|||||||
| 28.05.2018, 20:35 [ТС] | |||||||
|
tarasalk, и так мне снова надо написать веси код с нуля
а то нить логики в этом коде пропало где то ![]() Добавлено через 11 минут
wmysterio,
0
|
|||||||
|
1992 / 1216 / 440
Регистрация: 13.06.2013
Сообщений: 4,115
|
|||||
| 28.05.2018, 21:22 | |||||
|
У меня все в гите + десятки параметров в конфигах (смс, почта, редис итд...) + у каждого в команде свои параметры + апдейт продакшена по несколько раз в день. Ну и тесты конечно... между обычным и тестовым режимом могу переключаться сотни раз за день. Согласен, встречается не часто, мне только раз посчастливилось поработать над таким проектом, убежал через пару месяцев. Но суть была не в этом, если человек так пишет, высока вероятность что и в другом месте он напишет в том же стиле. Имхо, лучше изначально вырабатывать правильные привычки. У меня ушли годы чтобы отделаться от этой привычки
0
|
|||||
|
2 / 2 / 0
Регистрация: 03.05.2014
Сообщений: 72
|
|
| 29.05.2018, 14:39 [ТС] | |
|
tarasalk, wmysterio, все сработало со старом коде
я по другому сделал но код остался тот же
0
|
|
| 29.05.2018, 14:39 | |
|
Помогаю со студенческими работами здесь
19
$pdo->execute Выдает ошибку Error H2365: "Override method poster.execute shold match case of ancesor TThread.execute" OpenDialog1.Execute/SaveDialog1.Execute Execute immediate
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
моя боль
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 полиномов. . .
|
|
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ *
Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи
и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
|
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым.
Но восстановить их можно так.
Для этого понадобится консольная утилита. . .
|
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
|
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11
— это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
|