2012-12-11 199 views
-2

快速問題:檢查mysql中是否已經存在行

如何檢查mysql是否已經存在行?

我知道一些會建議mysql_num_rows(),我已經嘗試過,並沒有好處。

這裏是PHP代碼:

... 

$chk = mysql_query("SELECT * FROM f_table WHERE f = '$id' AND h = 'h' AND status = '1'"); 

if(mysql_num_rows($chk) > 0){ 
    $msg = 'exist'; 
}else{ 
      $msg = 'gotta'; 
    } 

PS:我剛剛注意到,PHP手冊建議我們使用一些其他的不是 'mysql_num_rows()',和我的MySQL版本是5.0。它有關係嗎?

謝謝你的時間。

+2

爲什麼它不起作用?這應該。 – deceze

+3

請停止使用此代碼。 'mysql_'函數正在[棄用](http://www.deprecatedphp.com/mysql)。您應該使用'mysqli_'或'PDO'來代替。 'SELECT *'也是不好的做法;總是指定一個列列表。 – Kermit

+1

這可能會奏效,也許你的sql語句不正確 –

回答

1

通常,您希望讓MySQL執行計數而不是取得所有行。 MySQL可以使用索引並且不必檢索所有數據,這可能會更加高效:

$result = mysql_query('SELECT COUNT(*) as `count` FROM ...') /* or die(mysql_error()) */; 
$row = mysql_fetch_assoc($result); 

if ($row['count'] ...) 
1

如果您不打算使用這些行,請執行SELECT COUNT(*) FROM ...。否則,即使此API已被棄用,mysql_num_rows也應該起作用。