Доступ к файлу удаленного хоста PDO не поддерживается

Так что я расширяю класс PDO, чтобы использовать его для подключения к базе данных с MySQL и хочу загрузить внешний DSN file(uri:file://../msql.dns) но я получил эту ошибку:

Предупреждение: PDO :: __ construct (): доступ к файлу удаленного хоста не поддерживается

А потом, предположительно, потому что загружать нечего

* Предупреждение: PDO :: __ construct (file: //../msql.dns): не удалось открыть поток: не удалось найти подходящую оболочку в
/home/me/apps/app/testApp/class/Database2.php в строке 12

и пойманное исключение говорит: неверный URI источника данных

dsnfile содержит: 'mysql:host=localhost;dbname=somebase', 'myuser', 'mypass'

даже если я уйду только с этой частью 'mysql:host=localhost;dbname=somebase' либо с PDO::__construct или создание экземпляра из объекта напрямую.

1

Решение

Проверьте конфигурацию php.ini, если у вас включена опция allow url fopen, как описано по этой ссылке:

http://us3.php.net/manual/en/filesystem.configuration.php#ini.allow-url-fopen

0

Другие решения

Решение состоит в том, чтобы использовать абсолютный путь вместо относительного.

PDO использует php-потоки для загрузки этого файла, и я обнаружил, что проблема заключается в том, что я ожидаю, что php-потоки посмотрят на include_path и просто сделают это, когда вы используете fopen (), file_get_contents () и т. Д.

Для других вы должны указать полный путь.

$conn = new PDO('uri:file://' . $_SERVER['DOCUMENT_ROOT'] . '../msql.dns');
0

По вопросам рекламы [email protected]