0

我在数据库中有 3 个表:

customer
contacts
reseller

我的网址有index.php?rid=5 (rid=5 是经销商表中的一行,序列为 5)

我的客户表有一resellerid列,所以那里有很多行,aresellerid为 5

我的联系人表有一company_sequence列链接到客户sequence表的列。

联系人表有一个电子邮件密码

我试图为联系人表中的行创建一个登录表单,以使用电子邮件和密码登录。

我试过这段代码:

$sql="SELECT * from customer where resellerid = '".$ResellerID."' ";
        $rs=mysql_query($sql,$conn);
        while($result=mysql_fetch_array($rs))
        {
        $sql2="select * from contacts where company_sequence = '".$result["sequence"]."' and email='".$email."' and password='".md5($password)."'";
        $rs2=mysql_query($sql2,$conn);
        $result2=mysql_fetch_array($rs2);

但是当我运行时if(mysql_num_rows($rs2) > 0),即使联系人表中有有效行,它也只会检查最后一行。

我怎样才能让它工作?

4

1 回答 1

2
SELECT * FROM customer
JOIN contacts ON (company_sequence = sequence)
WHERE resellerid = ?
AND email = ?
AND password = ?

我也有一些批评,即:

  • 您正在使用ext/mysql. 使用 PDO 或 mysqli
  • 您没有使用参数化查询,并且您的查询容易受到注入
  • md5是不适合密码的弱哈希
于 2013-09-14T17:55:14.373 回答