2014-02-19 6 views
0

Я новичок в PDO. Я пытался получить данные из базы данных с помощью ключевого слова поиска , но я получаю только первую строку, в которой соответствует ключевое слово. Он не возвращает другие строки.PDO выбрать запрос вернуть только первую строку

Вот мой код ::

<?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

Вы используете LIKE wild-card и сопоставляете, возможно, только одну информацию. –

+0

Не то, чтобы это повлияло на ваш вопрос, но почему вы используете 'LIKE', когда вы не используете какой-либо шаблон? Вне этого, я не знаю, почему ваш цикл будет выполнять только один раз с данными, которые вы показываете в своем примере. Что происходит, когда вы запускаете запрос непосредственно против БД вне PHP? –

+0

, когда я изменяю 'LIKE' на' = 'он все равно возвращает один результат. И когда я запускаю его за пределами php, он также возвращает первый результат, как это возможно? – internally1

ответ

-2

Конечно, он всегда останавливается в первом ряду. Вы можете использовать foreach вместо while и использовать $arrayVariable[] = CurrentRow ;, чтобы заполнить его затем следующим.

+0

он все еще не работает. – internally1

Смежные вопросы