-
Conteúdo Similar
-
Por Gabrielvt14
Olá pessoal,
Estou querendo salvar no banco de dados um link (https://site.com.br) e quero utilizar PDO para isso.
Mas pensei na hipótese do prepare barrar alguns caracteres, como, "/" (barra), ":" (dois pontos), etc...
Alguém saberia me responder se o prepare barraria esses caracteres de links? Pois sei que ele faz uma filtragem na query para evitar ataques, mas não sei exatamente quais caracteres ele filtra.
Desde já, grato!
-
Por Gabrielvt14
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!
-