2013-05-13 9 views
1

서버에 mysqlnd 드라이버가 없으므로 새 쿼리 클래스가 클라이언트 새 서버에서 작동하지 않습니다. 어떻게 mysqlnd를 사용하지 않고 모든 클래스를 망가 뜨리지 않는 방법으로 변환하겠습니까? call_user_func_array()
당신은 내가 PDO가 밖으로 않지만 mysqli이 모든 불필요한 힘드는 물건을 필요로 왜 아무 생각이없는 manual page쿼리 메서드가 작동하지 않습니다 - mysqlnd 드라이버가 누락되었습니다.

에 댓글 섹션에서 몇 가지 솔루션을 찾을 수 있습니다 사용

function query($query, $params=NULL) { 
    if($params!=NULL) { 
     $stmt = $this->mysqli->prepare($query); 
     //must turn $params into reference array to bind 
     $ref = array(); 
     foreach ($params as $key => $value) { 
      $ref[$key] = &$params[$key]; 
     } 
     call_user_func_array(array($stmt,'bind_param'),$ref); 
     $stmt->execute(); 
     $result = $stmt->get_result(); 
    } else { 
     $result = $this->mysqli->query($query); 
    } 
    if($result){ 
     $rowArray = array(); 
     while ($myrow = $result->fetch_object()) { 
      $rowArray[] = $myrow; 
     } 
     return $rowArray; 
    } 
    return false; 
} 

답변

2

아주 유사한 접근 상자. 곧 출시 될 코드와 다음 코드를 비교하십시오.

function query($query, $params=NULL) { 
    $stmt = $this->pdo->prepare($query); 
    $stmt->execute($params); 
    return $stmt->fetchAll(); 
} 
+0

PDO는 방법입니다. – steeped