2017-01-10 4 views
0

Я пытаюсь исправить мою предыдущую проблему дополнительным запросом.Невозможно вызвать функцию PHP несколько раз

Однако, когда я пытаюсь сделать несколько вызовов моей функции PHP, он показывает только первый, а не тот и другой.

Код:

<?php function test($colour) 
{ 

    $pdo = new PDO("pgsql:host=localhost;dbname=testdb","teun",""); // or use a global one 
    //$pdo = $GLOBALS['pdo']; 
    $sth = $pdo->prepare("SELECT * FROM threads WHERE cat_id = :cat_id AND thread_date=(
    SELECT max(thread_date) FROM threads 
    )"); 
$sth->bindParam(':cat_id', $colour, PDO::PARAM_STR, 12); 
$sth->execute(); 
$result = $sth->fetch(); 
echo $result ["thread_name"]; 
} 
?> 

(да, я знаю, что это небезопасно, но я хочу, чтобы достичь своей первой вещи, прежде чем я работать на безопасной части).

Я называю это с помощью теста ($row['extra_cat_id'])

Спасибо!

+0

Что вы имеете в виду под «он просто показывает первый и не так.?» Каков ваш желаемый результат? Также для записи этот запрос является безопасным. «(да, я знаю, что это небезопасно» неверно. – bassxzero

+0

То, что я могу вызывать функцию только один раз, даже если она должна работать с несколькими вызовами. – user6632515

+0

Например, 'test ($ row ['extra_cat_id']); ($ row ['extra_cat_id']); '? – bassxzero

ответ

0

fetch() только выборки 1 ряд, см. PDOStatement::fetch.

Либо итерация с использованием fetch() для извлечения 1 на 1, или использовать метод fetchAll() для извлечения всех результатов, см PDOStatement::fetchAll

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