PHP+PDOでselect文を実行しようとすると、レコードがない場合、
「Call to a member function fetch() on a non-object in」
というエラーが出ます。データが空なので、オブジェクトがありませんと言われているみたい。
1 2 3 4 5 6 7 8 9 |
$sql = "SELECT * FROM hogetable where hoge=1 ' $stmt = $pdo -> query($sql); while($row = $stmt -> fetch(PDO::FETCH_ASSOC)) { ・・・ } |
1 2 3 4 5 6 |
if($stmt->rowCount()){ while($row = $stmt -> fetch(PDO::FETCH_ASSOC)) { } } |
と、rowCount()でレコードの有無を判別しようとすると、今度は、
Call to a member function rowCount() on a non-object
と、rowCount()がエラーに。レコードが無いときは、、$stmtが空になってるので、
1 2 3 4 5 6 7 8 9 |
if(!empty($stmt)){ while($row = $stmt -> fetch(PDO::FETCH_ASSOC)) { } } |
で、上手く判別できました。
たまにハマるので、メモしておきます。
コメント