Php SQL不返回数据库结果

Php SQL不返回数据库结果,php,mysql,Php,Mysql,我有一个带有“用户”表的数据库。在用户表中,我有以下列:“用户id”、“用户优先”、“用户最后”、“用户电子邮件”、“用户电话”、“用户uid”、“用户密码” if(isset($\u POST['submit'])){ 包括“dbh.inc.php”; $uid=$_POST['uid']; $pwd=$_POST['password']; if(空($uid)| |空($pwd)){ 标题(“位置:../index.php?login=empty”); 退出(); }否则{ 试一试{ $sq

我有一个带有“用户”表的数据库。在用户表中,我有以下列:“用户id”、“用户优先”、“用户最后”、“用户电子邮件”、“用户电话”、“用户uid”、“用户密码”

if(isset($\u POST['submit'])){
包括“dbh.inc.php”;
$uid=$_POST['uid'];
$pwd=$_POST['password'];
if(空($uid)| |空($pwd)){
标题(“位置:../index.php?login=empty”);
退出();
}否则{
试一试{
$sql=“从用户中选择*”;
$result=$conn->prepare(
$sql.“其中用户\u uid=?”
);
$result->bindParam(1,$uid,PDO::PARAM_STR);
$result->execute();
}捕获(例外$e){
回应“错误查询”;
}
$resultCheck=$result->rowCount();
如果($resultCheck<1){
标题(“位置:../index.php?登录不好”);
退出();
}否则{
$row=$result->fetch(PDO::fetch_ASSOC);
如果($行){
//对密码进行哈希解算
$hashedPwdCheck=password\u verify($pwd,$row['user\u password']);
if($hashedPwdCheck==false){
标题(“位置:../index.php?login=error”);
退出();
}elseif($hashedPwdCheck==true){
//在此处登录用户
$\会话['u\u id']=$row['user\u id'];
$\会话['u\u first']=$row['user\u first'];
$\会话['u\u last']=$row['user\u last'];
$\会话['u\电子邮件']=$row['user\电子邮件'];
$\会话['u\u uid']=$row['user\u uid'];
标题(“位置:../index.php?login=login_success”);
退出();
}
}
}
}
}否则{
标题(“位置:../index.php?login=error”);
退出();
}

问题是,当我尝试使用在sql数据库中创建的uid和密码登录时,返回的结果是:“../index.php?login\u not\u good”。我该怎么办?

作为变量,您可以使用命名参数

$sql = "SELECT * FROM users WHERE user_uid = :uid";
$result = $conn->prepare($sql);
$result->bindParam(':uid', $uid);
$result->execute();

password_verify()结果是否与password相同它是否产生任何错误?你在哪里之前需要一个空间$sql。“其中user_uid=?”或在users$sql=“SELECT*FROM users”之后;检查数据库中是否存在
user\u uid
。“****空格****其中user_uid=?”为您的表发布create语句
$sql = "SELECT * FROM users WHERE user_uid = :uid";
$result = $conn->prepare($sql);
$result->bindParam(':uid', $uid);
$result->execute();