2015-01-27 4 views
0

i를 ModX RTFM에서이 붙여 거의 복사/:ModX PDO SQL은 빈 배열을 반환

$results = $modx->query("SELECT * FROM `saved_jobs` WHERE `job_id` = $job_id AND `user_id` = $user"); 

if (!is_object($results)) { 
    return 'No result!'; 
} 
else { 

    $r = $results->fetchAll(PDO::FETCH_ASSOC); 
    echo $r; 
    echo "<br>count " . count($r); 
    print_r($r); 

} 

그러나 데이터베이스에 레코드가 없다하더라도 난 여전히 '다른 사람'이 발생 얻을. 줄 echo "count " . count($r); 출력을 생성합니다 : count 0

아무도 무슨 일이 일어나고 그것을 고칠 방법을 알고 있습니까?

답변

1

쿼리가 성공하면 첫 번째 문으로 개체를 만듭니다.

는 [또한 문서에서] 들여다 봐도 :

개체가 실제로 결과 세트가 포함되어있는 경우 당신이 발견되고 싶지
$result = $modx->query("SELECT * FROM modx_users WHERE id='blah'"); 

echo '<pre>'; var_dump($result); echo '</pre>'; 

if (!is_object($result)) { 
    return 'No result!'; 
} 
else { 
    $row = $result->fetch(PDO::FETCH_ASSOC); 
    return 'Result:' .print_r($row,true); 
} 

:

$result = $modx->query("SELECT * FROM modx_users WHERE id='1'"); 

echo '<pre>'; var_dump($result); echo '</pre>'; 

if (!is_object($result)) { 
    return FALSE; 
} 

if(sizeof($result) > 0){ 

    while($row = $result->fetch(PDO::FETCH_ASSOC)){ 
    echo'Result:' .print_r($row,true); 
    } 

} 

그래서 다음 중 하나를 수행 할 수 있습니다 테스트를 $ result 변수의 크기 또는 while 루프 & 테스트를 실행하십시오.