Classe de Conexão PDO com CRUD
Fala galera, estou estudando PHPOO + PDO e estou criando minha primeira classe de conexao. O que ocorre é o seguinte. Conecta, mas não consigo usar o método listar(), pois ele não carrega o metodo conectar(). Segue abaixo o código. Observação, sou totalmente aberto a críticas construtivas, inclusive caso notem algo que não é mais recomendado pela comunidade. Esse é um script para aprender e aperfeiçoar o que estou aprendendo.
arquivo banco.class.php;
<?php
abstract class Banco {
public $conn;
public $consulta;
public function conectar() {
try {
$conn = new PDO('mysql:host=127.0.0.1;dbname=orcamento', "root", "");
$conn->exec("set names utf8");
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
echo "Conectado! <br />";
} catch (PDOException $e) {
echo "ERROR: {$e->getMessage()}";
}
}
public function listar(){
$consulta = $conn->query("SELECT * FROM usuario");
while($linha = $consulta->fetch(PDO::FETCH_ASSOC)){
echo "Nome: {$linha['usuarionome']} <br />";
}
}
public function desconectar() {
//Aqui vai o metodo para desconectar
}
}
class Usuario extends Banco{
}
e o index.php;
<?php
$usuario = new Usuario();
$usuario->conectar();
$usuario->listar();
?>
A idéia, é ir implementando as "query" aos poucos para ir aprendendo mais.
Esse script está retornando o seguinte erro:
Conectado! [/size]
Notice: Undefined variable: conn in [/size]C:\xampp\htdocs\orcamento\class\banco.class.php on line [/size]21
Fatal error: Uncaught Error: Call to a member function query() on null in C:\xampp\htdocs\orcamento\class\banco.class.php:21 Stack trace: #0 C:\xampp\htdocs\orcamento\index.php(20): Banco->listar() #1 {main} thrown in[/size]C:\xampp\htdocs\orcamento\class\banco.class.php on line [/size]21
Discussão (5)
Carregando comentários...