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