- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:MySQLで0で検索できない)
MySQLで0で検索できない
このQ&Aのポイント
- MySQLのテーブルにおいて、numberが0の行を検索することができません。
- PHPのソースコードを使用して、numberが0の行を取得しようとしていますが、うまくいきません。
- なぜnumberが0の行を取得できないのか、またどうすればnumberが0の行を取得する方法を教えてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
>if($rows && !empty($_POST['numberSearch'])){ $_POST['numberSearch']が"0"のときemptyで評価すると正となります !emptyですから偽ですね emptyは理論的な空ですから 空文字列""、整数の0、浮動小数点数の0、文字列の"0"、NULL、FALSE、 空の配列array()、変数が宣言されているが値が設定されていない変数 などすべて空とみなします。 http://php.net/manual/ja/function.empty.php ちなみにSQLで参照するのにWHERE句に検索文字を入れない意味がわからない。 また古いmysql_系の関数を使い続けるはデメリットしかないので リプレースを検討してください
その他の回答 (1)
- tkf-
- ベストアンサー率58% (821/1398)
回答No.1
> if ($row["number"] == $_POST['numberSearch']) { ここで、「文字」として比較されてしまっているのではないでしょうか。 おそらく、$row側は数値、$_POST側は文字であり、それらを無理矢理比較しているから。 $row側の数字を文字に変換してあげれば、良いのではないでしょうか。
質問者
お礼
$row側を文字に変換してやってみます。 ありがとうございます。
お礼
ありがとうございます。 !emptyをissetに変えたらうまくいきました。 where句に参照文字を入れるというのは、sql文にwhere句を入れて実行するということですよね。そちらも今後使います。 mysql_~と続く関数は古いものなのですね。 今後それを使わない方法でやりたいと思います。