2012-12-23 4 views
0

저는 mysql_ extentions를 사용하는 이전 응용 프로그램 중 일부를 준비하는 'doomsday'(mysql_ depreciation!)입니다. 현재 PDO로 변환 중입니다.함수 내에서 PDO 쿼리 호출

필자는 작업을 쉽게하기 위해 많은 기능을 사용합니다. 그러나 나는 일하는 함수 내에서 $ db-> query를 얻을 수 없다. 예를 들어이 함수를 변환 중입니다.

function GetAccount($account_id){ 
    $Query = mysql_query("SELECT name, balance, account_number FROM accounts WHERE id = '$account_id'"); 
    if (mysql_num_rows($Query) > 0){ 
     $Result = mysql_fetch_assoc($Query); 
     return $Result; 
    } else { 
     return false; 
    } 
} 

이 PDO 함수에 들어 있습니다.

function GetAccount($account_id){ 
    global $db; 
    $Result = $db->query("SELECT name, balance, account_number FROM accounts WHERE id = '$account_id'"); 
    if (count($Result) > 0){ 
     return $Result; 
    } else { 
     return false; 
    } 
} 

이 함수 외부에서 PDO 연결을 설정 했으므로 함수 외부의 쿼리와 잘 작동합니다.

두 번째 (PDO) 함수의 문제점은 $ Result가 비어 있다는 것입니다. var_dump는 bool (false)을 반환합니다.

무엇을 잊고 잘못 했습니까?

감사합니다 :)

+1

당신은 질문을 잊어 버린 것 같다. – Charles

+0

건배 :) $ 결과가 비어 있습니다. –

+0

쿼리를 다음과 같이 변경하면 어떻게됩니까? $ Result = $ db-> query ("SELECT name, balance, account_number FROM accounts WHERE id =". $ account_id); -> 또는 더 나은 아직 - 준비된 진술을 사용 ... – ethrbunny

답변

0

가 해결, 새로운 기능 : 내가 한

function GetAccount($account_id){ 
    global $db; 
    $Result = $db->prepare("SELECT name, balance, account_number FROM accounts WHERE id = '$account_id'"); 
$Result->execute(); 
$Result = $Result->fetch(); 

    if (count($Result) > 0){ 
     return $Result; 
    } else { 
     return false; 
    } 
} 

있는 유일한 방법이었다을 :

$Result->prepare("query stuff"); 
$Result->execute(); 
$Result = $Result->fetch();