コード例;
$stmt = $db->prepare('SELECT u.username, u.display_name FROM users u WHERE u.id = :userId');
$stmt->bindValue(':userId', 10);
$stmt->execute();
準備->実行を使用します。クエリが最大1行を返すことが確実な場合。クエリが行を返したかどうかを確認する簡単な方法はありますか?全員が「rowCount」で検証しているのがわかりますが、よりクリーンな方法はありませんか?
この記事:http : //www.christiansouth.com/php/pdo-getting-started-part-2-pdostatement/states;
クエリが成功した場合はTRUE、失敗した場合はFALSE。ここでつまずくのは、SQLにエラーがある場合にのみFALSEを返すことです。したがって、SQLは有効であるが行セットを返さない場合でも、TRUEの戻り値が得られます。
このステートメントは正しいですか?php.netは以下についてのみ話しているので:
成功した場合はTRUEを返し、失敗した場合はFALSEを返します。
だから、もう一度質問をまとめます:
- $ stmt(上記の例)をブール値として使用して行が返されたかどうかを検証できないのは本当ですか?
- ifでラップされた「rowCount」よりもきれいに見えるこれに対する解決策はありますか?