-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();
}
이 기능은 로컬 서버에서 잘 작동하지만, 원격 서버에서 제로 결과를 반환합니다. 왜?
찾을 수 있습니다. http://stackoverflow.com/questions/38031732/wrapping-a-prepared-statement-in-a-function/38031840#38031840 – Chay22
오류 로그를 추가하십시오. –
오류 로그를 추가하는 방법 @Govind –