Browse Source

登录改用PDO

master
wanghongjun 2 years ago
parent
commit
cfa01802fb
  1. 9
      source/application/admin/model/admin/User.php
  2. 43
      source/application/common/dm/Dm.php

9
source/application/admin/model/admin/User.php

@ -25,18 +25,19 @@ class User extends UserModel
{
// 验证用户名密码是否正确
$dm = new Dm();
if (!$user = $dm->find('bt_admin_user',[
$user = $dm->dmPDOFind('bt_admin_user',[
'user_name' => $data['user_name'],
'password' => yoshop_hash($data['password'])
])) {
]);
if (!$user['status']) {
$this->error = '登录失败, 用户名或密码错误';
return false;
}
// 保存登录状态
Session::set('yoshop_admin', [
'user' => [
'admin_user_id' => $user['admin_user_id'],
'user_name' => $user['user_name'],
'admin_user_id' => $user['data']['admin_user_id'],
'user_name' => $user['data']['user_name'],
],
'is_login' => true,
]);

43
source/application/common/dm/Dm.php

@ -313,4 +313,47 @@ class Dm
'pageData' => $pageData,
];
}
public function dmPDOFind($table,array $where)
{
try {
$database = config('database');
$dm_config = $database['connections']['dm'];
$dsn = "dm:host={$dm_config['hostname']};port={$dm_config['hostport']};dbname={$dm_config['database']}";
$connection = new \PDO($dsn, $dm_config['username'], $dm_config['password']);
$connection->setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION);
$tableName = $this->splitTableName($table);
$fields = array_keys($where);
$whereSqlArr = [];
foreach ($fields as $field) $whereSqlArr[] = '"'.$field.'"' . ' = ' . '?';
$whereSql = implode(" and ",$whereSqlArr);
$sql = "SELECT * FROM {$tableName} WHERE " . $whereSql;
// 准备预编译语句
$statement = $connection->prepare($sql);
$statement->bindParam(1, $where['user_name']);
$statement->bindParam(2, $where['password']);
// 执行查询
$statement->execute();
$data = [];
while ($row = $statement->fetch(\PDO::FETCH_ASSOC)) {
$data = $row;
}
if (empty($data)) return ['status' => false, 'msg' => '失败'];
return ['status' => true, 'msg' => '成功','data' => $data];
} catch (\PDOException $e) {
return ['status' => false, 'msg' => $e->getMessage()];
}
}
}

Loading…
Cancel
Save