Добрый вечер. Исходные данные по проблеме: PHP версии 7, postgresql-11, фреймворк yii2. Проблема следующая: судя по всему, запрос не проходит до сервера postgres. Как это проявляется и чем сопровождается: 1. PHP: $sql = "SELECT * FROM public.\"Standart\""; $command = pg_query($sql) or die('Ошибка запроса: ' . pg_last_error()); $query = pg_fetch_array($command, null, PGSQL_ASSOC) При этом command и query - NULL-ы. Команда findAll также возвращает NULL, хотя при отсутствии данных для вывода должна возвращать пустой массив. 2. Подключение существует, его использует фреймворк для формирования модулей с помощью "yii code generator". Было подозрение, основанное на этом источнике (https://sites.google.com/site/paxde...yii-2-i-postgresql---nastrojka-php-i-yii-2-db), о том, что строка "extension=php_pgsql.dll" в файле php.ini закомментирована. Расскомментировала, но ничего не изменилось. Напишите, пожалуйста, если встречались с подобным. Заранее спасибо.
А зачем использовать обратные слеши? А на прямую sql запрос проверял, без php? --- Добавлено --- Если убрать слеши, то логика получается, какая то не понятная.
Первый способ воспроизвести вашу проблему - это передать невалидный ресурс в pg_query, поэтому попробуйте прямо указать соединение. PHP: $connection = pg_connect("host=127.0.0.1 dbname=test user=postgres password=password"); $sql = "SELECT * FROM public.\"random_with_weight\" LIMIT 10"; // $connection первым параметром $command = pg_query($connection, $sql) or die('Ошибка запроса: ' . pg_last_error()); $query = pg_fetch_array($command, null, PGSQL_ASSOC); var_dump($query); Второй способ - продолжение первого, а именно неправильный $connection_string. База на месте? Юзер/пароль? У юзера есть доступ к базе? Разрешен ли вообще доступ по паролю с IP? Короче, так или иначе - нет коннекта. --- Добавлено --- схема
Спасибо за помощь, но это все равно не работает. Как я уже писала: Плюс, когда пароль был неверным, yii2 все-таки выдавал ошибку. Доступы все есть, пользователь - Postgres. Разбираюсь дальше.