2014-01-12 156 views
0

我在Android應用程序運行在MySQL中的行數與數據庫服務器連接相同的結果與PHP

我需要檢查用戶名和密碼

登錄如果用戶名和密碼發現在數據庫中的用戶發現

我在表日誌中添加用戶名和密碼,但代碼的結果是沒有

$name = $_POST["user_name"]; 

$password = $_POST["password"]; 

$result = mysql_query("SELECT user_name,password from login WHERE user_name = '$name' AND password = '$password'"); 
     $no_of_rows = mysql_num_rows($result); 
     if ($no_of_rows == 1) { 
      $json = array("result"=>"yes"); 
     } else { 
      $json = array("result"=>"no"); 
     } 


header('Content-Type: application/json'); 
echo json_encode($json) 

我在表登錄用戶名和passwor添加ds但代碼的結果是否,如果用戶名和密碼是否成立

此代碼中的問題是什麼?

+0

MySQL查詢似乎沒問題,但我看不到mysql_connect和mysql_select_db語句。請將它們添加到您的帖子中。 – nKn

+0

在mysql_connect或mysql_select_db中沒有問題,因爲給出結果,但結果始終爲no –

回答

0

這可能是由於以下幾個原因:

  • mysql_query返回錯誤。我建議你用檢查返回結果:

    if ($result === FALSE) echo "I have an error in my MySQL sentence\n";

  • 這不是強制性的,但我不知道你是否有一個以上的開MySQL的插座。這就是爲什麼它總是一個好主意,指定鏈接ID爲mysql_query功能,例如:

    $mylink = mysql_connect($host, $login, $password); $result = mysql_query("SELECT ...", $mylink);

  • 它總是測試你在你的代碼中手動測試的句子是個好主意。所以我把echo "SELECT user_name,password from login WHERE user_name = '$name' AND password = '$password'\n";,然後複製它,手動連接到MySQL服務器,並執行它,看看它是否返回任何東西(萬一它返回的東西,這意味着錯誤是在代碼中)。

  • 這不是一個調試技巧,但我建議始終加密數據庫中的密碼。因此,當您在數據庫中插入登錄名時,而不是插入('$user', '$pass'),則應更好地插入('$user', MD5('$pass')),以獲得更好的安全性。對於SELECT s是一樣的:SELECT * FROM table WHERE login = '$user' AND pass = MD5('$pass')

希望這有助於!

相關問題