postgresql - Docker Postgres - PDO 异常获取

标签 postgresql pdo docker docker-compose

我是 Docker 的新手,但我遇到了麻烦,我总是遇到这个错误:

Fatal error: Uncaught PDOException: could not find driver in /var/www/html/index.php:16 Stack trace: #0 /var/www/html/index.php(16): PDO->__construct('pgsql:host=loca...', 'project', 'project') #1 {main} thrown in /var/www/html/index.php on line 16

这是我的 index.php:

<?php
        $database   = $user = $password = "project";
        $host       = "localhost";
        $connection = new PDO("pgsql:host={$host};dbname={$database};charset=utf8", $user, $password);
        $query      = $connection->query("SELECT TABLE_NAME FROM information_schema.TABLES WHERE TABLE_TYPE='BASE TABLE'");
        $tables     = $query->fetchAll(PDO::FETCH_COLUMN);

这就是我的 Dockerfile 的样子:

FROM php:7.0-fpm

RUN apt-get update && apt-get install -y
RUN apt-get install git

RUN docker-php-ext-install mbstring mcrypt opcache
RUN docker-php-ext-configure pgsql -with-pgsql=/usr/include/postgresql/
RUN docker-php-ext-install pgsql pdo_pgsql

RUN curl -sS https://getcomposer.org/installer | php
RUN mv composer.phar /usr/local/bin/composer

但是我感觉Dockerfile没有运行,当我运行docker-compose up -d命令时它太快了。

有人知道为什么我得到 PDOException 吗?

最佳答案

如果安装了包,需要在php.ini中启用该模块

将以下行添加到 php.ini 文件

extension=php_pgsql.so

关于postgresql - Docker Postgres - PDO 异常获取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37077582/

相关文章:

json - 如何使用表内的 JSONB 数据类型和 PostgreSQL JDBC 驱动程序将 JSON 对象存储到 PostgreSQL

php - 我应该一直进行MySQL错误检查吗?

javascript - 无法在 Windows 10 中执行脚本 docker-compose YML 文件

postgresql - PgSQL : Assigning a column value to a variable makes query parameter unbound

node.js - 如何在 sequelize 中关联表格

PHP PDO 与普通 mysqli 速度性能基准

docker - 我可以在 Windows 7 上使用 docker-toolbox 运行 Windows 容器吗?

python - 用于 Node 模块和 python 要求的 Docker 缓存

django - PostgreSQL:无法连接到服务器:连接被拒绝

php - PDO 数据库类不会在捕获异常时停止