通过prepare语句mysqli php获得不需要的结果
您好,我是PHP新手,我正在尝试编写登录的prepare语句,但正如下面给出的代码,我的查询并没有得到任何行,而是得到field_计数 如果我把它放在通过prepare语句mysqli php获得不需要的结果,php,mysql,mysqli,Php,Mysql,Mysqli,您好,我是PHP新手,我正在尝试编写登录的prepare语句,但正如下面给出的代码,我的查询并没有得到任何行,而是得到field_计数 如果我把它放在 SELECT * FROM users WHERE UserName = 'DemoUser' 在直接数据库中,我得到一行,但这里$stmt->num_rows是零。我错过了什么 // in connections.php $dbh = new mysqli($host, $username, $password, $database); i
SELECT * FROM users WHERE UserName = 'DemoUser'
在直接数据库中,我得到一行,但这里$stmt->num_rows是零。我错过了什么
// in connections.php
$dbh = new mysqli($host, $username, $password, $database);
include('connections.php');
include('config.php');
include('comman_functions.php');
if(isset($_POST['password']) && $_POST['password']!=''
&& isset($_POST['username']) && $_POST['username']!=''
&& isset($_POST['location']) && $_POST['location']!='') {
$username = "DemoUser";
$stmt = $dbh->prepare("SELECT * FROM users WHERE UserName =? ");
$stmt->bind_param("s", $username);
$stmt->execute();
error_log($stmt->num_rows);
if($stmt->num_rows>0){
$row = $stmt->fetch();
error_log("logged in!!!");
$stmt->close();
} else {
$_SESSION['error'] = 'Invalid Username or Password';
header('Location:index.php');
}
} else {
$_SESSION['error'] = 'Please provide Username and Password';
header('Location:index.php');
}
试试这个
您需要添加$stmt->bind\U结果;$stmt->execute之后
如果您在使用此num\u行时遇到问题,则必须首先声明->存储\u结果
问题可能是$stmt->num\u行。请参阅我正在使用mysqli$dbh=newmysqli$host、$username、$password、$database;感谢ans先生,但我使用的是$dbh=newmysqli$host、$username、$password、$database;row count是PDO函数Hey我刚才试过你说的..但仍然一样没有从数据库中获取数据,但能够从$stmt->field_counthey中找到列数的计数我获取了row count,但无法从该对象获取数据:
$dbh = new mysqli($host, $username, $password, $database);// in connections.php
<?php
include('connections.php');
include('config.php');
include('comman_functions.php');
if(isset($_POST['password']) && $_POST['password']!='' && isset($_POST['username']) && $_POST['username']!='' && isset($_POST['location']) && $_POST['location']!=''){
$username = "DemoUser";
$stmt = $dbh->prepare("SELECT * FROM users WHERE UserName =? ");
$stmt->bind_param("s", $username);
$stmt->execute();
$stmt->bind_result();
error_log($stmt->num_rows);
if($stmt->num_rows>0){
$row = $stmt->fetch();
error_log("logged in!!!");
$stmt->close();
}else{
$_SESSION['error'] = 'Invalid Username or Password';
header('Location:index.php');
}
}else{
$_SESSION['error'] = 'Please provide Username and Password';
header('Location:index.php');
}
?>
<?php
$mysqli = new mysqli("localhost","root", "", "tables");
$query = $mysqli->prepare("SELECT * FROM table1");
$query->execute();
$query->store_result();
$rows = $query->num_rows;
echo $rows;