Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/61.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
MySQL/PHP:无法从数据库中选择,但元素存在_Php_Mysql_Sql_Select_Mysqli - Fatal编程技术网

MySQL/PHP:无法从数据库中选择,但元素存在

MySQL/PHP:无法从数据库中选择,但元素存在,php,mysql,sql,select,mysqli,Php,Mysql,Sql,Select,Mysqli,我知道有人问了很多,但我似乎找不到适合我的答案。在PHPMyAdmin中,用户名“user”和密码“test”存在——但出于某种原因,它一直说不存在。代码的输出为: 已成功连接到DB电子邮件:*用户*密码:*测试*用户名和密码不匹配 代码如下: $con = new mysqli('somewhere.com','admin','*****','nameofdb'); if($con->connect_errno > 0){ die('Unable to co

我知道有人问了很多,但我似乎找不到适合我的答案。在PHPMyAdmin中,用户名“user”和密码“test”存在——但出于某种原因,它一直说不存在。代码的输出为:

已成功连接到DB电子邮件:*用户*密码:*测试*用户名和密码不匹配

代码如下:

$con = new mysqli('somewhere.com','admin','*****','nameofdb');
    if($con->connect_errno > 0){
        die('Unable to connect to database [' . $con->connect_error . ']');
    }
    else{
        echo "Successfully connected to DB ";
    }
$email = mysqli_real_escape_string($con, $_POST['eml']);
       $password = mysqli_real_escape_string($con, $_POST['pwd']);
       //$encrPassword = md5($password);


       $login = $con->query("SELECT * 
                            FROM logininfo 
                            WHERE email = $email
                            AND password = $password");
       if($login == FALSE){
            echo " email:*$email* ";
            echo " password:*$password* ";
            //echo " password:*$encrPassword* ";

            echo "Username and Password does not Match";
       }
       else {
            echo "Hey this works";
       //Check if user is logged in, if not then redirect.     
            /*session_start();
            if($_SESSION['loggedin'] == FALSE){
                $_SESSION['loggedin'] = TRUE;
                $_SESSION['username'] = $username;
            }*/
            header("Location: ../browse/index.php");
       }
        mysqli_close($con);

查询中有一个错误,如果您回显查询并在mysql上测试它,可能更容易调试,您可以执行以下操作:

$query = "SELECT * 
          FROM logininfo 
          WHERE email = $email
          AND password = $password";
echo $query;

祝你好运

查询变量周围必须有引号吗

从sometable中选择*,其中somecol='$someVar'和someothercol='$someothervar'

两个简单的步骤 1.在phpmyadmin中检查您的数据库,确保这些用户名和密码与您输入的用户名或密码匹配。如果是,则返回查询以了解查询中的内容。 2.如果是,请确保在注册时使用md5加密,如果使用,请在登录时解密,如

$password=md5($password);

我使用的是md5加密,但后来将其取出以帮助调试过程。每当我回显我从用户那里得到的查询:DB SELECT*,其中email=test和password=test,DB中的md5密码长度不应太短,请删除注册和登录中的加密,然后重试。我删除了所有加密。不走运|$email=mysqli\u real\u escape\u string($con,$\u POST['eml'])$password=mysqli\u real\u escape\u字符串($con,$\u POST['pwd'])$query=“从用户处选择(电子邮件、密码),其中电子邮件=$email,密码=$password”;如果($result=mysqli_query($con,$query)){echo“Hey this works”;您的查询是错误的,请删除select子句write like后的括号,并在电子邮件和密码周围使用单引号写下“select*FROM users,其中email='$email'和password=$password”“。使用mysql_query()而不是mysqli_query()