使用小型网站的登录系统。 这是我的代码
<?php
/**
* Description of Database
* Database class using PDO and prepared statements
*
* @author me
*/
class Database{
private $dsn = "";
private $username = "";
private $password = "";
public $dbhandler;
private static $instance;
private function __construct() {
try{
$this->dbhandler = new PDO($this->dsn, $this->username, $this->password);
/*** set the error mode to excptions ***/
$this->dbhandler->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(PDOException $exception){
die($exception->getMessage());
}
}
//singleton instance
private static function getInstance(){
if (!isset(self::$instance))
{
$object = __CLASS__;
self::$instance = new $object;
}
return self::$instance;
}
/**
* verifyLogin
*
* function to verify login for users
*
* @param string $username
* @param string $password
*
* @return void
*/
private function verifyLogin($username, $password){
$stmt = $this->dbhandler->prepare("SELECT * FROM users where username= :username AND password= :password");
$stmt->bindParam(':username', $username, PDO::PARAM_STR,30);
$stmt->bindParam(':password', $password, PDO::PARAM_STR, 15);
$stmt->execute();
$userid = $stmt->fetchColumn();
if($userid==false){
echo 'Unable to login';
}
else{
/*** set the session user_id variable ***/
$_SESSION['userid'] = $userid;
/*** tell the user we are logged in ***/
$message = 'You are now logged in';
echo $message;
}
}
}
?>
在继续之前,我想知道它是否是使用PDO实现登录系统的最佳方式? 通常,是否需要维护与数据库的单个连接(在此处使用单例实例)?