我該如何檢查從sql查詢返回的值是否爲空?我嘗試使用if(empty($ var)),但那也沒用。我的繼承人代碼如何檢查從SQL/PHP查詢返回的值是否爲空?
PHP代碼:
while($row = mysql_fetch_array($Result))
{
if(count($row) == 0)
{
....
}
}
我將如何檢查是否$行是空的?
我該如何檢查從sql查詢返回的值是否爲空?我嘗試使用if(empty($ var)),但那也沒用。我的繼承人代碼如何檢查從SQL/PHP查詢返回的值是否爲空?
PHP代碼:
while($row = mysql_fetch_array($Result))
{
if(count($row) == 0)
{
....
}
}
我將如何檢查是否$行是空的?
這是正確的方法,您可以通過查找返回結果中的行數來檢查結果是否爲空。 sql中有一個函數來做這個mysql_num_rows
。下面是使用它的方法:
if (mysql_num_rows($Result) == 0) {
//results are empty, do something here
} else {
while($admin_row = mysql_fetch_array($Result)) {
//processing when you have some data
}
請注意,您應該使用===而不是==。 – Mgamerz
if (mysql_num_rows($Result) == 0) {
//error here
} else {
//loop here
}
給你一個錯誤,並與結果的工作場所的地方,如果他們不空。
最簡單的方法是使用mysql_num_rows()。
$cnt = mysql_num_rows($Result);
if (0===$cnt) {
echo 'no records';
}
else {
while(false!=($row=mysql_fetch_array($Result))) {
// ...
}
}
但請記住,此函數返回從MySQL服務器傳輸到客戶端的記錄數。這不一定是總記錄數。只要你使用mysql_query()沒關係。但是,如果你有例如你可能想要使用大的結果集mysql_unbuffered_query(),然後你不能依賴mysql_num_rows()(爲了你的目的),因爲在調用mysql_fetch_xyz()之前沒有記錄被傳輸。
但是相反,你可以使用類似
$cnt = 0;
while(false!=($row=mysql_fetch_array($Result))) {
$cnt += 1;
// ...
}
if (0===$cnt) {
echo 'no records';
}
現在你有一個額外的變量作爲計數器。你可能想避免這種情況,而是使用類似
$row = mysql_fetch_array($Result);
if (!$row) {
echo 'no records';
}
else {
do {
// ...
} while(false!=($row=mysql_fetch_array($Result))) ;
}
這種做法你沒有一個額外的變量,但一些重複代碼($的X =取...行)。
...做出您的選擇;-)
您的意思是什麼「空」? – VolkerK
請注意,mysql擴展已過時,正在棄用。相反,新代碼應該使用mysqli或PDO,它們都具有重要的優點,例如預準備語句。 – outis