Php 若值存在,则检查SQL数据库,若存在,则返回值
我对php和SQL都是新手。我有一个登录页面,在那里我询问用户的用户名和密码。我想搜索我为用户名和密码创建的数据库,看看它们是否存在。数据库表有两列,用户名和密码。我不太关心安全性,所以一个简单的脚本就可以了。但我确实希望有一天能够扩展它,因此我使用了一个数据库,因为目前我只使用php中的一个数组来存储用户名和密码 我目前正试图让这个代码工作,但没有得到我需要的结果Php 若值存在,则检查SQL数据库,若存在,则返回值,php,sql,database,passwords,Php,Sql,Database,Passwords,我对php和SQL都是新手。我有一个登录页面,在那里我询问用户的用户名和密码。我想搜索我为用户名和密码创建的数据库,看看它们是否存在。数据库表有两列,用户名和密码。我不太关心安全性,所以一个简单的脚本就可以了。但我确实希望有一天能够扩展它,因此我使用了一个数据库,因为目前我只使用php中的一个数组来存储用户名和密码 我目前正试图让这个代码工作,但没有得到我需要的结果 $user_name = "db_username"; $password = "db_password"; $database
$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);
}
无论用户名是否在其中,它总是返回找到的用户名和密码。打印
$result
时,我得到资源id#2
。谢谢$result我认为即使结果集包含零行,也会计算为true。根据手册,它仅在出现错误时返回布尔值false。使用mysql_num_行来确定您是否在查询中找到了任何内容
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。在SQL中尝试以下方法:
$result = mysql_query("SELECT 1 FROM my_table WHERE Username = " . mysql_real_escape_string($username));
注意:如果(我的答案修正了你的问题),你应该考虑使用.< /p> <代码> {你能给它绿色的复选标记吗?} {让我知道它是否仍然不能工作;}对不起,直到今早我才可以测试它。非常感谢。我确实需要在$username变量周围添加撇号,但除此之外,它的效果非常好。非常感谢。很高兴我能帮忙!我将在我的答案中添加撇号和反勾号,以供将来的读者阅读。应使用mysql_real_escape_string()(需要与数据库的开放连接)而不是mysql_escape_string()。我不知道你所说的“mysql接口”被弃用是什么意思…@ButtleButkus:你是对的,我读了弃用消息,认为它指的是整个mysql库。更新后的帖子。
<?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>