php не видит pdo

Печать / RSS
0
1. Момору (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


Всё перепробовал. Ничего не помогает. Помогите решить.
За ранее благодарен. Спасибо)
Изменил: Момору (07.02.19 / 19:59)
0
2. Момору (07.02.19 / 20:09)
Пришелец
Решил)
Просто изменил namespace
с sustem\classes\dbase на sustem\classes\PDO
ну и перенёс, и переименовал папки и файлы.
Странным образом всё сразу заработало.
Во всяком случае спасибо за внимание. Вы лучшие. Пакеда всем)
+2
3. ramzes (08.02.19 / 16:48)
2000 лет д.н.э.
смени еще раз, на system а то глаза режет
0
4. Вантуз-мен (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

это тоже вызов константы класса и ищет он его не в глобальном пространстве имен, а в текущем
Изменил: Вантуз-мен (08.02.19 / 18:00)
0
5. php12326 (28.03.19 / 21:59)
Пришелец
PDO это библиотека встроенная
у меня работает вот так

namespace app\lib;

use PDO;


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

$this->db = new PDO('mysql:host=...........
Для добавления сообщения необходимо авторизоваться!
Стикеры / Теги / Правила / Топ тем / Топ тем / Поиск