2012-12-18 106 views
1

我需要在cakephp中用戶顯示錶格查詢我已經嘗試過手動編寫SHOW table status FROM DATABASE like 'table_name'但我擔心的是當我住這個網站時,我的數據庫名稱會相應改變,我不想手動更改它。在cakephp中顯示錶格

我也試過下面的代碼,但我找不到我的表細節。

$db =& ConnectionManager::getDataSource('default'); 
$modelname = "service_requests"; 
$query = $db->describe($modelname);

我期待我的查詢返回如下所示的內容。

[TABLES] => Array 
(
    [Name] => service_requests 
    [Engine] => MyISAM 
    [Version] => 10 
    [Row_format] => Dynamic 
    [Rows] => 201 
    [Avg_row_length] => 478 
    [Data_length] => 96536 
    [Max_data_length] => 281474976710655 
    [Index_length] => 4096 
    [Data_free] => 400 
    [Auto_increment] => 202 
    [Create_time] => 2012-12-13 17:10:16 
    [Update_time] => 2012-12-18 10:27:34 
    [Check_time] => 
    [Collation] => utf8_general_ci 
    [Checksum] => 
    [Create_options] => 
    [Comment] => 
)

非常感謝。

+0

'=&'在這個實例中是壞的,應該拋出警告錯誤 - 對象始終是引用。至於你的問題 - 你必須在你的配置設置中指定數據庫名稱,以便從那裏抓取它來組成查詢,而不是硬編碼它。 – prodigitalson

+0

致命錯誤:無法通過引用傳遞參數1這是我得到的錯誤 –

+0

使用:'$ db = ConnectionManager :: getDataSource('default');' – prodigitalson

回答

1

Ohhh該死的太容易了,我對此太過粗暴了。

以下代碼爲我工作像魅力。

我分享這個代碼,所以它會幫助別人。

$database_name = $this->ServiceRequest->getDataSource()->config['database']; 

$query = $this->ServiceRequest->query(
      "show table status from 
       " . $database_name . " 
       like '" . $this->tableName . "'"); 
pr($query);

我得到了我想要的結果。

感謝您的幫助@dskanth和@prodigitalson。