Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa tarde, quando mando gravar os dados no banco de dados, só retorna a mensagem que os dados não podem ser gravados mais não mostra o erro, segue o meu codigo:
aqui faço a conexão com o BD
<?php
error_reporting (E_ALL & ~ E_NOTICE & ~ E_DEPRECATED);
$host = "localhost";
$usuario = "root";
$senha = "";
$banco = "cadastro";
$conn = mysql_connect($host, $usuario, $senha) or die ("Servidor não responde");
$db = mysql_select_db($banco, $conn) or die ("Não foi possível realizar a conexão com o Banco de Dados");
?>
e aqui e aonde eu tenho o formulario pra inserir os dados, e também a ação que ele vai fazer quando for executado;
<?php
include "configuracao/conn.php";
$acao = $_GET["acao"];
if ($acao == "cadastro") {
// Recebendo valores
$nome = $_POST["nome"];
$email = $_POST["email"];
$nascimento = $_POST["nascimento"];
$telefone = $_POST["telefone"];
$info = $_POST["info"];
// Nome
if ($nome == "") {
$error[0] = "Preencha o campo nome";
}
// Data de nascimento
if ($nascimento == "") {
$error[2] = "Preencha a data de nascimento"; $error[2] = "Data de nascimento em formato inválido";
}
// Caso não haja nenhum erro
if (sizeof($error) == 0) {
$sql = mysql_query("INSERT INTO clientes VALUES ('', '$nome', '$email', '$nascimento', '$telefone', '$info')");
if ($sql) {
echo "<script language='javascript'>alert('Cadastro efetuado com sucesso')</script>";
} else {
echo "<script language='javascript'>alert('Não foi possivel realizar o cadastro no momento')</script>";
}
}
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Cadastro</title>
<link href="estilo.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="principal">
<h1>Cadastro de Clientes</h1>
<?php foreach ($error as $err) {
echo "<font color='red'><b>" .$err . "</b></font><br />";
}
}
?>
<form method="post" action="cadastro.php?acao=cadastro">
<p><strong>Nome:</strong><br /><input name="nome" type="text" value="<?php if (sizeof($error) != 0) { echo $nome; } ?>" /></p>
<p><strong>Email:</strong><br /><input name="email" type="text" value="<?php if (sizeof($error) != 0) { echo $email; } ?>" /></p>
<p><strong>Data de Nascimento:</strong><br /><input name="nascimento" type="text" value="<?php if (sizeof($error) != 0) { echo $nascimento; } ?>" /> <em>(Ex: dd/mm/aaaa) </em></p>
<p><strong>Telefone:</strong><br /><input name="telefone" type="text" value="<?php if (sizeof($error) != 0) { echo $telefone; } ?>" /> <em>(Ex: 14 3210-1234)</em></p>
<p><strong>Informações Adicionais:</strong><br /><textarea name="info" cols="30" rows="5"><?php if (sizeof($error) != 0) { echo $info; } ?></textarea></p>
<p><input type="submit" value="Cadastrar" /></p>
</form>
</div>
</body>
</html>
quando mando executar, ele não apresenta nenhum erro pra min, apenas aparece a seguinte menssagem "Não foi possivel realizar o cadastro no momento"
Use o mysql_error() para exibir o erro que existe na query.
Coloquei amigo, mesmo assim não retornou nenhum erro:
<?php
include "configuracao/conn.php";
$acao = $_GET["acao"];
if ($acao == "cadastro") {
// Recebendo valores
$nome = $_POST["nome"];
$email = $_POST["email"];
$nascimento = $_POST["nascimento"];
$telefone = $_POST["telefone"];
$info = $_POST["info"];
// Nome
if ($nome == "") {
$error[0] = "Preencha o campo nome";
}
// Data de nascimento
if ($nascimento == "") {
$error[2] = "Preencha a data de nascimento"; $error[2] = "Data de nascimento em formato inválido";
}
// Caso não haja nenhum erro
if (sizeof($error) == 0) {
$sql = mysql_query("INSERT INTO clientes VALUES ('', '$nome', '$email', '$nascimento', '$telefone', '$info')");
if ($sql) {
echo "<script language='javascript'>alert('Cadastro efetuado com sucesso')</script>";
} else {
echo "<script language='javascript'>alert('Não foi possivel realizar o cadastro no momento')</script>";
}
}
}
mysql_error()
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Cadastro</title>
<link href="estilo.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="principal">
<h1>Cadastro de Clientes</h1>
<?php foreach ($error as $err) {
echo "<font color='red'><b>" .$err . "</b></font><br />";
}
}
?>
<form method="post" action="cadastro.php?acao=cadastro">
<p><strong>Nome:</strong><br /><input name="nome" type="text" value="<?php if (sizeof($error) != 0) { echo $nome; } ?>" /></p>
<p><strong>Email:</strong><br /><input name="email" type="text" value="<?php if (sizeof($error) != 0) { echo $email; } ?>" /></p>
<p><strong>Data de Nascimento:</strong><br /><input name="nascimento" type="text" value="<?php if (sizeof($error) != 0) { echo $nascimento; } ?>" /> <em>(Ex: dd/mm/aaaa) </em></p>
<p><strong>Telefone:</strong><br /><input name="telefone" type="text" value="<?php if (sizeof($error) != 0) { echo $telefone; } ?>" /> <em>(Ex: 14 3210-1234)</em></p>
<p><strong>Informações Adicionais:</strong><br /><textarea name="info" cols="30" rows="5"><?php if (sizeof($error) != 0) { echo $info; } ?></textarea></p>
<p><input type="submit" value="Cadastrar" /></p>
</form>
</div>
</body>
</html>$sql = mysql_query("INSERT INTO clientes VALUES ('', '$nome', '$email', '$nascimento', '$telefone', '$info')") OR DIE(mysql_error());
>
$sql = mysql_query("INSERT INTO clientes VALUES ('', '$nome', '$email', '$nascimento', '$telefone', '$info')") OR DIE(mysql_error());
Ah sim desculpe eu ter colocado no local errado, agora eu coloquei e apareceu este erro aqui:
Incorrect integer value: '' for column 'id' at row 1
Seria mudar o campo "id" para Null ? no Mysql ?
Acho que o seu problema seria o mesmo que o meu, porem estou usando PDO.
$stmt = $db->prepare("insert into crud values('', ?, ?, ?, ?)");
caso alguem saiba como resolver teria como ajudar?
Se a sua coluna é um auto increment você não precisa citá-la na query.
Se a sua coluna é um auto increment você não precisa citá-la na query.
Meu mysql esta da seguinte forma:
CREATE TABLE clientes ( id int(11) NOT NULL auto_increment, nome varchar(50) NOT NULL, email varchar(50) NOT NULL, nascimento varchar(50) NOT NULL, telefone varchar(50) NOT NULL, info text NOT NULL, PRIMARY KEY (id)) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;---- Extraindo dados da tabela clientes--INSERT INTO clientes (id, nome, email, nascimento, telefone, info) VALUES(1, 'Rafael', 'faelcalves@hotmail.com', '22/01/1992', '14 3210-1234', 'xD');
Não então o codigo da query ficaria assim ?
$sql = mysql_query("INSERT INTO clientes VALUES ('$nome', '$email', '$nascimento', '$telefone', '$info')");
Fiz isso, mais continuou dando a mesma menssagem "Não foi possivel realizar o cadastro no momento"
$sql = mysql_query("INSERT INTO clientes VALUES ('$nome', '$email', '$nascimento', '$telefone', '$info')");
Tchê, programação não é mágica ou adivinhação, debug existe para exibir os erros, basta usar o que eu já citei acima que o erro será exibido.
Tchê, programação não é mágica ou adivinhação, debug existe para exibir os erros, basta usar o que eu já citei acima que o erro será exibido.
Rsrs entendo, mais estou meio confuso onde retirar o codigo na query sendo que eu deixei da seguinte forma:
$sql = mysql_query("INSERT INTO clientes VALUES ('$nome', '$email', '$nascimento', '$telefone', '$info')");
Mesmo assim não deu
:wacko:
Cara, é só você fazer o que eu já citei acima.. não cadastrou? OR DIE(mysql_error()! Isso irá exibir o erro...
$sql = mysql_query("INSERT INTO clientes VALUES ('$nome', '$email', '$nascimento', '$telefone', '$info')") OR DIE(mysql_error());
>
Cara, é só você fazer o que eu já citei acima.. não cadastrou? OR DIE(mysql_error()! Isso irá exibir o erro...
$sql = mysql_query("INSERT INTO clientes VALUES ('$nome', '$email', '$nascimento', '$telefone', '$info')") OR DIE(mysql_error());
Ah sim, desculpe por não ter entendido, apareceu este erro aqui:
Column count doesn't match value count at row 1
Vamos as tentativas:
$sql = mysql_query("INSERT INTO clientes VALUES (NULL , '$nome', '$email', '$nascimento', '$telefone', '$info')") OR DIE(mysql_error());
Deu certo cadastrou o usuário, Muito obrigado pela sua ajuda, mais eu gostaria de entender o que aconteceu que agora deu certo teria como me explicar pra conhecimento meu amigo ?
cara não é necessário, mas saber inglês facilita em 100% o aprendizado na linguagem. no caso do erro diz que que foi um erro de syntax ou seja quando você abre parenteses e fecha, ele espera a seguinte sintaxe ";". O mesmo aconteceu ai, você esta passando um array de informações se eu estou aprendendo direito. E nesse array você começou colocando uma virgula nele em quanto ele esperava uma variável ou uma string ou um integer.
cara não é necessário, mas saber inglês facilita em 100% o aprendizado na linguagem. no caso do erro diz que que foi um erro de syntax ou seja quando você abre parenteses e fecha, ele espera a seguinte sintaxe ";". O mesmo aconteceu ai, você esta passando um array de informações se eu estou aprendendo direito. E nesse array você começou colocando uma virgula nele em quanto ele esperava uma variável ou uma string ou um integer.
Obrigado, agora entendi.
Use o mysql_error() para exibir o erro que existe na query.