使用 PHP 和 PDO 访问 Bluemix 上的 ClearDB

Access to ClearDB on Bluemix with PHP and PDO

我正在尝试使用 PHPClearDB 创建一个 Bluemix 应用程序(使用 PDO 连接)。

当我尝试使用本地主机 (WAMP) 访问服务器时,我可以收到连接成功的消息。当我简单地复制并粘贴 Bluemix 上的代码时,出现以下错误:

Fatal error: Class 'PDO' not found in /home/vcap/app/htdocs/includes/db.php on line 43

我确定我的凭据有效,因为我使用相同的凭据通过 MySQL Workbench 进行连接。 我确定我的语法是正确的,因为我可以使用本地主机 (WAMP) 进行连接。

我搜索并发现我需要将 PDO 激活为 PHP 扩展(我已经看到这个 post 但没有成功)。

一些配置文件:

.bp-config -> php -> php.ini

extension=pdo.so
extension=pdo_sqlite.so
extension=pdo_mysql.so
extension=sqlite.so
extension=mysqli.so
extension=mysql.so
extension=mbstring.so
extension=php_pdo.dll
extension=php_pdo_mysql.dll
display_errors = On
display_startup_errors = On
error_reporting = On

.bp-config -> options.json

{ 
   "PHP_EXTENSIONS": ["bz2", "zlib", "openssl", "fpm", "tokenizer", "curl", "mcrypt", "mbstring", "PDO", "pdo_mysql", "mysql", "mysqli"]
 }

第 43 行来自 /home/vcap/app/htdocs/includes/db。php

 $this->conn = new PDO($strcon, $this->user, $this->password)

Server Logs

有人可以帮我解决吗? 谢谢!

我可以解决它(在@Jeff 和@Marc 的帮助下),这是解决方案:

我唯一需要的是:

.bp-config>options.json

{
  "PHP_EXTENSIONS": ["bz2", "zlib", "openssl", "fpm", "tokenizer", "curl", "mcrypt", "mbstring", "pdo", "pdo_mysql", "mysql", "mysqli"]
}