2017-12-05 15 views
-1

queryempty result setを返し、fetching methodPDO::FETCH_ASSOCであるのが不思議ですarrayで取り込まれたときの実際のvalueは何ですか?それはちょうどfalseまたはempty arrayまたは0ですか?MySQLをチェックする方法は空の結果セットを返しましたか?

そして、どのように私は、次のコンテキストでlet'sが言うことを確認することができます。 $ajResult = $query1->fetchAll(PDO::FETCH_ASSOC);if ($ajResult ????) {....} else {};

答えて

2

使用rowCount

をPDOStatement :: ROWCOUNTが - 最後のSQL文によって影響を受けた行の数を返します。

if ($query1->rowCount() > 0) { 
    // not empty 
} else { 
    echo 'nothing'; 
} 

fetchAllので戻りますn配列の場合は、countを使用してクエリから返される行数を取得できます。

if (count($ajResult)) {...} 
+0

を持っているので、もし '$ ajResult'はからの戻り値であるとして、それは' $のquery1'すべきではない、行の配列を返します。 'fetchAll'ですか? –

+0

ありがとう、私はそれを変更しました。 – julekgwa

+0

PDOStatement :: rowCountを使用すると注意してください...対応するPDOStatementオブジェクトによって実行された最後のDELETE、INSERT、またはUPDATEステートメントの影響を受ける行の数を返します。関連するPDOStatementによって最後に実行されたSQL文がSELECT文であった場合、その文で返された行数を返すデータベースもあります。ただし、この動作はすべてのデータベースで保証されるものではなく、ポータブルアプリケーションには依存しないでください。 [Manual](http://php.net/manual/en/pdostatement.rowcount.php)を参照してください。 –

1

fetchAll配列が0の要素...

if (count($ajResult) == 0) {....} else {} 
関連する問題