Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

DinhoPHP

Erro somente em servidor sem ser local

Recommended Posts

Olá! Tenho o seguinte erro que acontece apenas no servidor, mas quando uso o wamserve ou easyphp não acontece. Agradeço à todos que tentarem me ajudar, como também os que conseguirem uma solução por meio de outra alternativa.

Erro:
Fatal error: Call to undefined method DB::prepare() in /home/assem528/public_html/reg_ieadr/Crud.php on line 21

arquivo Crud.php

<?php
require_once 'DB.php';
abstract class Crud extends DB{
protected $table;
abstract public function insert();
abstract public function update($id);
public function find($id){
$sql  = "SELECT * FROM $this->table WHERE id = :id";
$stmt = DB::prepare($sql);
$stmt->bindParam(':id', $id, PDO::PARAM_INT);
$stmt->execute();
return $stmt->fetch();
}
public function findAll(){
$sql  = "SELECT * FROM $this->table";
$stmt = DB::prepare($sql); <= (ESTA É A LINHA DO ERRO)
$stmt->execute();
return $stmt->fetchAll();
}
public function delete($id){
$sql  = "DELETE FROM $this->table WHERE id = :id";
$stmt = DB::prepare($sql);
$stmt->bindParam(':id', $id, PDO::PARAM_INT);
return $stmt->execute();
}
}

Arquivo config.php

<?php
define('DB_HOST', 'localhost');
define('DB_NAME', 'assem528_depart_matriz');
define('DB_USER', 'assem528_admin');
define('DB_PASS', 'ecsc21yh');

Arquivo DB.php

<?php
require '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);
}
}

Arquivo Usuario.php

<?php
require_once 'Crud.php';
class Usuarios extends Crud{
protected $table;
private $lembrete;
private $dirigente;
private $integrantes;
private $festividade;

public function setTable($table){
$this->table = $table;
}
public function setLembrete($lembrete){
$this->lembrete = $lembrete;
}
public function getLembrete(){
return $this->lembrete;
}
public function setDirigente($dirigente){
$this->dirigente = $dirigente;
}
public function setIntegrantes($integrantes){
$this->integrantes = $integrantes;
}
public function setFestividade($festividade){
$this->festividade = $festividade;
}
public function insert(){
//Verifica se há registros, e se houver, segue com a inserção
$linhas="SELECT * FROM $this->table";
$linhas2=DB::prepare($linhas);
$linhas2->execute();
if($linhas2->rowCount() == 0):
$sql  = "INSERT INTO $this->table (lembrete, dirigente, integrantes, festividade) VALUES (:lembrete, :dirigente, :integrantes, :festividade)";
$stmt = DB::prepare($sql);
$stmt->bindParam(':lembrete', $this->lembrete);
$stmt->bindParam(':dirigente', $this->dirigente);
$stmt->bindParam(':integrantes', $this->integrantes);
$stmt->bindParam(':festividade', $this->festividade);
//Executa o cadastro
return $stmt->execute();
else:
  $msg="Sorry! Já existe informações cadastradas no sistema, sendo possível apenas editá-las ou excluí-las.";
endif;
}
public function update($id){
$sql  = "UPDATE $this->table SET lembrete = :lembrete, dirigente = :dirigente, integrantes = :integrantes, festividade = :festividade WHERE id = :id";
$stmt = DB::prepare($sql);
$stmt->bindParam(':lembrete', $this->lembrete);
$stmt->bindParam(':dirigente', $this->dirigente);
$stmt->bindParam(':integrantes', $this->integrantes);
$stmt->bindParam(':festividade', $this->festividade);
$stmt->bindParam(':id', $id);
return $stmt->execute();
}
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ok Willian, verei com tempo. É que como estou com o dia a dia muito corrido, esse código eu peguei e estou adaptando às minhas necessidades. PHP eu estou cursando, então determinadas atrocidades como esta eu ainda não consigo ver e corrigir. Programo há anos, mas PHP é a linguagem que menos tenho familiaridade e experiência. Mas obrigado pelo aviso! :joia:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Consegui solucionar o meu problema no servidor pago, indicando o caminho absoluto no require. Uffaaaaaaaaaaa!!!!!!!!! Com a dica do Andrews Esteves, do Youtube. :) :) :) :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Consegui solucionar o meu problema no servidor pago, indicando o caminho absoluto no require. Uffaaaaaaaaaaa!!!!!!!!! Com a dica do Andrews Esteves, do Youtube. :) :) :) :)

manow to com o mesmo problema com o mesmo code que vc. mais nao consegui resolver. pode me ajudar?

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.