-1
$STH = $DBH -> prepare( "select * from table where id = :id" );
$STH -> bindParam( ':id', $_SESSION['id'], PDO::PARAM_INT, 4 );
$STH -> execute();
$result = $STH -> fetch();

if( isset( $result["id"] ) ) {
    // do this if records are returned
} else {
    // do this if no records are returned
}

なんらかの理由で、ifレコードが返されなくてもステートメントの最初の部分が実行されるのはなぜですか? のせいissetだと思いますが、それも何を変更すればよいかわかりませんか?

4

2 に答える 2

3

より良いアプローチは、これを条件として使用することです。

if($STH->rowCount()>0){
    // do this if records are returned
} else {
    // do this if no records are returned
}
于 2013-10-07T13:21:51.493 に答える
2

このように置き換えてみてください

  if ($STH->rowCount() > 0) {

  } else {

  } 

http://php.net/manual/en/pdostatement.rowcount.php

于 2013-10-07T13:20:48.630 に答える