PHP mysql查询中的多个ANDS?

时间:2010-07-08 19:28:35

标签: php mysql

我正在尝试在下面的查询中使用多个AND,并且每当我尝试使用我的登录功能时它都会弄乱密码。代码如下。

// this is my problem, right here
    $result = mysql_query("SELECT username, password, FirstName FROM members 
                            WHERE username='$myusername' 
                              AND password='$mypassword' 
                              AND  FirstName = '$firstname'");

// Mysql_num_row is counting table row
$count=mysql_num_rows($result);
// If result matched $myusername and $mypassword, table row must be 1 row


if($count==1){
// Register $myusername, $mypassword and redirect to file "login_success.php"
session_start();
$_SESSION['myusername'] = $myusername;
$_SESSION['mypassword'] = $mypassword;
$_SESSION['firstname'] = $firstname;

编辑:

SQL查询:

表名:成员

username | password | FirstName | LastName 
johndoe    deers       John        Doe

PHPMyAdmin告诉我,当我在那里运行时返回零行。

2 个答案:

答案 0 :(得分:3)

A)不要将密码存储在内存中

B)哈希密码

C)如果您已经按用户名和密码过滤,则没有理由过滤FirstName =的位置。您是否在用户登录时询问用户的用户名,密码和FIRST NAME?你从哪里获得变量?用户名不是唯一的吗?

答案 1 :(得分:0)

如果我正确理解了问题,您应该检查是否正确输入了用户名,密码和FirstName的大小写(意味着您在数据库中检查的值)。

如果你想让它不区分大小写,你应该使用LIKE。

此评论如果正确

// If result matched $myusername and $mypassword, table row must be 1 row

这意味着您甚至不应该首先检查FirstName吗?

另外,如果您可以提供样本数据,这将有很大帮助!