2013-03-25 212 views
0

我需要創建的Joomla數據庫配置的定製陣列,所以我做喜歡:如何將對象轉換爲數組?

但得到一個錯誤:Fatal error: Cannot use object of type JDatabaseMySQLi as array in /Sites/joomla/administrator/components/com_***** on line 217

我也試過這樣:

die(var_dump($config->getValue('config.host'))); 
//string(9) "localhost" 

$temp_var = $config->getValue('config.host'); 
die(var_dump($temp_var)); 
//string(9) "localhost" 
+0

嘗試使用g)$ config-> getValue('config.host'); – 2013-03-25 09:09:32

+0

@RohitKumarChoudhary已經嘗試過 - 沒有運氣。 – user1692333 2013-03-25 09:10:28

+0

你可以print_r($ config-> getValue('config.host')); – 2013-03-25 09:11:19

回答

0

在的Joomla 3.0

你可以得到這樣的每個值:

$config = JFactory::getConfig(); 
$db['default']['hostname'] = $config->get('host'); 
// Show them 
var_dump($config); 
var_dump($config->get('host')); 
var_dump($db); 
0

的問題是$分貝一部分,而不是$配置。 您試圖以數組形式威脅$ db對象(可能由JFactory::getDbo()創建)。

如果這是您想要用於某事的自己的變量,請嘗試將其重命名爲其他內容以避免與顯然已存在的$ db對象發生衝突。

或者使用JDatabase類此處描述,如:http://docs.joomla.org/Accessing_the_database_using_JDatabase

0

你的錯誤信息是非常明確的 - 你要使用和對象調用JDatabaseMySQLi$db數組。如果您創建$db如下:

$db = JFactory::getDBO(); 
// N.B. $db is already setup for the Joomla! database. 

的你有Joomla的數據庫連接器object(使用庫MySQLi adpater)!安裝本地數據庫(即您的configuration.php中的一個設置)。這不是一個array - 但你的代碼行正試圖使用​​它作爲一個array

$db['default']['hostname'] = $config->getValue('config.host'); 

注:這條線上面是錯誤

如果你想建立一個數據庫的連接使用不同於存儲在您的configuration.php(稱爲遠程數據庫)中的憑證,您可以使用以下方法:

$options = array(
    'host'  => 'remote_host', 
    'user'  => 'remote_user', 
    'password' => 'remote_password', 
    'database' => 'remote_name', 
    'prefix' => 'remote_table_prefix', 
); 

$rDBC = JDatabase::getInstance($options); 
相關問題