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

Jam*_*itz 4 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);
}
Run Code Online (Sandbox Code Playgroud)

Username and Password Found无论用户名是否存在,这都会返回.打印时$result我得到了Resource id #2.谢谢

But*_*kus 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);
}
Run Code Online (Sandbox Code Playgroud)

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