Murray 0 Denunciar post Postado Abril 4, 2015 Tenho um código PDO simples pra inserção (antes disso conferir se o nome já não existe no BD, se sim enviar que o nome já existe, se não postar). O código imprime as mensagens pra mim, mas quando consulto o banco nenhuma inserção foi feita. Já tive o mesmo problema com código mysql comum neste mesmo servidor.Alguém tem ideia do que seja? Valeu Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Abril 4, 2015 Você pode usar o método errorInfo, para verificar se o mysql retornou algum erro. Veja um exemplo aqui: http://www.ultimatephp.com.br/como-usar-pdo-com-banco-de-dados-mysql/ Compartilhar este post Link para o post Compartilhar em outros sites
Murray 0 Denunciar post Postado Abril 5, 2015 Deu o seguinte erro: array(3) { [0]=> string(5) "42000" [1]=> int(1064) [2]=> string(226) "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''id','nome','email','telefone') VALUES ('','Michael','michael@email.com.br','332' at line 1" } Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Abril 5, 2015 não se usam aspas nos nomes dos campos, apenas nos valores faça assim: "INSERT INTO tabela(campo1, campo2) VALUES('valor1, 'valor2'); note que não há aspas em "campo1" e "campo2" Compartilhar este post Link para o post Compartilhar em outros sites
Murray 0 Denunciar post Postado Abril 5, 2015 No caso passei os valores como interrogação. Nunca vi alguém usar PDO com os valores tendo aspas. Uso neles mesmo assim? Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Abril 5, 2015 Veja o seu INSERT. As strings "nome", "email" e "telefone" estão entre aspas. Retire as aspas. Esses são os nomes dos campos As interrogações são os valores. Não mexa nisso. Compartilhar este post Link para o post Compartilhar em outros sites
Murray 0 Denunciar post Postado Abril 5, 2015 Sim, funcionou. Valeu :D Fiz o seguinte código pra mostrar esse erro ai: $sql = $prepare->execute(); if ($sql){ echo 'Postado com sucesso!'; } else { var_dump($prepare->errorInfo()); } Esse errorInfo mostra muita coisa específica. Tem como eu dar uma polida e me mostrar apenas a mensagem? Por que vou retornar isso direto num aplicativo, tipo se eu digitar o mesmo nome ele me retorna que o nome já existe, mas muita coisa, queria só a mensagem mesmo. Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Abril 5, 2015 errorInfo retorna o erro do SGBD. Você tem que tratar os erros pelo código, se quiser personalizar as mensagens. No seu caso, ao registrar um nome que já existe, será retornado o erro 1062 do MySQL, para chave duplicada. Veja mais aqui: https://dev.mysql.com/doc/refman/5.0/en/error-messages-server.html Compartilhar este post Link para o post Compartilhar em outros sites
Murray 0 Denunciar post Postado Abril 5, 2015 Entendi. Valeu. Compartilhar este post Link para o post Compartilhar em outros sites