2014-02-19 2 views
0

PDO가 새로 생겼습니다. 검색 키워드 인 을 사용하여 데이터베이스에서 데이터를 검색하려고했지만 키워드가 일치하는 첫 번째 행만 가져옵니다. 다른 행은 반환하지 않습니다. 여기 PDO select 쿼리는 첫 번째 행만 반환합니다.

는 내가 그것을 모두를 인쇄 할 수있는 방법 내 코드 ::

<?php 
    $dsn = 'mysql:host=localhost;dbname=cois'; 
    $user = 'root'; 
    $password = ''; 
    $pdo = new PDO($dsn, $user, $password); 


    $filmName = "shaban"; 

    $sql= "SELECT * FROM staff_info WHERE fname = :filmName"; 
    $stmt = $pdo->prepare($sql); 
    $stmt->bindParam(':filmName', $filmName, PDO::PARAM_STR); 
    $stmt->execute(); 
    $total = $stmt->rowCount(); 

    while ($row = $stmt->fetchObject()) { 
     echo $row->surname.'</br>'; 
    } 
현재

Here is my table

단지 첫 번째 행을 반환 .....이 shekidere

을 인쇄입니다 shekidere and kimweri

어떤 도움이 필요합니까?

+0

와일드 카드를 사용하고 있으며 일치하는 데이터가 하나뿐입니다. –

+0

이것이 여러분의 질문에 영향을 미치지는 않지만, 와일드 카드를 사용하지 않을 때는 왜 'LIKE'를 사용하고 있습니까? 그 외에도, 귀하의 루프가 귀하의 예제에 표시 한 데이터로 한 번만 실행하는 이유는 알 수 없습니다. PHP 외부의 DB에 대해 직접 쿼리를 실행하면 어떻게됩니까? –

+0

만약'LIKE'을'='로 변경하면 여전히 하나의 결과를 반환합니다. 그리고 PHP 밖에서 실행하면 첫 번째 결과가 반환됩니다. 어떻게 가능합니까? – internally1

답변

-2

물론 첫 번째 행에서는 항상 멈 춥니 다. while 대신 foreach을 사용하고 $arrayVariable[] = CurrentRow ;을 사용하여 다음으로 채울 수 있습니다.

+0

여전히 작동하지 않습니다. – internally1

관련 문제