2017-01-10 29 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

を見るためにfetch()を使用して、「それだけで両方の最初のものを示していません。?」あなたの希望する出力は何ですか?また、記録のために、そのクエリは安全です。 – bassxzero

+0

複数の呼び出しで動作する必要がある場合でも、関数を1回だけ呼び出すことができることを確認してください。 – user6632515

+0

'test($ row ['extra_cat_id']); test ($ row ['extra_cat_id']); '? – bassxzero

答えて

0

fetch()は、1行しかフェッチしません。PDOStatement::fetchを参照してください。

いずれかの反復1で1を取得、またはすべての結果をフェッチしfetchAll()メソッドを使用し、あなたが何を意味するかPDOStatement::fetchAll

関連する問題