鍍金池/ 問答/PHP  數(shù)據(jù)庫/ php獲取到的post數(shù)據(jù)如何與mysql數(shù)據(jù)進(jìn)行匹配

php獲取到的post數(shù)據(jù)如何與mysql數(shù)據(jù)進(jìn)行匹配

如圖,$data為拿到的post數(shù)據(jù),如何將$data里面的username和password與mysql里的數(shù)據(jù)進(jìn)行匹配
圖片描述
圖片描述
圖片描述

回答
編輯回答
赱丅呿

phpmysql 的交互,我個人使用的是 pdo。

$pdo = new PDO('mysql:dbname=testdb;host=127.0.0.1' , 'root' , '123456');
// 使用預(yù)處理語句
$stmt = $pdo->prepare("select count(*) as `count` from user where username = :username and password = :password");
$stmt->execute([
    ':usename' => $_POST['username'] , 
    ':password' => $_POST['password']
]);
$res = $stmt->fetchAll(PDO::FETCH_ASSOC);
$count = $res[0]['count']
// 數(shù)量
var_dump($count);

if ($count > 0) {
    // 驗(yàn)證成功
} else {
    // 驗(yàn)證失敗
}

2017年7月9日 08:51
編輯回答
純妹

在你得到POST數(shù)據(jù)之后,可以進(jìn)行通過Mysqli或者PDO進(jìn)行數(shù)據(jù)匹配,現(xiàn)在比較流行用PDO,因?yàn)樗С值臄?shù)據(jù)庫類型多,適合項(xiàng)目的擴(kuò)展。

// 基本的處理就是判斷數(shù)據(jù)是否存在
if (isset($_POST['username']) && isset($_POST['password']) ){
    
    // 鏈接數(shù)據(jù)庫
    $db = new PDO('mysql:host=host;dbname=name', 'username', 'password');
    // 預(yù)處理查詢語句
    $query = $db->prepare("SELECT * FROM login WHERE username=:username AND password=:password");
    
    // 這里要做個簡單的處理 清理干凈POST數(shù)據(jù)
    $query->bindValue(':username', trim($_POST['username'])));
    $query->bindValue(':password', trim($_POST['password']));
    
    // * 小說明,如果你直接把變量帶入到execute()函數(shù)里面也是可以的,但是execute()會把所有變量強(qiáng)制變成字串,對于規(guī)范的開發(fā),最好還是保留數(shù)據(jù)本事的類型。純個人意見,僅供參考。
    $query->execute();

    if( $query->rowCount() > 0 ){
        // 找到匹配用戶
    }else{
        // 沒找到
    }
}
2017年5月19日 01:44
編輯回答
愚念

這。。。。你接受到了post過來的數(shù)據(jù),下一步就是連接數(shù)據(jù)庫,然后訪問數(shù)據(jù)庫取數(shù)據(jù)了吧,然后你通過post過來的id去查詢對應(yīng)數(shù)據(jù),然后比較post的數(shù)據(jù)和mysql的數(shù)據(jù)。。。。
php操作mysql

2018年4月7日 23:29