Pdo
Olá pessoal, é o seguinte, estava seguindo um tutorial sobre como fazer um script de login utilizando OO + PDO, estava indo muito bem até deparar com o seguinte erro: Fatal error: Call to a member function prepare() on a non-object in /home/arthur/www/projeto1/Classes/Login.php on line 25
segue meu código:
Classes/Conexao.php
<?php
abstract class Conexao {
const USER = "root";
const PASS = "12345";
private static $instance = null;
private static function conectar() {
try {
if (self::$instance = NULL):
$dsn="mysql:host=localhost;dbname=projeto1";
self::$instance = new PDO($dsn, self::USER, self::PASS);
self::$instance->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
endif;
} catch (PDOException $e) {
echo "Erro: " . $e->getMessage();
}
return self::$instance;
}
protected static function getDB() {
return self::conectar();
}
}
?>
Classes/Login.php
<?php
class Login extends Conexao{
private $usuario;
private $senha;
public function setUsuario($usuario){
$this->usuario = $usuario;
}
public function setSenha($senha){
$this->senha = $senha;
}
public function getUsuario(){
return $this->usuario;
}
public function getSenha(){
return $this->senha;
}
public function logar(){
$pdo = parent::getDB();
$logar = $pdo->prepare("SELECT * FROM usuarios WHERE usuario = ? AND senha = ?");
$logar->bindValue(1, $this->getUsuario());
$logar->bindValue(2, $this->getSenha());
$logar->execute();
if ($logar->rowCount() == 1):
return TRUE;
else:
return FALSE;
endif;
}
}
?>
index.php
<?php
require_once "Classes/Conexao.php";
require_once "Classes/Login.php";
if (isset($_POST["ok"])):
$usuario = filter_input(INPUT_POST, "usuario", FILTER_SANITIZE_MAGIC_QUOTES);
$senha = filter_input(INPUT_POST, "senha", FILTER_SANITIZE_MAGIC_QUOTES);
$l = new Login;
$l->setUsuario($usuario);
$l->setSenha(md5($senha));
if($l->logar()):
header("location: admin.php");
else:
$erro = "Usuário ou senha incorreto.";
endif;
endif;
?>
Desde já agradeço qualquer ajuda :B
Ops, achei o erro malz ae galera.
try {
if (self::$instance == NULL):
$dsn="mysql:host=localhost;dbname=projeto1";
self::$instance = new PDO($dsn, self::USER, self::PASS);
self::$instance->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);Discussão (5)
Carregando comentários...