0

空の値がMySQLデータベースに入らないようにしたい

私は以下を使用していますが、何らかの理由で空の値を通過させています...

if (trim($var)= '' || !isset($var)){
header("Location:page.php?er=novariablel");
}
else {
...insert into database
}

varの値を設定する複雑なものがたくさんあることに注意してください。そのため、=''との両方!issetが必要なのは、どちらかが当てはまる可能性があるためです。

orステートメントで何かが欠落していますか?つまり、両方がtrueの場合はfalseと評価されます。または私は何が間違っているのですか?

4

6 に答える 6

5

ステートメント内に等式比較演算子のが欠けてい=ます。試す:if

if (trim($var) == '' || !isset($var)){
于 2012-05-18T02:54:29.477 に答える
3

試す:

if (!isset($var) || empty(trim($var))){

empty()変数に値がないかどうかを確認するためのより良い方法です。以下がtrueを返すことに注意してください。

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

  • ""(空の文字列)
  • 0(整数として0)
  • 0.0(フロートとして0)
  • 「0」(文字列として0)
  • ヌル
  • FALSE
  • array()(空の配列)
  • var $ var; (宣言された変数ですが、クラスに値がありません)
于 2012-05-18T02:52:23.813 に答える
0

試す:

$var = trim($var);
if (!empty($var)){
  //not empty
}
于 2012-05-18T02:53:25.837 に答える
0

試す

if (strlen(trim($var)))==0
于 2012-05-18T02:56:26.933 に答える
0

また、データベーステーブル属性にNULL値を受け入れないという制約を設定する必要があります。そうすると、データベースにエントリが作成されなくなります。

于 2012-05-18T03:53:37.790 に答える
0

@ジョンこれは素晴らしいアドバイスです。

empty(trim($var))

私は6年間プログラミングを行ってきましたが、変数が空かどうかを確認する前に、変数をトリミングすることを考えたことはありませんでした。

于 2012-06-03T01:33:46.803 に答える