Estou tentando criar um sistema de cadastro/login, tá tudo prontinho, porém ao cadastrar um novo usuário recebo esse erro:
Erro ao cadastrarArray ( [0] => 42S22 [1] => 1054 [2] => Unknown column ‘name’ in ‘field list’ )
Eu sou iniciante em PHP, e estou tentando utilizar PDO pois sei que o MySQL foi descontinuado e já queria estar atualizado, pesquisei e descobri que pode ser um erro simples de aspas. Porém eu já tentei mas não consigo resolver, essa foi a solução da pergunta de outro usuário que achei: "Eu procurei e descobri que, como a coluna de nome é um campo varchar, a inserção exige aspas simples, porque o valor a ser passado é a string.
INSERIR EM vídeos SET id_aula = {$ id_aula}, name = '{$ name}'"
Ele acabou de adicionar as aspas simples para enviar o valor do nome como uma string."
Mas eu não consigo identificar de qualquer maneira, alguém por favor pode me ajudar por favor eu tô a muito tempo procurando ajuda mas ninguém consegue ou não sabe.
Esse é meu código que creio ser onde está o erro (por que é nela que o erro aparece depois de dar submit no formulário de cadastro):
<?php
require_once 'init.php';
// pega os dados do formuário
$name = isset($_POST['name']) ? $_POST['name'] : null;
$email = isset($_POST['email']) ? $_POST['email'] : null;
$senha = isset($_POST['senha']) ? $_POST['senha'] : null;
// validação (bem simples, só pra evitar dados vazios)
if (empty($name) || empty($email) || empty($senha))
{
echo "Volte e preencha todos os campos";
exit;
}
// insere no banco
$PDO = db_connect();
$sql = "INSERT INTO users(name, email, senha) VALUES(:name, :email, :senha)";
$stmt = $PDO->prepare($sql);
$stmt->bindParam(':name', $name);
$stmt->bindParam(':email', $email);
$stmt->bindParam(':senha', $senha);
if ($stmt->execute())
{
header('Location: index.php');
}
else
{
echo "Erro ao cadastrar";
print_r($stmt->errorInfo());
}