4

我在共享主机服务器上安装 Roundcube 0.9.0。

我有激活 PDO 的 PHP 5.3.8 但是当我安装圆形立方体时,这是我得到的响应:

Check DB config
Fatal error: Undefined class constant 'MYSQL_ATTR_FOUND_ROWS' in /home/neuas/domains/anthonysalvador.info/public_html/webmail/program/lib/Roundcube/rcube_db_mysql.php on line 127

我已经联系了我的主人,他们拒绝了我。我联系了Roundcube,他们拒绝了我。有什么我可以忽略的吗?

这是代码的 PDO 部分,包括错误行:

102    protected function dsn_options($dsn)
103    {
104    $result = array();
105
106    if (!empty($dsn['key'])) {
107        $result[PDO::MYSQL_ATTR_KEY] = $dsn['key'];
108    }
109
110    if (!empty($dsn['cipher'])) {
111        $result[PDO::MYSQL_ATTR_CIPHER] = $dsn['cipher'];
112    }
113
114    if (!empty($dsn['cert'])) {
115        $result[PDO::MYSQL_ATTR_SSL_CERT] = $dsn['cert'];
116    }
117
118    if (!empty($dsn['capath'])) {
119        $result[PDO::MYSQL_ATTR_SSL_CAPATH] = $dsn['capath'];
120    }
121
122    if (!empty($dsn['ca'])) {
123        $result[PDO::MYSQL_ATTR_SSL_CA] = $dsn['ca'];
124    }
125
126    // Always return matching (not affected only) rows count
127    $result[PDO::MYSQL_ATTR_FOUND_ROWS] = true;
4

3 回答 3

2

我知道这是一个较老的话题,但我在寻找解决同一问题的方法时发现了它。这对我有用。我用文本编辑器打开 db.inc.php 并查看第 25-28 行,然后取消注释并编辑适用于我的安装的行。这删除了错误消息,安装完成。

//$rcmail_config['db_dsnw'] = 'mysql://roundcube:pass@localhost/roundcubemail';
// postgres example: 'pgsql://roundcube:pass@localhost/roundcubemail';
// Warning: for SQLite use absolute path in DSN:
// sqlite example: 'sqlite:////full/path/to/sqlite.db?mode=0646';
于 2014-01-21T18:24:34.523 回答
2

只花了几个小时追这个。我在 Centos 6.5 上使用 PHP 5.3.3 和 MySQL 15.1 (10.0.31 MariaDB)

对我来说,解决方法是获取 mySQL-pdo so 文件。通过执行yum install php-mysql-5.3.3-49.el6.x86_64 修复。该软件包是通过执行yum whatprovides php pdo*.so来选择的

我被以下路径引导: PHP 7 RC3:如何安装缺少的 MySQL PDO

这可能是矫枉过正 - 如果是的话请告诉我,但我还在 /etc/php.ini (第 925 行)中指定了扩展名 extension=/usr/lib64/php/modules/pdo_mysql.so

于 2017-07-07T20:34:31.300 回答
0

我在安装一些 php 脚本时遇到了类似的问题。解决方案是安装 php56-pdo_mysql。在 BSD 上,这可以使用以下命令完成:pkg install php56-pdo_mysql

希望这可以帮助

于 2017-03-03T15:40:29.373 回答