I cannot insert email to the PHP - mysql database

Asked

Viewed 160 times

1

I’m trying to insert a simple email to the database called "newsletter_emails". Checking whether a particular user is already in the database works. The excerpt starts at "News Letter"

<?php

require 'conexao.php';

// mensagem de erro
$nomeEr = $emailEr = $msgEr = $emailMsg = "";
// variáveis
$nome = $email = $msg = "";

// News letter
if(isset($_POST['letteremail']) && !empty($_POST['letteremail'])) {

    $letteremail = addslashes($_POST['letteremail']);



    //consulta na tabela
    $sql = "SELECT * FROM newsletter_emails WHERE email = '$letteremail'";
    $sql = $pdo->query($sql);

    // verifica se há emails
    if ($sql->rowCount() > 0) {
        $Lemail = $sql->fetch();

        // compara os emails
        if($Lemail['email'] == $letteremail) {
            $emailMsg = "Você já é um inscrito!";

        } else {

            $sql = "INSERT INTO newsletter_emails SET email = '$letteremail'";
            $sql = $pdo->query($sql);
        }


    }
}

if ($_SERVER["REQUEST_METHOD"] == "POST") {
    if (empty($_POST["nome"])) {
        $nomeEr = "*";
    } else {
        $nome = valida($_POST["nome"]);
        //verifica se o nome contém apenas letras e espaço
        if (!preg_match("/^[a-zA-Z ]*$/", $nome)) {
            $nomeEr = "Apenas letras e espaço";
        }
    }

    if (empty($_POST["email"])) {
        $emailEr = "*";
    } else {
        $email = valida($_POST["email"]);
        // checa se o email está no formato correto
        if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
            $emailEr = "Formato de email inválido";
        }
    }

    if (empty($_POST["msg"])) {
        $msgEr = "*";
    } else {
        $msg = valida($_POST["msg"]);
    }
}



function valida($dado) {
    $dado = trim($dado);
    $dado = stripcslashes($dado);
    $dado = htmlspecialchars($dado);

    return $dado;
}

?>

1 answer

3

Same syntax problem and is here:

"INSERT INTO newsletter_emails SET email = '$letteremail'"

INSERT is:

"INSERT INTO tabela (campo1,campo2,...) VALUES (valor1,valor2,...)"

SET is for UPDATE

Browser other questions tagged

You are not signed in. Login or sign up in order to post.