0

私はフォームを作成しており、現在入力の検証に取り組んでいます。

基本的に私がやりたいことは、彼らが何かを入力したことを確認することです。そうであれば、それをエスケープして変数に追加し、そうでなければ、後で表示される可能性のあるエラーのリストにエラーを追加します。

私は現在持っています:

$category = isset($_POST['category']) ? mysqli_real_escape_string($DBConnect, $_POST['category']) : $error[] = "Which Category is this request for?";

$category で var_dump を実行すると (入力された場合) NULL が返され、入力されていない場合は STRING(35) が返されます。また、次のように行を変更してみました。

isset($_POST['category']) ? $category =  mysqli_real_escape_string($DBConnect, $_POST['category']) : $error[] = "Which Category is this request for?";

しかし、var_dump はまだ NULL だと言っています。

誰かが私が間違っていることを説明してもらえますか?

乾杯、

4

2 に答える 2

2

issetその変数が設定されているかどうかのみをチェックしますNULL。

空欄もチェックしたい方はemptyこちらをご利用くださいtrue

次のものは空と見なされます。

  • "" (空の文字列)
  • 0 (整数としての 0)
  • 0.0 (浮動小数点として 0)
  • "0" (文字列としての 0)
  • ヌル
  • 間違い
  • array() (空の配列)
  • $var; (変数は宣言されていますが、値はありません)
于 2012-08-29T04:17:59.893 に答える
0

mysql_real_escape_string は、文字列が最初の引数であり、接続が 2 番目の引数であると想定しています。それらを交換してみてください:)

アップデート:

おっと!私は間違って読みましたが、Jack は正しいです。投稿は mysql ではなく mysqli について話しました。ごめん。

于 2012-08-29T04:20:19.007 に答える