次のコードを検討してください。
$conn = new PDO("connection string", "user name", "password");
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = "SELECT `id` FROM `users` WHERE `displayname` = :displayname";
$parms = array(':displayname' => 'Test');
$stmt = $conn->prepare($sql, array(PDO::ATTR_CURSOR => PDO::CURSOR_FWDONLY));
$stmt->execute($parms);
$res = $stmt->fetch();
echo $res == null;
より具体的には、次の行を検討してください。echo ($res == null);
に一致する行がデータベースにない場合、 -as expected -because のecho
値が実際に表示されます。ただし、 から返された結果がある場合は、何も生成されません。しかし、の値が配列であるため、 が生成されると予想していました。1
$res
null
$stmt->fetch();
echo
0
$res
結果を一貫して簡潔に比較して、結果があったかどうかを単純に判断するにはどうすればよいですか?