Jump to content


Photo

Mysql Não Insere No Banco, Mas Diz Que Foi Inserido!


  • Faça o login para participar
2 replies to this topic

#1 xina

xina

    Turista

  • Usuários
  • 39 posts
  • Sexo:Masculino
  • Localidade:Divinopolis MG

Posted 15/03/2009, 20:14

Pessoal, to kebrando a cabeça aqui com um script meu.... coisa basica, pois sou iniciante....
Acontece que ele diz que o registro foi inserido, porém no banco não é inserido, somente a mensagem é que é retornada! Não dá nenhum erro.

Valew pessoal


<title>Incluir Cliente</title>

<?php

		$link = mysql_connect("localhost", "root", "") or die ("Não foi possível conectar:".mysql_error());

		$banco = mysql_select_db("divicredccf", $link) or die ("Erro ao abrir banco:" .mysql_error());


  function convData($data) {
			if(substr($data,2,1) == "/")
			{
				$dd = substr($data, 0,2);
				$mm = substr($data, 3,2);
				$aa = substr($data, 6,4);
				$time = substr($data, 11,8);
				if($time != "")
					$data = $aa."-".$mm."-".$dd." ".$time;
				else
					$data = $aa."-".$mm."-".$dd;
			}
			else
			{
				$dd = substr($data, 8,2);
				$mm = substr($data, 5,2);
				$aa = substr($data, 0,4);
				$time = substr($data, 11,8);
				if($time != "")
					$data = $dd."/".$mm."/".$aa." ".$time;
				else
					$data = $dd."/".$mm."/".$aa;
			}
			if($data=='//')
			{
				$data = '';
			}
			return $data;
	}


$cliente = $_POST["txtcliente"]; //Número ID do cliente
$emitente = strtoupper($_POST["txtemitente"]);
$valor = $_POST["txtvalor"];
$vencimento = convData($_POST["txtvencimento"]);
$leituracheque = $_POST["txtleituracheque"];
$entrada = convData($_POST["txtdataentrada"]);







		$buscaigual = mysql_query("select * from cheques where leituracheque='$leituracheque'");

$linha = 0;

		while ($row=mysql_fetch_array($buscaigual)) {
	   
		   echo "Um cheque com esta mesma LEITURA foi cadastrada: ".$leituracheque.
				"<br>Para o cliente com ID: ". $row["idcliente"].
				"<p>"
			  ;


			$linha+1;  
		   
		}
if ($linha==0){


		mysql_query("Insert into cheques (idcliente, emitente, leituracheque, vencimento, valor, dataentrada)values ('$cliente','$emitente','$leituracheque','$vencimento','$valor','$entrada'");

		echo "Dados inseridos com sucesso!
					<p>
					Foram inseridos<p>
					O ID do cliente: " . $cliente  ."<br>
					O emitente: " . $emitente  ."<br>
					O valor: " . $valor  ."<br>
					O vencimento: " . $vencimento  ."<br>
					A leitura do cheque: " . $leituracheque  ."<br>
					A data de entrada: " . $entrada  ."<br>"

								  ;
}
?>

-- Estrutura da tabela `cheques`
--

CREATE TABLE IF NOT EXISTS `cheques` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `idcliente` int(5) NOT NULL,
  `emitente` varchar(50) NOT NULL,
  `leituracheque` varchar(50) NOT NULL,
  `vencimento` date NOT NULL,
  `valor` varchar(50) NOT NULL,
  `dataentrada` date NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=2;

Edição feita por: xina, 15/03/2009, 20:15.


#2 Paulo André

Paulo André

    Why so serious?

  • Ex-Admins
  • 5114 posts
  • Sexo:Masculino
  • Localidade:Belo Horizonte - MG
  • Interesses:O.Q.F.J.?

Posted 16/03/2009, 06:59

Você diz que foi inserido né, não há nenhuma verificação após a query que faz a inserção, logo, obrigatoriamente ele imprimirá dizendo que houve sucesso. (y)

Tente fazer algo pareciso com isto:

$insert = mysql_query('INSERT INTO...') or die(mysql_error());

if( $insert )
{
	// deu certo
}

[]'sAté mais
Paulo André G Rodrigues,
ex-administrador Fórum WMO.


www.CanalDev.com.br

#3 Crab

Crab

    Da paz, mas preparado para Guerra

  • Ex-Admins
  • 2521 posts
  • Sexo:Masculino
  • Localidade:Florianópolis - SC
  • Interesses:Desenvolvimento Gráfico e Web.

Posted 16/03/2009, 18:10

Da mesma forma que o Paulo disse mas tbm pode mandar o if direto

if(mysql_query(blablabla)){

imprime

{
else{

imprime outra coisa

}

outra forma é mandar um

or die(mysql_error());

no final da execução da query
mysql_query(blablabla) or die(mysql_error());
Até mais




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq