TransWikia.com

Estou tentando cria um formulário usando PHP com banco PDO

Stack Overflow em Português Asked by Vitor on February 16, 2021

Quando coloco as informações no formulário e clico para inserir aparece o seguinte erro: SQLSTATE[42000]: Syntax error or access violation: 1064.
Código abaixo:

conexao.php

<?php
$conn="mysql:host=localhost;dbname=becker";
    try
    {
        $db=new PDO($conn,'root',"");
        $db->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
    } catch(PDOException $e) {
        echo $e->getMessage();
      }
?>

inserir.php

<?php
require_once 'conexao.php';
$nome=$_POST['nome'];
$celular=$_POST['celular'];
$email=$_POST['email'];
$cpf=$_POST['cpf'];
$sql='INSERT INTO aluno (nome,celular,email,cpf)VALUES(:nome,:celular:,:email,:cpf)';
try{
    $st=$db->prepare($sql);
    $st->bindValue(':nome',$nome);
    $st->bindValue(':celular',$celular);
    $st->bindValue(':email',$email);
    $st->bindValue(':cpf',$cpf);
    if($st->execute()){
        echo 'Inserido com sucesso';
    }
}catch(PDOException $e){
    echo'Erro:'.$e->getMessage();
}
?>

form_aluno.php

  <!DOCTYPE html>
  <html lang="en">
  <head>
     <meta charset="UTF-8">
     <title>Cadastro</title>
  </head>
  <body>
  <form action="inserir.php" method="POST" class="col-sm-offset- col-xs-offset-">
    <h1>Cadastro</h1>
    <label for="nome">Nome</label>
    <input type="text" placeholder="nome" name="nome" id="nome" class="form-control" required><br>
    <label for="celular">Celular</label>
    <input type="number" placeholder="celular" name="celular" id="celular" class= "form-control" 
    required><br>
    <label for="email">E-mail</label>
    <input type="e-mail" placeholder="email" name="email" id="email" class= "form-control" required> 
    <br>
    <label for="cpf">CPF</label>
    <input type="number" placeholder="cpf" name="cpf" id="cpf" class= "form-control" required><br>
    <input type="submit" value="cadastrar" class="btn-lg btn-default col-xs-12">
  </form>
  </body>
  </html>

Se alguém puder me ajudar, agradeço.

One Answer

você tem um erro de sintaxe na sua variável $sql do trecho :celular: deveria ser apenas :celular. Sem o segundo ':'.

Correct answer by André Walker on February 16, 2021

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP