php не видит pdo

Печать RSS
523

Автор
Пришелец
0
<?php 
	namespace sustem\classes\dbase;
	class db {
		protected static $db;
		protected $obj = '';
		public static function init ($base, $user, $pass = '', $host = 'localhost') {
			try {
				if (is_null (static::$db)) {
					//throw new \Exception ();
					if (static::$db = new \PDO ("mysql:host={$host};dbname={$base};charset=utf8", 
						$user, 
						$pass, 
						[
      				PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
      				PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC
    				])
    			) 
    				static::$db -> query ("SET NAMES `utf8`");
				}
			} catch (\PDOException $a) {
				echo $a -> getMessage ();
			} catch (\Exception $a) {
				echo $a -> getMessage ();
			}
		}


Fatal error: Class 'sustem\classes\dbase\PDO' not found in /storage/sdcard1/servers/php/gradient/sustem/classes/dbase/db.php on line 14

Всё перепробовал. Ничего не помогает. Помогите решить.
За ранее благодарен. Спасибо)
Изменил: Момору (07.02.2019 / 19:59)
Автор
Пришелец
0
Решил)
Просто изменил namespace
с sustem\classes\dbase на sustem\classes\PDO
ну и перенёс, и переименовал папки и файлы.
Странным образом всё сразу заработало.
Во всяком случае спасибо за внимание. Вы лучшие. Пакеда всем)

2000 лет д.н.э.
+2
смени еще раз, на system а то глаза режет

Господин ПЖ
0
Момору, добавил бы сверху use PDO; и все нормально было
а то ты вначале используешь new \PDO ("mysql:host={$host};dbname={$base};charset=utf8" ...
все правильно, а потом
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC
это тоже вызов константы класса и ищет он его не в глобальном пространстве имен, а в текущем
Изменил: Вантуз-мен (08.02.2019 / 18:00)
P

Пришелец
0
PDO это библиотека встроенная
у меня работает вот так

namespace app\lib;

use PDO;


и ниже подключение к pdo

$this->db = new PDO('mysql:host=...........
Стикеры / Теги / Правила / Топ тем / Топ постов / Поиск