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

PDO подключение к бд

25.03.2019, 23:49. Показов 905. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток, использую код с применением класса, но по какой то причине, он не может использовать класс CFG

Файл подключения классов и бд:
PHP
1
2
3
4
5
6
7
include(ROOT_DIR.'/configuration.php');
 
$config = new СFG;
require_once(CORE_DIR . '/libs/functions.php');
module_include('class', 'pdo-mysql');
module_include('lang', 'system', $config->lang);
include(CORE_DIR . '/template.php');
Файл configuration.php:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
class СFG {
  public $name = "";
  public $description = "";
  public $theme = "";
  public $lang = "";
  public $ver = "";
  public $db_host = "";
  public $db_name = "";
  public $db_user = "";
  public $db_pass = "";
  public $db_prefix = "";
  public $db_port = ;
}
Файл pdo-mysql класса DB:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
class DB {
// use STATIC rendering
  static private $db; // db handler
 
  static public function init() {
    try {
      self::$db = new PDO(
        "mysql:host=".CFG::$db_host.";dbname=".CFG::$db_name.";charset=utf8",
        CFG::$db_user, CFG::$db_pass,
        array(PDO::MYSQL_ATTR_INIT_COMMAND=>'SET NAMES utf8')
      );
      self::$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
      //self::$db->exec("SET NAMES utf8"); -- не нужно если сработает PDO::MYSQL_ATTR_INIT_COMMAND?
    }
    catch (PDOException $e) {
      die('<h3 style="color: red">Ошибка соединения с БД. Повторите попытку через полминуты!</h3>');
    }
  }
}
Код исполнения:
PHP
1
2
DB::init();
$rec = DB::query("SELECT * FROM `users` WHERE 1");
Ошибка:
Fatal error: Uncaught Error: Class 'CFG' not found in pdo-mysql.php:14
14 строка: "mysql:host=".CFG::$db_host.";dbname=".C FG::$db_name.";charset=utf8",
Прошу помочь, голову уже давно ломаю.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
25.03.2019, 23:49
Ответы с готовыми решениями:

Подключение и использование PDO
Здравствуйте, не могли бы немного растолковать мне, я много читал про pdo но не нашел толкового ответа, в общем как я понял pdo встроен в...

Подключение к БД (PDO). Админка
Доброго всем. После авторизации админа - переход на админку (ниже код). //Если логин совпадает, проверяем пароль if(count($rows) &gt;...

Вывод данных из базы (подключение PDO)
есть две таблицы в одной хранится список сайтов во второй таблице жалоба на сайт запрос к списку сайтов (к первой таблице) $stmt...

6
 Аватар для fanatikus
1932 / 1523 / 703
Регистрация: 17.11.2012
Сообщений: 6,585
26.03.2019, 00:48
Цитата Сообщение от GumanXD Посмотреть сообщение
$config = new СFG;
правильно
Цитата Сообщение от GumanXD Посмотреть сообщение
$config->lang
а тут что? где в классе CFG static свойства?
Цитата Сообщение от GumanXD Посмотреть сообщение
CFG::$db_host
0
0 / 0 / 0
Регистрация: 25.03.2019
Сообщений: 6
26.03.2019, 08:44  [ТС]
Цитата Сообщение от fanatikus Посмотреть сообщение
а тут что? где в классе CFG static свойства?
Это самописная функция модуля lang.php, не относится к коду подключения бд, а только к подключению файла) А зачем в CFG statistic ? Там грубо говоря просто данные.
0
 Аватар для fanatikus
1932 / 1523 / 703
Регистрация: 17.11.2012
Сообщений: 6,585
26.03.2019, 14:16
Цитата Сообщение от GumanXD Посмотреть сообщение
Это самописная функция модуля lang.php, не относится к коду подключения бд, а только к подключению файла)
вы не поняли
вы создали объект
PHP
1
$condig = new CFG;
далее вызываете его свойство lang
PHP
1
$config->lang;// public $lang = "";
тут все правильно.
а дальше?
получаете static свойства класса CFG
Цитата Сообщение от GumanXD Посмотреть сообщение
CFG::$db_user, CFG::$db_pass,
но, в данном классе нет static свойств
нужно как-то так
PHP
1
2
$confib->db_user;
$config->db_pass;
0
0 / 0 / 0
Регистрация: 25.03.2019
Сообщений: 6
26.03.2019, 18:02  [ТС]
Теперь срабатывает Catch ) Хотя данные все верны, проверил 3 раза.
0
0 / 0 / 0
Регистрация: 25.03.2019
Сообщений: 6
01.04.2019, 23:58  [ТС]
Цитата Сообщение от fanatikus Посмотреть сообщение
$confib->db_user;
$config->db_pass;
Использовал, работает, сейчас такая проблема , он не видит сам CFG () { }
В коде есть такая шляпа:
PHP
1
2
require_once(CORE_DIR . '/libs/functions.php'); - Тут CFG 
module_include('class', 'pdo-mysql'); - Тут DB () {}
Так вот, DB () {} не видит CFG хотя они подключены в 1 файл
0
0 / 0 / 0
Регистрация: 25.03.2019
Сообщений: 6
04.04.2019, 19:40  [ТС]
Сам разобрался, все работает как часики
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
04.04.2019, 19:40
Помогаю со студенческими работами здесь

Подключение к базе данных через PDO. Правильный способ
Привет. Наткнулся на такое руководство http://phpfaq.ru/pdo. Автор пишет в уверенном стиле . Ваше мнение? Читать только оф.сайт или там...

MySql PDO connect как сделать подключение к базе ?
Здравствуйте. Вот нашел в интернете такую функцию для подключения к MySql &lt;?php include('config/config.php'); ?&gt; ...

Подключение к базе данных через PDO или mysql_connect
Всем привет) Столкнулся с проблемой - при подключении к базе данных старинным методом: //константы для подключения к базе...

Подключение к mssql PDO
Здравствуйте! Скажите, что я делаю не так? Хочу создать класс с подключение к базе данных и потом использовать его по мере нужды. Вот...

Подключение PDO в ООП
Делаю маленький сайт обьявлений, на ооп и mvc. Есть подключение к БД. class Db { public static function getConnection() { ...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru