2016-07-02 2 views
-2

prepare 문이 올바르게 작동합니다. 하지만 준비 문에 대한 벨로우 함수를 사용하면 빈 결과를 반환합니다. 내 코드 :PHP의 prepare 문에 대한 함수는 로컬 서버는 작동하지만 원격 서버는 작동하지 않습니다.

//prepare statement * all column 
function prepare_select_stmt($link, $sql, $param_type, array $param){ 
    $num_param = strlen($param_type); 
    $link->stmt_init(); 
    $stm = $link->prepare($sql); 
    $bindParam = '$stm->bind_param($param_type,'; 
    for($i=0;$i<=$num_param-1;$i++){ 
    $bindParam.='$param['.$i.'],'; 
    } 
$bindParam = rtrim($bindParam,',').');'; 
eval($bindParam); 

//$stm->bind_param($param_type, $param); 
$stm->execute(); 
$stm->store_result(); 

$meta = $stm->result_metadata(); 
$bindResult = '$stm->bind_result('; 
while($columnName = $meta->fetch_field()){ 
    $bindResult .= '$result["'.$columnName->name.'"],'; 
} 
$bindResult = rtrim($bindResult,',').');'; 
eval($bindResult); 


$numRows= $stm->num_rows(); 
    if($numRows>0){ 

    $stm->fetch(); 
    return array($numRows,$result); 
    }else{ 
    return array($numRows,array()); //empty array() means no result 
    } 
    $stm->close(); 
} 

이 기능은 로컬 서버에서 잘 작동하지만, 원격 서버에서 제로 결과를 반환합니다. 왜?

+0

찾을 수 있습니다. http://stackoverflow.com/questions/38031732/wrapping-a-prepared-statement-in-a-function/38031840#38031840 – Chay22

+0

오류 로그를 추가하십시오. –

+0

오류 로그를 추가하는 방법 @Govind –

답변

0

당신이이 기능을 읽을 수없는 파일 등을하지 않는 것이 일반적입니다하지 다른 하나 개 서버의 기능이 잘 작동 ...

그래서 당신은 또한 GDB

으로 추적 할 수있는 로그를 확인하는 경우

감사합니다.