php не видит pdo
1.
Момору (07.02.2019 / 16: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.
Момору (07.02.2019 / 17:09)
Решил)
Просто изменил namespace
с sustem\classes\dbase на sustem\classes\PDO
ну и перенёс, и переименовал папки и файлы.
Странным образом всё сразу заработало.
Во всяком случае спасибо за внимание. Вы лучшие. Пакеда всем)
3.
ramzes (08.02.2019 / 13:48)
смени еще раз, на system а то глаза режет
4.
Вантуз-мен (08.02.2019 / 14:59)
Момору, добавил бы сверху 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
это тоже вызов константы класса и ищет он его не в глобальном пространстве имен, а в текущем
5.
php12326 (28.03.2019 / 18:59)
PDO это библиотека встроенная
у меня работает вот так
namespace app\lib;
use PDO;
и ниже подключение к pdo
$this->db = new PDO('mysql:host=...........
URL:
https://visavi.net/topics/44141