2012-06-18 51 views
0

我正在用PHP编写代码来将数据从mySQL数据库基本上映射到另一个数据库。我使用的代码如下:在蛋糕php中查询函数

$results = $this->query("select PT_FS_DATA_ID from PATIENT_FLOWSHEET_DATA where 
    DT_LAST_UPDATED_TIME = (select top 1 DT_LAST_UPDATED_TIME from PATIENT_FLOWSHEET_DATA 
    order by DT_LAST_UPDATED TIME desc) group by PT_FS_DATA_ID;"); 

但是,我得到一个错误:

syntax error, unexpected T_VARIABLE, expecting T_FUNCTION 

我到处看,这似乎是正确的语法。有什么我在这里失踪? 我试着把控制器也放在那里$this->controllerName->query,但那也没用。

全码:

class CaExtraFlowsheetFields extends CaBase { 
public $name = 'CaExtraFlowsheetFields'; 

/* 
NOTE: This is to take all the fields in flowsheet and 
maps their id's. 
*/ 
//public $useTable = 'ANSWER_ENTRY'; 
public $useTable = 'PATIENT_FLOWSHEET_DATA'; 
public $primaryKey = 'PT_FS_DATA_ID'; 

protected function getPrimaryKeyValue(
    $hospital_id, 
    $patient_id, 
    $admission_id = null 
) { 

return $patient_id; 
} 

//*CHANGE BEGIN* 
$results = $this->query("select PT_FS_DATA_ID from PATIENT_FLOWSHEET_DATA where 
DT_LAST_UPDATED_TIME = (select top 1 DT_LAST_UPDATED_TIME from PATIENT_FLOWSHEET_DATA 
order by DT_LAST_UPDATED TIME desc) group by PT_FS_DATA_ID;"); 

protected $filedMethodMappings = array(

    'Method_GO' => array(
     CaBase::KEY_MAPPING_LOGIC_COMPLEXITY => CaBase::LEVEL2_COMPLEXITY, 
     CaBase::KEY_FIELD_LOGIC_NAME   => 'wsMethod_GO', 
); 

//########################################################################// 
//Note[]>Block[]    // 
//>Method that calls LookUpField for every field in flowsheet //          // 
//########################################################################// 
public function wsMethod_GO ($params) { 
    foreach($results as $value){ 

     $questionName = ''.$value; 
     $msg_prefix = $this->name . "::" . __FUNCTION__ . ": ". "arrivez-vouz" ; 
     $ret = $this->wsLookUpField($params,$questionName,$msg_prefix); 
     return $ret; 
    } 
    unset($value); 
} 
//########################################################################// 

public function wsLookUpField($params,$questionName,$msg_prefix){ 

$arrayValues=array(); 
    try{  
     $hospital_id = $params[Constants::KEY_HOSPITAL_ID]; 
     $patient_id = $params[Constants::KEY_PATIENT_ID]; 
     $admission_id = $params[Constants::KEY_ADMISSION_ID]; 

     $msg_prefix = $this->name . "::" . __FUNCTION__ . ": ". "attendez-vouz: l'hopital= ".$hospital_id. 
     " patient= ".$patient_id." admission= ".$admission_id; 

     //shows info about given question name 
     $msg_prefix = "*!*!*!*Show me ---> ".$questionName." : ".$answer_entry_id. 
     " = aic: " .$answer_id_check; 

     $ret = array(); 

     //now with needed fields, grab the A_NAME: 
      $params = array(
      'conditions' => array(
       $this->name . '.PID'    => $patient_id, 
       $this->name . '.PT_FS_DATA_ID'  => $questionName,   
      ), 
      'order' => array(
       $this->name . '.' . $this->primaryKey . ' DESC' 
      ), 
      'fields' => array(
       $this->name . '.FS_VALUE_TEXT', 
      ) 
     ); 

    $rs = $this->find('first', $params); 

    /* check to make sure $rs has received an answer from the query 
     and check to make sure this answer is a part of the most recent 
     database entries for this note */ 
    if (false != $rs) { 
      try {     
       $msg = $msg_prefix . "Data obtained successfully."."<br>".$result; 
      $result = $rs; 
      $ret = WsResponse::getResponse_Success($msg, $result); 
     } catch (Exception $e) { 
      $msg = $msg_prefix . "Exception occurred."; 
      $ret = WsResponse::getResponse_Error($msg); 
     } 
    /*answer was not part of most recent database entries, meaning no 
     answer was given for this particular question the last time this 
     particular note was filled out. Message is given accordingly.*/ 
    } else { 
     $msg = $msg_prefix . "/No answer given."; 
      $ret = WsResponse::getResponse_Error($msg); 
     } 


    } catch (Exception $e) { 
       $msg = $msg_prefix . "Exception occurred."; 
       $ret = WsResponse::getResponse_Error($msg); 
     }   
return $ret; 
} 
+0

您在模型上进行查询时?另外,查看错误引用的行号。 – jeremyharris

+0

行号是$ results = $ this-> query(“从PATIENT_FLOWSHEET_DATA中选择PT_FS_DATA_ID,其中,当我执行查询时,我在模型中 – nathpilland

+0

您能显示更多代码吗?这确实是有效的代码,所以我觉得我们在其他地方错过了一些东西 – jeremyharris

回答

2

这里是你在做什么:

class ABC { 

    $result = 'whatever'; 

} 

你不能声明一个变量有!


代码需要一个方法/函数里面......

class ABC 
{ 
    public function wsMethod_GO ($params) 
    { 
     $result = 'whatever'; 
    } 
} 
+0

你能解释一下吗?我不确定你的意思。 – nathpilland

+0

哦!我甚至都没有想过这件事。最近几天。谢谢!!但是现在我得到了意想不到的T_PUBLIC。我需要声明一些私人的东西才能使之有效吗? – nathpilland