Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá, saudações.
Adaptei um CRUD com PDO para postagens de matérias.
No servidor remoto funciona mas no local (WAMP SERVER) a classe Insert não altera o BD.
include_once 'Conexao.class.php';
class ServiceDb {
private $db;
private $entity;
public function __construct(EntidadeInterface $entity) {
$this->db = new Conexao();
$this->entity = $entity;
}
public function Inserir($atributos) {
$keys = implode(",", array_keys($atributos));
$junta = ":" . implode(",:", array_keys($atributos));
$separa = explode(",", $junta);
$campos = "(" . $keys . ") VALUES (" . $junta . ")";
$query = "INSERT INTO {$this->entity->getTable()} " . $campos;
$combinaAray = array_combine($separa, array_values($atributos));
$stmt = $this->db->prepare($query);
if ($stmt->execute($combinaAray)) {
return true;
} else {
echo "<script> alert ('" . Error::class . "'); </script>;";
echo "<script> alert ('Houve um problema ao tentar fazer a publicação.'); </script>";
echo "<script>window.location = '../destaques/index.php';</script>";
}
}
}
Na pagina que que crio os objetos fica assim:
$dados = array("responsavel" => $resp, "data_registro" => $nova_data);
$dest = new Destaque();
$exec = new ServiceDb($dest);
$exec->Inserir($dados)
$dados: é o array manda as informações para variável $atributo da classe Inserir.
$dest: cria a instância da classe Destaque que passa a tabela a ser alterada (Destaque.class.php).
$exec: cria a instância da classe ServiceDb (ServiceDb.class.php).
Conexao.class.php:
class Conexao extends PDO {
private $host = 'mysql:host=localhost;dbname=teste_2';
private $user = 'root';
private $pass = '';
private $pdo = NULL;
function __construct() {
try {
if ($this->pdo == NULL) {
$obj_pdo = parent::__construct($this->host , $this->user , $this->pass , array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"));
$this->pdo = $obj_pdo;
return $this->pdo;
}
} catch (PDOException $erro) {
echo 'Conexão Falhou:' . $erro->getMessage();
return false;
}
}
function __destruct() {
$this->pdo = NULL;
}
}
Alguém saberia porque não funciona localmente?
Carregando comentários...