Fatal error: Call to undefined method DB::prepare()
Boa noite pessoal,
Estou tendo um pequeno problema ao PDO, estou iniciando agora no PDO em PHP, mas, não vejo o porque do erro. Fiquei a tarde toda analisando o codigo e não consegui resolver este problema:
Fatal error: Call to undefined method DB::prepare() in C:\xampp\htdocs\dev\beta\classes\Upload.php on line 26
Upload.php
<?php
require_once 'Crud.php';
class Upload extends Crud{
protected $table = 'arquivos';
private $nome_arquivo;
private $caminho_arquivo;
public function setNome_arquivo($nome_arquivo){
$this->nome_arquivo = $nome_arquivo;
}
public function getNome_arquivo(){
return $nome_arquivo->nome_arquivo;
}
public function setCaminho_arquivo($caminho_arquivo){
$this->caminho_arquivo = $caminho_arquivo;
}
public function insert(){
$sql = "INSERT INTO $this->table (nome_arquivo, caminho_arquivo) VALUES (:nome_arquivo, :caminho_arquivo)";
$stmt = DB::prepare($sql);
$stmt->bindParam(':nome_arquivo', $this->nome_arquivo);
$stmt->bindParam(':caminho_arquivo', $this->caminho_arquivo);
return $stmt->execute();
}
public function update($id_arquivo){
$sql = "UPDATE $this->table SET nome_arquivo = :nome_arquivo, caminho_arquivo = :caminho_arquivo WHERE id_arquivo = :id_arquivo";
$stmt = DB::prepare($sql);
$stmt->bindParam(':nome_arquivo', $this->nome_arquivo);
$stmt->bindParam(':caminho_arquivo', $this->caminho_arquivo);
$stmt->bindParam(':id_arquivo', $id_arquivo);
return $stmt->execute();
}
}
Crud.php
<?php
require_once 'DB.php';
abstract class Crud extends DB{
protected $table;
abstract public function insert();
abstract public function update($id_arquivo);
public function find($id_arquivo){
$sql = "SELECT * FROM $this->table WHERE id_arquivo = :id_arquivo";
$stmt = DB::prepare($sql);
$stmt->bindParam(':id_arquivo', $id_arquivo, PDO::PARAM_INT);
$stmt->execute();
return $stmt->fetch();
}
public function findAll(){
$sql = "SELECT * FROM $this->table";
$stmt = DB::prepare($sql);
$stmt->execute();
return $stmt->fetchAll();
}
public function delete($id_arquivo){
$sql = "DELETE FROM $this->table WHERE id_arquivo = :id_arquivo";
$stmt = DB::prepare($sql);
$stmt->bindParam(':id_arquivo', $id_arquivo, PDO::PARAM_INT);
return $stmt->execute();
}
}
DB.php
<?php
require_once 'config.php';
class DB{
private static $instance;
public static function getInstance(){
if(!isset(self::$instance)){
try {
self::$instance = new PDO('mysql:host=' . DB_HOST . ';dbname=' . DB_NAME, DB_USER, DB_PASS);
self::$instance->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
self::$instance->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_OBJ);
} catch (PDOException $e) {
echo $e->getMessage();
}
}
return self::$instance;
}
public static function prepare($sql){
return self::getInstance()->prepare($sql);
}
}
config.php
<?php
define('DB_HOST', 'localhost');
define('DB_NAME', 'upload');
define('DB_USER', 'root');
define('DB_PASS', '');
Alguém pode me ajudar? Onde errei?
Discussão (1)
Carregando comentários...