php не видит pdo

1. JaKazanova (07.02.19 / 19:54)

<?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


Всё перепробовал. Ничего не помогает. Помогите решить.
За ранее благодарен. Спасибо)

2. JaKazanova (07.02.19 / 20:09)
Решил)
Просто изменил namespace
с sustem\classes\dbase на sustem\classes\PDO
ну и перенёс, и переименовал папки и файлы.
Странным образом всё сразу заработало.
Во всяком случае спасибо за внимание. Вы лучшие. Пакеда всем)

3. ramzes (08.02.19 / 16:48)
смени еще раз, на system а то глаза режет

4. Vantuz (08.02.19 / 17:59)
@JaKazanova, добавил бы сверху 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

это тоже вызов константы класса и ищет он его не в глобальном пространстве имен, а в текущем

URL: https://visavi.net/topics/44141