2014-10-10 79 views
-2

提取数据时遇到的问题是,我查询:MySQL查询无法从数据库

SELECT * FROM administradores WHERE nombre_administrador=? AND password=? 

不拉东西从数据库中。

var_dump显示:

public 'affected_rows' => null, public 'insert_id' => null 
    public 'num_rows' => null 
    public 'param_count' => null 
    public 'field_count' => null 
    public 'errno' => null 
    public 'error' => null 
    public 'error_list' => null 
    public 'sqlstate' => null 
    public 'id' => null 

的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(); 
     } 
    } 
?> 
+0

嗯,你没有存储明文密码是你吗? – 2014-10-10 22:21:59

+0

是的,我知道风险和一切,但一旦我开始工作,将其更改为md5并不需要太多 – 2014-10-10 22:26:08

+0

您确定查询结果集不是空的吗? – Air 2014-10-10 22:44:50

回答

0

反引号不应该是一个问题,但他们并不一定需要。这听起来像可能存在连接错误。

+0

我删除了反引号,并仍然没有,它不显示任何查询错误 – 2014-10-10 22:24:54

+0

你检查了连接错误吗? '$ this-> mysqli-> connect_errno'和'$ this-> mysqli-> connect_error'。我会把这些放在'$ this-> mysqli = UniversalConnect :: doConnect();'之后。 – slapyo 2014-10-10 22:27:31

+0

它不显示任何,实际上它工作之前,我改变了查询,并添加了准备部分,这是一个简单的替代在查询之前,所以即时通讯假设我搞砸准备声明,但我检查了PHP手册和我不知道为什么它不会工作 – 2014-10-10 22:29:30