2011-08-12 23 views
0

如何檢查值是否在mysql的表列中?檢查值是否在mysql的表列中

現在我正在創建一個登錄系統。用戶註冊我的PHP文件後,將該值寫入變量。我想知道我可以使用哪些代碼將我的值與表中的值進行比較,並檢查是否有與輸入值相同的值。

我試過這段代碼。

$query = "SELECT * FROM users WHERE username ='$username';"; 

$res = mysql_num_rows(mysql_query($query)); 

然後if ($res >= 0);

但後來我得到這個錯誤,

警告:mysql_num_rows():提供的參數不是在/ home/synameg1 /的public_html /一個有效的MySQL結果資源第23行的贈品/ appfiles/register.php

所以我想知道是否有辦法解決這個錯誤或做我想做的事用另一種方法做。

謝謝!

+0

的錯誤意味着你給了它是不是有效的查詢。你不能計算'false'中的行數,這是'mysql_query'在這種情況下返回的結果。找出原因並解決。 'mysql_error()'包含來自MySQL的錯誤消息。 –

回答

3
$sql = "SELECT * FROM users WHERE username = '" . mysql_real_escape_string($username) . "'"; 
$result = mysql_query($sql) or die("Error occurred in [$sql]: " . mysql_error()); 
$count = mysql_num_rows($result); 
+1

我不會推薦die()和生產系統上的mysql錯誤。你不希望整個世界都知道究竟出了什麼問題。 – Shoan

3

丹:我用'零'結果的方法。

<?php 
////////////////////////////////////////////////////////////////////// 
global $current_user; 
get_currentuserinfo(); 
$user_nam = $current_user->user_login; 
$db_host = 'localhost'; 
$db_user = 'Private'; ////the user name 
$db_pwd = 'Private'; /////the pasword 

$database = 'Datapase name';///////// 
$table = 'Table Name'; ///table name 

$sql = "SELECT * FROM $table WHERE 'Submitted Login' = '" . mysql_real_escape_string($user_nam) . "'"; 
$result = mysql_query($sql) or die("Error occurred in [$sql]: " . mysql_error()); 
$count = mysql_num_rows($result); 

echo $user_nam . "<br />"; 
echo "count is $count"; 

//////////////////////////////////////////////////////////////////// 
?> 

私人領域有意見。 它的工作原理,我可以看到$ user_nam,但計數爲零。 這裏是一個數據庫查看,所以你可以看到值。 http://you-get-real.com/images/database-peek.png

感謝

+0

嗯...這是接受的答案或一些進一步的問題的擴展?如果是後者,請將其作爲... [問題](http://stackoverflow.com/questions/ask):-) – kleopatra