Я конвертировал некоторые из моих более простых скриптов, чтобы они начали использовать PDO, и я не могу заставить свой метод статической аутентификации работать.Я заставил это работать с этим, не будучи статичным, все же.
Вот соответствующий код с нестатическим методом аутентификации:
private $dbh;
public function __construct()
{
$this->dbh = new PDO("mysql:host=localhost;dbname=carmen", 'root', '');
$this->dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
public function authenticate($username="", $password="")
{
$sql = "SELECT * FROM user ";
$sql .= "WHERE username = :username ";
$sql .= "AND pass = :password ";
$sql .= "LIMIT 1";
$stmt = $this->dbh->prepare($sql);
$stmt->bindParam(':username', $username);
$stmt->bindParam(':password', $password);
$stmt->execute();
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);
return !empty($result) ? true : false;
}
Мои попытки решения проблемы обычно приводят к проблемам в первой строке после оператора sql при попытке объявить статический метод,Я предполагаю, что это имеет отношение к объявлению $ dbh частным в начале класса.