基本上我做了一個登錄腳本,用戶登錄前必須在數據庫中檢查用戶名。所以我需要一個mysql查詢將僅返回與指定用戶名匹配的目標表的記錄數,而不是包含記錄的數組。我試過這個:我需要一個mysql查詢將它返回匹配的行數,而不是與匹配的行數組
$result = mysql_query("SELECT COUNT(*) from usersecurity WHERE Email ='$username'");
但顯然它返回的是結果資源而不是int或數值。
基本上我做了一個登錄腳本,用戶登錄前必須在數據庫中檢查用戶名。所以我需要一個mysql查詢將僅返回與指定用戶名匹配的目標表的記錄數,而不是包含記錄的數組。我試過這個:我需要一個mysql查詢將它返回匹配的行數,而不是與匹配的行數組
$result = mysql_query("SELECT COUNT(*) from usersecurity WHERE Email ='$username'");
但顯然它返回的是結果資源而不是int或數值。
使用mysql_num_rows就快:
$result = mysql_query("SELECT COUNT(*) from usersecurity WHERE Email ='$username'");
$row = mysql_fetch_row($result);
print($row[0]) //0 or 1, etc
在返回的資源
$result = mysql_query("SELECT * from usersecurity WHERE Email ='$username'");
$count = mysql_num_rows($result);
從http://php.net/manual/en/function.mysql-query.php
「對於SELECT,SHOW,描述,解釋等語句返回的結果集,mysql_query()在成功時返回一個資源,或者在錯誤時返回FALSE。「
換句話說,mysql_query總是會返回一個資源。
您可以用什麼快速驗證
mysql_num_of_rows($result) > 0
http://php.net/manual/en/function.mysql-num-rows.php
或if(!empty(mysql_fetch_row($result))
不要忘記你仍然需要這個檢索您的結果
$row = mysql_fetch_row($result)
$行[0]將是你的整數。
@colinmarc:Galen提供的示例不使用COUNT() – magma 2011-04-22 18:56:56
它在改變之前做過。我刪除了我的評論,並解開了我的downvote =) – colinmarc 2011-04-22 19:28:53
沒關係,但是如果這個表很大,速度很慢,所以colinmarc提供的方法更好 – chings228 2013-05-24 06:14:13