2013-07-07 2 views
0

PHP를 처음 사용하는 방법에 익숙하지 않아 다음 코드에서 루프를 사용할 때 도움이 필요합니다. 여기 PHP는 어디에서 사용해야합니까? While 루프

쿼리 기능

function query($query, $bindings, $conn) { 
    $stmt = $conn->prepare($query); 
    $stmt-> execute($bindings); 
    $result = $stmt->fetchAll(); 

    return $result ? $result : false; 
} 

쿼리

$home_team = query('SELECT home_team FROM premier_league 
        WHERE match_date >= :current_date 
        AND pre_selected = :pre_selected 
        ORDER BY match_date LIMIT 5', 
        array('current_date' => $current_date, 
        'pre_selected' =>$pre_selected), 
        $conn); 
if (empty($home_team)){ 
    echo "No Match Selected for Today."; 
} else { 
    print_r($home_team); 
} 

방법이며 나는이 쿼리에 대한 루프 동안 사용 어디에?

+2

의 foreach ($ 행으로 $ 결과) 당신이'stmt-> fetchAll() $를 반환하는 방식으로 더 여기있는 동안 만 foreach는 –

+0

{ 은 $ 행 [ 'ID'] 에코} 충분할 것입니다 –

+0

필요하지 –

답변

0

블록 else에서 일단. 이것은 반복적으로 실행하는 쿼리에 유용하며 매개 변수 값만 변경하면됩니다. 따라서 : - 준비는 한 번만해야합니다. - 실행은 루프 내에서 수행되어야합니다.

잠시 동안 쿼리를 실행하는 경우 준비 오버 헤드가 그럴 가치가 없습니다.

0

여기

function query($query, $bindings, $conn) { 
    $stmt = $conn->prepare($query); 
    $stmt-> execute($bindings); 
    return $stmt->fetchAll(); 
} 
$sql = 'SELECT home_team FROM premier_league WHERE match_date >= ? 
      AND pre_selected = ? ORDER BY match_date LIMIT 5'; 
$home_team = query($sql,array($current_date, $pre_selected), $conn); 
foreach ($home_team as $row) { 
    echo $row['home_team']."<br>\n"; 
} 
-1

준비된 쿼리를 사용하는 아이디어는 서버가 한 번 쿼리를 파싱 및 쿼리 계획을 생성하는 것입니다 더하면서 필요 없어

else { 
    print_r($home_team); 
    /* here 
    foreach ($home_team as $team) { 
     echo $team->home_team . '<br>'; 
    }*/ 
} 
+0

감사합니다. – Joy07

+0

준비된 쿼리를 사용하는 것에 대한 아이디어가 잘못되었습니다. 적절한 쿼리 형식을 만들기 위해 준비된 문 동적으로 쿼리에 추가 할 가치가있을 때마다 사용해야합니다. –

+0

http://en.wikipedia.org/wiki/Prepared_statement에서 이전에 내가 말한 내용을 확인하십시오. – Tarik

0

PDOStatementTraversable을 구현하므로 fetchAll을 사용하면 오버 헤드가 발생합니다. `;

function query($query, $bindings, $conn) { 
    $stmt = $conn->prepare($query); 
    $stmt->execute($bindings); 
    $stmt->setFetchMode(PDO::FETCH_ASSOC); 
    return $stmt;   
} 

$home_team = query...; 
foreach ($home_team as $row) { 
    echo $row['home_team']."<br>\n"; 
}