Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/228.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.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 MYSQL查询无法从数据库中提取数据_Php_Mysql_Sql_Null_Prepare - Fatal编程技术网

Php MYSQL查询无法从数据库中提取数据

Php MYSQL查询无法从数据库中提取数据,php,mysql,sql,null,prepare,Php,Mysql,Sql,Null,Prepare,我遇到的问题是我的问题: SELECT * FROM administradores WHERE nombre_administrador=? AND password=? 没有从数据库中提取任何内容 变量转储显示: login.php <?php class login{ //Variable for MySql connection private $hookup; private $sql; private $

我遇到的问题是我的问题:

SELECT * FROM administradores WHERE nombre_administrador=? AND password=?
没有从数据库中提取任何内容

变量转储显示:

login.php

<?php
    class login{
        //Variable for MySql connection
        private $hookup;
        private $sql;
        private $tableMaster;

        //Field Variables
        private $pass;
        private $name;

        public function __construct()
        {
            //Get table name and make connection
            $this->mysqli=UniversalConnect::doConnect();

            //Get data from HTML form
            $this->name=$_POST['name'];
            $this->pass=$_POST['pass'];
            //Call private methods for MySql operations
            $this->dologin();
            $this->mysqli->close();
        }

        private function dologin()
        {
            if ($stmt = $this->mysqli->prepare("SELECT * FROM administradores WHERE nombre_administrador=? AND password=?")){
                var_dump($stmt);
                /* bind parameters for markers */
                $stmt->bind_param('ss', $this->name, $this->pass);
                var_dump($this->name);
                var_dump($this->pass);
                /* execute query */
                $stmt->execute();

                /* bind result variables */
                $stmt->bind_result($id,$nombre_administrador,$password,$ubicacion,$nombre,$apellido);

                /* fetch value */
                $stmt->fetch();
                /*get number of rows*/
                $num_row =$stmt->num_rows;

                if($num_row==1){
                    echo 'true';
                    $_SESSION['Name'] = $row['nombre_administrador'];
                    $_SESSION['Id'] = $row['id'];
                    header("location:  http://localhost/SCAF1.0/indexSCAF.html");
                } else {
                    echo "<script>alert('wrong password');</script>";
                    echo 'false';
                }
            } else{
                echo "Falló la conexión con MySQL: (" . $this->mysqli->connect_errno . ") " . $this->mysqli->connect_error;
            }

            $stmt->close();
        }
    }
?>

回跳不应该是个问题,但不一定需要。听起来可能是连接错误。

嗯,你没有存储明文密码,是吗?是的,我知道风险和一切,但一旦我成功将其更改为md5并不需要太多。你确认查询结果集不是空的吗?是的,如果我从post中转储值,他们给用户root和密码root,它们在我的表中,只是看起来它们没有绑定到查询,但我不确定为什么我删除了反勾号,仍然没有,它没有显示任何查询错误。你检查了连接错误吗$此->mysqli->connect\u错误号和$this->mysqli->connect\u错误。我会把它们放在$this->mysqli=UniversalConnect::doConnect;后面;。它也没有显示任何内容,实际上它以前是工作的,我更改了查询并添加了prepare部分,它在查询中是一个简单的替代项,所以我假设我弄乱了prepare语句,但我查看了php手册,我不明白为什么它不工作,事实并非如此,因为它是在带有变量的查询时工作的,所以在我更改代码并添加prepareWhat是var_dump$stmt的输出之前;就在你准备好查询之后?
<?php
    class login{
        //Variable for MySql connection
        private $hookup;
        private $sql;
        private $tableMaster;

        //Field Variables
        private $pass;
        private $name;

        public function __construct()
        {
            //Get table name and make connection
            $this->mysqli=UniversalConnect::doConnect();

            //Get data from HTML form
            $this->name=$_POST['name'];
            $this->pass=$_POST['pass'];
            //Call private methods for MySql operations
            $this->dologin();
            $this->mysqli->close();
        }

        private function dologin()
        {
            if ($stmt = $this->mysqli->prepare("SELECT * FROM administradores WHERE nombre_administrador=? AND password=?")){
                var_dump($stmt);
                /* bind parameters for markers */
                $stmt->bind_param('ss', $this->name, $this->pass);
                var_dump($this->name);
                var_dump($this->pass);
                /* execute query */
                $stmt->execute();

                /* bind result variables */
                $stmt->bind_result($id,$nombre_administrador,$password,$ubicacion,$nombre,$apellido);

                /* fetch value */
                $stmt->fetch();
                /*get number of rows*/
                $num_row =$stmt->num_rows;

                if($num_row==1){
                    echo 'true';
                    $_SESSION['Name'] = $row['nombre_administrador'];
                    $_SESSION['Id'] = $row['id'];
                    header("location:  http://localhost/SCAF1.0/indexSCAF.html");
                } else {
                    echo "<script>alert('wrong password');</script>";
                    echo 'false';
                }
            } else{
                echo "Falló la conexión con MySQL: (" . $this->mysqli->connect_errno . ") " . $this->mysqli->connect_error;
            }

            $stmt->close();
        }
    }
?>