2013-05-14 100 views
3

我在共享主機服務器上安裝Roundcube 0.9.0。Roundcube安裝,獲取MYSQL_ATTR_FOUND_ROWS致命錯誤

我不過PHP 5.3.8與PDO被激活,當我安裝roundcube,這是什麼反應,我得到:

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; 
+0

我認爲'PDO :: MYSQL_ATTR_FOUND_ROWS'僅在**之後**你執行查詢。 – hjpotter92 2013-05-14 11:39:11

+0

您確定您已連接到數據庫嗎?似乎你沒有任何聯繫。 – BlueCola 2013-05-14 11:30:15

+0

好吧,我已經添加了所有的數據庫信息,因爲它已經設置...有沒有辦法檢測到這種連接? – antonanton 2013-05-14 11:34:43

回答

1

我知道這是一個老話題,但我發現它,而尋找一個解決同樣的問題。這是對我有用的東西。我用文本編輯器打開了db.inc.php並查看了第25-28行,然後取消了註釋並編輯了應用於我的安裝的行。這刪除了錯誤信息並完成安裝。

//$rcmail_config['db_dsnw'] = 'mysql://roundcube:[email protected]/roundcubemail'; 
// postgres example: 'pgsql://roundcube:[email protected]/roundcubemail'; 
// Warning: for SQLite use absolute path in DSN: 
// sqlite example: 'sqlite:////full/path/to/sqlite.db?mode=0646'; 
0

我在安裝一些php腳本時遇到了類似的問題。 解決方案是安裝php56-pdo_mysql。 在BSD這可以使用下面的命令來完成: PKG安裝php56-PDO_MYSQL

希望這有助於

1

就花了幾個小時追逐下來。我正在MySQL CentOS 6.5上使用PHP 5.3.3和MySQL 15.1(10.0.31 MariaDB)

對我來說,修復是爲了獲得mySQL-pdo so文件。通過執行修復yum安裝php-mysql-5.3.3-49.el6.x86_64。這包是由執行百勝whatprovides PHP PDO選擇*。所以

我帶領下來通過這條路徑: PHP 7 RC3: How to install missing MySQL PDO

這可能是矯枉過正 - 並請讓我知道,如果它是,但我還在/etc/php.ini(第925行)中指定了擴展名 extension =/usr/lib64/php/modules/pdo_mysql.so