2011-08-05 151 views
2

上我得到這個錯誤,當我嘗試運行的Zend_Db_Adapter_Pdo_Mysql構造:PDO擴展未加載共享主機

The PDO extension is required for this adapter but the extension is not loaded

我使用shared host,我無法改變php.ini

有沒有解決方法?

回答

2

好改變您的託管服務提供商,你可以試試下面的事情的一部分:

  • 使用Zend_Db_Adapter_Mysqli(假設mysqli可用)
  • 寫下您的使用mysql_*函數(或使用existing one
  • 嘗試動態加載PDO擴展(假設它可用且啓用了enable_dl,safe_mo德已關閉):
dl('pdo.so'); 
    dl('pdo_mysql.so'); 
+0

我必須寫'dl('pdo.so'); DL( 'pdo_mysql.so');'? –

+0

我認爲在應用程序的引導方法被調用之前,最好的地方在你的「index.php」中。但是如果你在bootstrap.php中初始化你的數據庫,你也可以在數據庫初始化之前把它放在那裏。 – vstm

+0

我嘗試這個並得到這個錯誤'調用未定義函數dl()in ...'。 –

1

嘗試切換到Mysqli或其他適配器?

應該相當簡單,取決於Zend應用程序的配置,更改 db適配器值。

以JSON類型的配置是

"db": { 
    "adapter": "mysqli", 
    ... 
} 

PHP數組配置:

array(
    'database' => array(
     'adapter' => 'Mysqli', 

燕麗類型:

db.adapter = "Mysqli" 

這一切,當然,如果你是一個分貝適配器,並將其用作引導資源。如果沒有,只是instantianate另一個數據庫適配器:

$db = new Zend_Db_Adapter_Mysqli(); 
+0

'Mysqli'適配器不可用時,我得到這個錯誤'mysqli擴展需要這個適配器,但擴展並不loaded'。 –