我的查詢是
$result=SELECT MAX(surveyID) as surveyID FROM `sg_count`WHERE userID=$user
其中sg_count
表中沒有記錄
但mysql_num_rows($result)
返回1
我的查詢是
$result=SELECT MAX(surveyID) as surveyID FROM `sg_count`WHERE userID=$user
其中sg_count
表中沒有記錄
但mysql_num_rows($result)
返回1
彙總功能,如max
和count
會返回一行(沒有分組子句),這就是它們的本質。
舉例來說,count(*)
在空表會給你一個一行與價值0
。
我懷疑,雖然我還沒有嘗試過,但您會在查詢中獲得一行,並且其值爲NULL
。這就是我用過的所有其他數據庫處理它的方式。假設該列是非NULL指定的,您可以使用該返回值來檢測「無行」的情況。即使它允許NULL,這仍然是可行的,這取決於你想在這種情況下做什麼。
否則,你可能會更好過檢查計數以及與喜歡的東西:
select count(*) as quant,
max(surveyID) as surveyID
from sg_count
where userID = 'somebody'
然後,如果quant
是零,你知道有沒有行。如果它不爲零,那麼爲行,最大值surveyID
在另一列中。
查詢沒有失敗,所以OP想要做什麼,是任何人的猜測。但這是正確的。 – 2014-09-27 05:36:59
是的,這是相當真實的。 ?您開`
+----------+
| surveyID |
+----------+
| NULL |
+----------+
$count = $query->num_rows; // 1
$results = $query->fetch_assoc();
echo $results['surveyID']; // NULL
添加錯誤文件(S)的頂部報告;:當您選擇記錄它會產生一個行ini_set('display_errors',1);'看看它是否產生任何東西。還有'或者(mysql_error())'去''mysql_query()'。你在查詢,對嗎?我看到的只是一行代碼。 – 2014-09-27 05:29:37
不客氣。你有沒有發現問題? – 2014-09-27 05:31:49
發佈導致報告問題的語法有效代碼。這是*不是*正在嘗試什麼。 – user2864740 2014-09-27 05:32:56