Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 若值存在,则检查SQL数据库,若存在,则返回值_Php_Sql_Database_Passwords - Fatal编程技术网

Php 若值存在,则检查SQL数据库,若存在,则返回值

Php 若值存在,则检查SQL数据库,若存在,则返回值,php,sql,database,passwords,Php,Sql,Database,Passwords,我对php和SQL都是新手。我有一个登录页面,在那里我询问用户的用户名和密码。我想搜索我为用户名和密码创建的数据库,看看它们是否存在。数据库表有两列,用户名和密码。我不太关心安全性,所以一个简单的脚本就可以了。但我确实希望有一天能够扩展它,因此我使用了一个数据库,因为目前我只使用php中的一个数组来存储用户名和密码 我目前正试图让这个代码工作,但没有得到我需要的结果 $user_name = "db_username"; $password = "db_password"; $database

我对php和SQL都是新手。我有一个登录页面,在那里我询问用户的用户名和密码。我想搜索我为用户名和密码创建的数据库,看看它们是否存在。数据库表有两列,用户名和密码。我不太关心安全性,所以一个简单的脚本就可以了。但我确实希望有一天能够扩展它,因此我使用了一个数据库,因为目前我只使用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);
}

无论用户名是否在其中,它总是返回找到的用户名和密码。打印
$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>