teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

1

文言を修正しました

2019/07/31 14:17

投稿

SugiuraY
SugiuraY

スコア318

title CHANGED
File without changes
body CHANGED
@@ -1,4 +1,4 @@
1
- 例えば、テーブルに該当するブルがない場合、以下の$resultの結果をdumpした場合、空の配列を返してくれるわけではなくfalse(boolean)が返されます。こちらのような[記事](http://lovecall.hatenablog.com/entry/2012/04/07/SELECT_%E3%81%97%E3%81%A6%E8%A9%B2%E5%BD%93%E3%81%AA%E3%81%97%E3%81%A0%E3%81%A3%E3%81%9F%E5%A0%B4%E5%90%88%E3%80%81FALSE_%E3%81%8C%E8%BF%94%E3%81%A3%E3%81%A6%E3%81%8F%E3%82%8B%E3%82%8F%E3%81%91)を見てこれがfalseであるか否かの判定をするべきかを少し立ち止まって考えてみました。
1
+ 例えば、テーブルに該当するレコがない場合、以下の$resultの結果をdumpした場合、空の配列を返してくれるわけではなくfalse(boolean)が返されます。こちらのような[記事](http://lovecall.hatenablog.com/entry/2012/04/07/SELECT_%E3%81%97%E3%81%A6%E8%A9%B2%E5%BD%93%E3%81%AA%E3%81%97%E3%81%A0%E3%81%A3%E3%81%9F%E5%A0%B4%E5%90%88%E3%80%81FALSE_%E3%81%8C%E8%BF%94%E3%81%A3%E3%81%A6%E3%81%8F%E3%82%8B%E3%82%8F%E3%81%91)を見てこれがfalseであるか否かの判定をするべきかを少し立ち止まって考えてみました。
2
2
 
3
3
  1) 実際にはこのfalse(boolean)と言う結果は、結果が空であれば真偽型のfalseを返すという仕様ではなく、不適切な処理でこのような結果になっているのでしょうか?実際にこの結果のphpやmysqlが意図しているところをご存知であれば教えてください。
4
4
  2) もし「テーブルにが該当する行がない」という本来の意味で結果を得たい場合にはarray(0){}であるべきかとも思うのですが、その場合はfetchAll()が適切なのでしょうか?もしそうであるとすれば1)と関連してなぜfetch()では期待する空の配列を返してくれないのでしょうか?