2012-12-18 4 views
1

cakephp에서 show table 쿼리를 수동으로 입력해야합니다. 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 Damn 너무 쉽고 너무 거칠어졌습니다.

다음 코드는 나를 위해 부적처럼 작용했습니다.

다른 사람들에게 도움이되도록이 코드를 공유하고 있습니다.

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

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

내가 원하는 결과를 얻습니다.

@dskanth 및 @prodigitalson 도움에 감사드립니다.

관련 문제