簡體   English   中英

PHP / MySQL查詢問題

[英]PHP/MySQL Query Issues

我正在嘗試為網站設置基本的登錄系統,但是在使查詢正確運行方面遇到了主要問題。 到目前為止,我試圖做的所有事情都失敗了。 據我所知,查詢本身沒有失敗,但是也沒有返回任何數據。 在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

到達CheckDB!

連接已建立!

到達CheckDBL!

查詢成功

密碼是:

$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

這將達到您的期望。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM