Javascript PHP/MySQL查询问题

Javascript PHP/MySQL查询问题,javascript,php,mysql,post,jscript,Javascript,Php,Mysql,Post,Jscript,我正在尝试为一个网站建立一个基本的登录系统,但是我在让查询正确运行方面遇到了重大问题。到目前为止,我试图弄清楚到底发生了什么的一切都失败了。据我所知,查询本身没有失败,但也没有返回任何数据。在phpMyAdmin中使用查询将返回正确的查询信息 以下是我的php代码: <?PHP //Empty error variables $sqlerror; if(empty($_POST['uname'])) { $data = "false,Username field em

我正在尝试为一个网站建立一个基本的登录系统,但是我在让查询正确运行方面遇到了重大问题。到目前为止,我试图弄清楚到底发生了什么的一切都失败了。据我所知,查询本身没有失败,但也没有返回任何数据。在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/>";
    }
}
?>

以及此代码在我的浏览器中的输出:

瓜尔

测试密码

去了CheckDB

建立连接

到了CheckDBL

查询成功

密码为:

$connect=mysqli_connect(“本地主机”、“根”、“数据库”)或die(mysqli_错误($connect));
mysqli_set_charset($connect,“utf8”);
$username=“hej”;
如果($query=mysqli\u prepare($connect,“从登录信息中选择密码,其中用户名=?”){
mysqli_stmt_bind_param($query,“s”,$username);
如果(!mysqli_stmt_execute($query)){
回显“查询失败!
”; echo mysqli_错误($query); 返回false; }否则{ 回显“查询成功
”; } mysqli_stmt_bind_result($query,$password2);
mysqli_stmt_fetch($query);
echo“密码是:”.$password2;
}否则{ echo“语句准备失败”;}
在登录信息表中,我有username=hej和password=123


这将实现您所需的功能。

在代码中的任何位置,我是否看到您获得任何查询信息。以及您希望打印什么数据源?输出似乎没有问题?您希望得到什么?@u_mulder我正在尝试从数据库表中检索测试密码,该数据库表是代码根据网站index.html页面表单中提供的用户名连接到的。然而,我的初始版本的代码没有产生任何东西,即使我知道有问题的代码(上面没有在OP中显示,这是我试图从数据库中获取返回的frankencode)。是的,这是一个混乱,由于所有的修补,我一直试图让它输出任何数据返回。至于您建议的代码更改,它不会在php页面上产生额外的信息。与我的作品中描述的输出相同。继续阅读这里,你会找到你想要的答案。你真的应该清理你的代码,因为现在它真的没有意义,你已经在你的连接部分准备和执行了吗?我已经按照文档页面的建议,更新了我的OP中的代码。事情仍然不正常,但看起来语句准备得很好。这将解决你的问题,我对它进行了测试,效果良好。我编辑了我的原始答案,用你的建议替换了我的CheckDBL代码。语句中的“>”触发了我添加到函数最后一个else中的mysqli_error()行,指出存在语法错误。已将其删除,但仍无法检索密码。我将在我自己的Web主机上尝试该代码,因为我现在怀疑我的客户机的Web主机在服务器端设置不正确。
$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";}