PDO - erro no prepare
Olá pessoal,
estou começando meus estudo em PHPOO, e estou fazendo um CRUD. Mas quando tento dar um insert no banco acusa erro no prepre e não consigo resolver este problema. Alguém poderia me ajudar?
classe de conexao: Banco.php
<?php
class Banco
{
private $dns = 'mysql:host=localhost;dbname=alunos';
private $user = 'root';
private $pass = 'vertrigo';
public $pdo;
public function __construct()
{
$this->conecta();
}
public function conecta()
{
try {
$this->pdo = new PDO($this->dns, $this->user, $this->pass);
} catch (PDOException $e) {
die('Erro ao conectar com a base de dados: ' . $e->getMessage());
}
return $this->pdo;
}
}
classe de INSERT no banco (extends Aluno): Cadastrar.php:
<?php
require_once '../lib/Banco.php';
require_once 'Aluno.php';
class Cadastrar extends Aluno
{
protected $aluno;
public function __construct($aluno)
{
$this->aluno = new Aluno($aluno);
$this->insert();
}
public function insert()
{
$pdo = new Banco();
$insert = "INSERT INTO alunos(nome, nota1, nota2, nota3, nota4)
VALUES(:nome, :nota1, :nota2, :nota3, :nota4)";
$stmt = $pdo->prepare($insert);
$stmt->bindValue(':nome', $this->aluno['nomeAluno']);
$stmt->bindValue(':nota1', $this->aluno['nota1']);
$stmt->bindValue(':nota2', $this->aluno['nota2']);
$stmt->bindValue(':nota3', $this->aluno['nota3']);
$stmt->bindValue(':nota4', $this->aluno['nota4']);
if ($stmt->execute()) {
header('Location: ../index.php');
} else {
die('Erro ao cadastrar aluno');
}
}
}
$cadastrar = new Cadastrar($_POST);
classe de Aluno: Aluno.php
<?php
class Aluno
{
protected $nome;
protected $media;
protected $n1, $n2, $n3, $n4;
public function __construct($dados)
{
$this->nome = $dados['nomeAluno'];
$this->n1 = $dados['nota1'];
$this->n2 = $dados['nota2'];
$this->n3 = $dados['nota3'];
$this->n4 = $dados['nota4'];
}
public function getNome()
{
return $this->nome;
}
public function getN1()
{
return $this->n1;
}
public function getN2()
{
return $this->n2;
}
public function getN3()
{
return $this->n3;
}
public function getN4()
{
return $this->n4;
}
}
O erro que apresenta quando tento o cadastro é:
Fatal error: Call to undefined method Banco::prepare() in C:\Program Files\VertrigoServ\www\Projetos\ListaExercicios\Atividade_12\core\Cadastrar.php on line *21*
Não sei onde estou errando, alguém poderia me ajudar?
Grato!Discussão (3)
Carregando comentários...