使用php在mysql中的行数相同

时间:2014-01-12 11:43:25

标签: android mysql

我在与服务器中的数据库连接的android应用程序中工作

我需要检查用户名和密码登录

如果在用户找到的数据库中找到用户名和密码

我在表日志中添加了用户名和密码,但代码的结果是

    $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)

我添加了表登录用户名和密码,但如果建立了用户名和密码,则代码结果为否

这段代码有什么问题?

1 个答案:

答案 0 :(得分:0)

这可能是由于以下几个原因造成的:

  • mysql_query返回错误。我建议用以下方法检查返回的结果:

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

  • 这不是强制性的,但我不知道你是否有多个已打开的MySQL套接字。这就是为什么指定mysql_query函数的链接ID总是一个好主意,例如:

    $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,它是相同的:SELECT * FROM table WHERE login = '$user' AND pass = MD5('$pass')

希望这有帮助!