Nasıl mysql giriş PhP boş olup olmadığını kontrol etmek?

3 Cevap php

Burada benim tablosundan yankılanan am açıklama değişkendir:

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

bazen rekor i'inci $ boştur ve / içinde hiçbir açıklama herhangi bir veri yoktur.

Ne yapmak istiyorum boş olan kayıtlar için echo "Açıklama yok" dir

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

O zaman bile bu boş değil yani her kayıt için yok açıklama olarak yankıları benim girişimi olsa da çalışmıyor.

Cevabı nedir?

3 Cevap

$ Açıklamasına hala ayarlanmış olduğundan isset($description) değeri 'boş olsa bile, gerçek neden olacaktır. Ne kullanmak zorunda olan empty.

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

Bu ne anlama bağlıdır.

mysql_result geçersiz (satır, alan) belirtilen ne olur, hangi başarısızlık durumunda FALSE döndürür. Bu kontrol için, değeri ve tipi hem denetler özdeşik operatörünü '===', kullanmak yapmak isterdim. Eşitlik operatörü ==, boş () fonksiyonu ve koşullu değerlendirme deyimi tüm değerini ancak türünü değil kontrol ederseniz.

Bu, bu yöntemlerden birini kullanarak tüm boş dizeler, boş diziler, dize '0 've değer NULL gibi, YANLIŞ Boole eşit çeşitli değerler arasında hiçbir fark yok demektir.

Eğer bu konuda gerçekten titiz olmak istiyorsanız Yani aşağıdaki gibi bir şey yapabilirsiniz:

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;
}

Boş () YANLIŞ ile bir eşitlik (==) için koşulların benzer bir set altında true döndürür beri, bu tür denetimi daha sıkı sonucu aslında "0" olabilir durumlarda özellikle önemli olacaktır.

Görünüşe göre ben bir köprü daha yayınlamak için izin verilmiyor, bu yüzden ("http://php.net/manual/en/language.operators.comparison.php") karşılaştırma operatörleri için belgelere bağlamak mümkün değildi değilim veya boş işlevi ("http://php.net/empty"). Neyse ki kendi güvenlik nispeten gevşek olduğunu. Hah Mwuh!

Mysql_affected_rows işlevini kullanın:

$ Qtd = mysql_affected_rows ($ result);