2009-10-19 8 views
9

は、私は私のテーブルからエコー午前の説明変数である:PhPでmysqlエントリが空であるかどうかを確認するには?ここ

$description = mysql_result($result,$i,"description"); 

時々、レコードi番目の$は空で、それ/説明なしで任意のデータを持っていません。私が何をしたいか

はエコーであることは、その後も、「上がらないものをすべてのレコードに利用可能な説明をエコーし​​ないよう

if (isset($description)){ echo "No description available";} 
else{ echo $desctipion;} 

は私の試みはしかし動作しない空のレコードのために、「説明はありません」空ではありません。

答えは何ですか? $の説明はまだ、その値が「空」であるにも関わらず、設定されているため

$qtd = mysql_affected_rows($result); 

答えて

25

isset($description)が真なります:

+0

完璧に働く、ありがとう。 –

+0

空を使用する必要はありません! – dynamic

+2

@ yes123:これについて詳しく教えていただけますか?あなたはすべてのアカウントでそれを必要としませんが、なぜそれを使用しないのですか? – Sk8erPeter

0

mysql_affected_rows機能を使用してください。あなたが使用する必要があるのはemptyです。

if (empty($description)) { 
    echo "No description available"; 
} else { 
    echo $description; 
} 
+1

カラムにNULL値が含まれていても、それは違いはありません。 –

+0

申し訳ありませんが、私は間違った質問を読んでいます。あなたの答えは正しくあります。 +1あなたのため: – Cesar

2

意味によって異なります。

mysql_resultは、無効な(行、フィールド)を指定した場合に発生する、エラーの場合はFALSEを返します。これを確認するには、同一性演算子===を使用します。値とタイプの両方をチェックします。等価演算子==empty()関数、およびifステートメントの条件付き評価は、すべて値をチェックしますが、型はチェックしません。

これは、空の文字列、空の配列、文字列'0'、値NULLなど、すべてがBoolean FALSEに等しいさまざまな値に違いがないことを意味します。 FALSEと平等(==)と条件の類似したセットの下でempty()戻りtrue、このより以来

if ($description === FALSE) { 
    throw new Exception("The row $i was out of range in query $query."); 
} else if ($description === NULL) { 
    // assuming that the description field has a default value of NULL 
    // * this one I'm not sure about.. the documentation for mysql_result claims 
    // that it returns a string, so this may never happen. 
    // It's left as an exercise for the reader. 
    throw new Exception("Uninitialized value in result row $i of db query $query"); 
} else if ($description === '') { 
    echo "No description available"; 
} else { 
    echo $description; 
} 

:あなたはそれについては本当に徹底的になりたい場合は

だからあなたは、次のような何かを行うことができます結果が実際に"0"である場合には、型チェックの厳密さが特に重要になります。

明らかに私は複数のハイパーリンクを投稿できないので、比較演算子( "http://php.net/manual/en/language.operators.comparison.php")または空の関数( "http://php.net/empty")のドキュメントにリンクすることができませんでした。幸いにも、そのセキュリティは比較的緩慢です。 Mwuh Hah!

関連する問題