如果值存在则检查SQL数据库,如果存在则返回值

时间:2011-11-11 01:08:05

标签: php sql database passwords username

我对php和SQL都很陌生。我有一个登录页面,我要求用户的用户名和密码。我想搜索我为用户名和密码创建的数据库,看看它们是否存在。数据库表有两列,Username和Password。我不太关心安全性,所以一个简单的脚本将起作用。但我确实希望有一天能够扩展它,因此我使用的是数据库,因为目前我只是在php中使用一个数组来存储用户名和密码。

我目前正在尝试让这段代码正常运行,但我没有得到我需要的结果。

$user_name = "db_username";
$password = "db_password";
$database = "db_name";
$server = "db_server";



$db_handle = mysql_connect($server, $user_name, $password);
$db_found = mysql_select_db($database, $db_handle);

if ($db_found) {
$result =mysql_query("SELECT 1 FROM my_table WHERE Username = $username");
if ($result>0)

    {
        echo 'Username and Password Found'; 
    }
else
    {
    echo 'Username and Password NOT Found';
    }
}
else {
print "Database NOT Found.";
mysql_close($db_handle);
}

无论用户名在哪里,都会返回Username and Password Found。打印$result时,我得到Resource id #2。谢谢

3 个答案:

答案 0 :(得分:12)

$ result我认为即使结果集包含零行,也会评估为true。根据手册,它只在错误时返回布尔值false。使用mysql_num_rows确定您是否确实找到了查询的任何内容。

if ($db_found) {
$result =mysql_query("SELECT 1 FROM my_table WHERE `Username` = '$username'");
if ($result && mysql_num_rows($result) > 0)

    {
        echo 'Username and Password Found'; 
    }
else
    {
    echo 'Username and Password NOT Found';
    }
}
else {
print "Database NOT Found.";
mysql_close($db_handle);
}

编辑: 当然,截至目前(2013年11月,以及很久以前),mysql_ *函数确实已被弃用。显然你现在可以使用相同的mysqli_ *函数(可能只是使用find / replace),但大多数人都在使用PDO。

答案 1 :(得分:4)

试试这个SQL:

$result = mysql_query("SELECT 1 FROM my_table WHERE Username = " . mysql_real_escape_string($username));

注意:您应该考虑使用PDO

答案 2 :(得分:0)

<?php
$user=$_POST["user"];
$pass=$_POST["pass"];
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "interior_design";
$db_handle = mysql_connect($servername,$username,$password);
$db_found = mysql_select_db($dbname,$db_handle);
if($db_found)
{
$result = mysql_query("SELECT ssn,fname FROM admin WHERE ssn='$pass' and fname='$user'");
if ($result && mysql_num_rows($result) > 0)
    {
        echo 'Username and Password Found'; 
    //header( 'Location: index.html' ) ;

    }
else
    {
    echo 'Username and Password NOT Found';
    echo $pass;
    echo $user;``
    }
}

else{
echo 'db nt found';   

mysql_close($db_hanle);
}

?>
<html>
<body>
<a href="login.html"><h2>LOGIN</h2></a>
</body>
</html>
相关问题