我正在尝试为网站设置基本登录系统,但在使查询正确运行时遇到重大问题。到目前为止,我试图弄清楚发生了什么的一切都失败了。据我所知,查询本身没有失败,但它也没有返回任何数据。在 phpMyAdmin 中使用查询会返回正确的查询信息。
这是我的 php 代码:
<?PHP
//Empty error variables
$sqlerror;
if(empty($_POST['uname']))
{
$data = "false,Username field empty";
echo json_encode($data);
return false;
}
if (empty($_POST['pword']))
{
$data = "false,Password field empty";
echo json_encode($data);
return false;
}
$username = $_POST['uname'];
$password = $_POST['pword'];
echo $username."<br/>";
echo $password."<br/>";
if(!CheckDB())
{
$data = "false,".$sqlerror;
echo json_encode($data);
return false;
}
else
{
CheckDBL();
}
function CheckDB()
{
echo "Made it to CheckDB! <br/>";
$connection = mysqli_connect("xxxx","xxxx","xxxx","xxxx");
if(mysqli_connect_errno())
{
$sqlerror = "Could not log in to database";
return false;
}
echo "Connection established! <br/>";
mysqli_close($connection);
return true;
}
function CheckDBL($username,$password)
{
echo "Made it to CheckDBL! <br/>";
$sql = mysqli_connect("xxxx","xxxx","xxxx","xxxx");
if(mysqli_connect_errno())
{
echo "Connection failed";
return false;
}
if ($query = mysqli_prepare($sql,"Select Password From login_info Where Username = ?"))
{
mysqli_stmt_bind_param($query, "s", $username);
if (!mysqli_stmt_execute($query))
{
echo "Query failed! <br/>";
echo mysqli_error($sql);
return false;
}
else
{
echo "Query successful <br/>";
}
mysqli_stmt_bind_result($query,$password2);
mysqli_stmt_fetch($query);
echo "The password is: ".$password2;
}
else
{
echo "Statement preparation failed <br/>";
}
}
?>
这段代码在我的浏览器中的输出:
GWil
TestPassword
Made it to CheckDB!
Connection established!
Made it to CheckDBL!
Query successful
The password is:
最佳答案
$connect = mysqli_connect("localhost","root","","database") or die (mysqli_error($connect));
mysqli_set_charset($connect,"utf8");
$username="hej";
if ($query = mysqli_prepare($connect,"Select Password From login_info Where Username =?")){
mysqli_stmt_bind_param($query, "s", $username);
if (!mysqli_stmt_execute($query)){
echo "Query failed! <br/>";
echo mysqli_error($query);
return false;
}else{
echo "Query successful <br/>";
}
mysqli_stmt_bind_result($query,$password2);<br/>
mysqli_stmt_fetch($query);<br/> echo "The password is: ".$password2;<br/>
}else{
echo "Statement preparation failed";}
在表login_info中我有用户名=hej和密码=123
这将实现您正在寻找的东西。
关于javascript - PHP/MySQL 查询问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24098706/