不建议使用mysql问题(不是mysqli)

时间:2019-02-17 07:54:18

标签: php mysql

我正在使用不推荐使用的mysql(而不是mysqli),并且当我尝试登录时出现以下错误:

  

警告:mysql_query():提供的参数不是有效的MySQL-Link          第18行的C:\ xampp \ htdocs \ project \ booking system \ login_user.php中的资源

     

警告:mysql_num_rows():提供的参数不是有效的MySQL结果          第20行上的C:\ xampp \ htdocs \ project \ booking system \ login_user.php中的资源

这是代码:

<?php

    session_start();

    //connect to database
    include("dbconnectlogin.php");
    mysql_connect("localhost","root","");
    mysql_select_db("logindb");

if (isset($_POST['login'])){

    $employeeNo = mysql_real_escape_string($_POST['employeeNo']);
    $password = mysql_real_escape_string($_POST['password']);

    $password = md5('&password');//remember we hashedpassword before storing last time

    $sql = "SELECT * FROM loginT WHERE employeeNo = '$employeeNo' AND password = '$password'";
    $result = mysql_query($sql, $db);

    if (mysql_num_rows($result) == 1)
    {
        $_SESSION['message'] = "You are now logged in";
        $_SESSION['employeeNo'] = $employeeNo;
        header("location:mainpage.php");
    }

    else{

        $_SESSION['message'] = "Username or password in incorrect";     
    }
}

?>

非常感谢您的帮助。谢谢。

1 个答案:

答案 0 :(得分:2)

第二个参数是可选的

$result = mysql_query($sql, $db);

并且$db未定义。

  

警告:mysql_query():在第18行的C:\ xampp \ htdocs \ project \ booking system \ login_user.php中,提供的参数不是有效的MySQL-Link资源

这是有道理的,因为$db未定义,这是资源链接。

如果您确实想放入它(例如连接到2个DB),则可以在执行mysql_connect时捕获资源

$db = mysql_connect("localhost","root","");
mysql_select_db("logindb", $db);

否则,PHP将“神奇地”跟踪它,您可以将其从查询部分中删除。

//without defining $db
$result = mysql_query($sql);

伙计,我用mysql_*编码已经有7年了,那时候...

除了MD5是垃圾邮件之外,我敢肯定这也是错误的。

   $password = md5('&password');//remember we hashedpassword before storing last time

如果不确定是否已对其进行哈希处理,则可以对其进行计数。

 if(strlen($password) == 32) //hashed

-注意-如果用户的密码为32个字符,这将失败,但这不太可能。但是md5始终为32。我不知道该怎么'&password'

如果我没有提到可以使用在线Rainbow表在大约2分钟内破解MD5和SHA1(无盐),我会感到不解。因此,如果这些密码曾经被泄露/被盗... ...可以说,这不是您要冒险的事情。