php获取到的post数据如何与mysql数据进行匹配

如图,$data为拿到的post数据,如何将$data里面的username和password与mysql里的数据进行匹配
图片描述
图片描述
图片描述

阅读 3k
3 个回答

在你得到POST数据之后,可以进行通过Mysqli或者PDO进行数据匹配,现在比较流行用PDO,因为它支持的数据库类型多,适合项目的扩展。

// 基本的处理就是判断数据是否存在
if (isset($_POST['username']) && isset($_POST['password']) ){
    
    // 链接数据库
    $db = new PDO('mysql:host=host;dbname=name', 'username', 'password');
    // 预处理查询语句
    $query = $db->prepare("SELECT * FROM login WHERE username=:username AND password=:password");
    
    // 这里要做个简单的处理 清理干净POST数据
    $query->bindValue(':username', trim($_POST['username'])));
    $query->bindValue(':password', trim($_POST['password']));
    
    // * 小说明,如果你直接把变量带入到execute()函数里面也是可以的,但是execute()会把所有变量强制变成字串,对于规范的开发,最好还是保留数据本事的类型。纯个人意见,仅供参考。
    $query->execute();

    if( $query->rowCount() > 0 ){
        // 找到匹配用户
    }else{
        // 没找到
    }
}

这。。。。你接受到了post过来的数据,下一步就是连接数据库,然后访问数据库取数据了吧,然后你通过post过来的id去查询对应数据,然后比较post的数据和mysql的数据。。。。
php操作mysql

phpmysql 的交互,我个人使用的是 pdo

$pdo = new PDO('mysql:dbname=testdb;host=127.0.0.1' , 'root' , '123456');
// 使用预处理语句
$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']
// 数量
var_dump($count);

if ($count > 0) {
    // 验证成功
} else {
    // 验证失败
}

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题