0

別の簡単な答えを見つけようとしていますが、複雑な例しか見つかりません。

表示する結果がある場合は単純にテーブルにクエリを実行しようとしています。表示する結果がある場合はそれらをループし、ない場合はメッセージを表示します-残念ながらすべての例は、前ではなくwhileループの一部として「フェッチ」を見つけることができるので、私はやろうとしています:

$stm = $PdoObj->prepare("SELECT * FROM NEWS_articles");
$stm ->execute();
$results = $stm ->fetch();

if($results==null){
    echo "<p>No dice, try other criteria</p>";
}else{
    foreach($results as $row){
        echo $row["articleName"];
    }
}        

次の質問は、私が達成しようとしていることに近いものですが、満足のいく回答は得られませんでした

どんな助けでも大歓迎です!

ありがとう

ボブ

4

3 に答える 3

3

する必要はありませfetch()fetchAll()

于 2013-08-19T11:12:09.993 に答える
2

あなたの常識の使用で述べたようにfetchAll。結果がない場合は、空の配列が返されます。

$results = $stm->fetchAll();
if(empty($results))//or  if(!$results)  or  if(count($results)==0)  or if($results == array())
{
    echo 'Nothing found';
}
else
{
    foreach($results as $result)
    {
        //do stuff
    }
}

返された行数を取得する公式の方法は次のrowCount()とおりです。

$stm->execute();

if($stm->rowCount() == 0)
{
    echo 'Nothing found';
}
else
{
    //do your stuff
}

fetchAllただし、この結果を使用して結果セットのサイズを決定できるため、既に呼び出している場合は必要ありません。

于 2013-08-19T11:12:34.713 に答える
0

の代わりにfetch()、 を使用しますfetchAll()

fetchAll— 結果セットのすべての行を含む配列を返します

于 2013-08-19T11:14:26.247 に答える