Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

omm62

[Resolvido] Erro de sintaxe Mysql

Recommended Posts

Olá colegas, tô com um problema aqui. Tô fazendo o insert em um BD Mysql com campos data e para isso uso uma função para converter as datas postadas no form do formato dd/mm/aaaa para o formato yyyy-mm-dd. Quando do isert dá um erro de sintaxe que, depois de avaliar o código, não consegui vê-lo.

Eis o código

<?php require_once('Connections/conn_aniver.php'); ?>

<?php
function converter_data($strData) {
	// Recebemos a data no formato: dd/mm/aaaa
	// Convertemos a data para o formato: aaaa-mm-dd
	if ( preg_match("#/#",$strData) == 1 ) {
		$strDataFinal = "'";
		$strDataFinal .= implode('-', array_reverse(explode('/',$strData)));
		$strDataFinal .= "'";
	}
	return $strDataFinal;
}
?>

<?php
$pg=$_POST['txt_pg'];
$cpg=$_POST['txt_cpg'];
$nome=$_POST['txt_nome'];
$nomeguerra=$_POST['txt_nomeguerra'];
$qdo=$_POST['txt_quadro'];
$esp=$_POST['txt_esp'];
$qe="$qdo/$esp";
$dnasc=converter_data($_POST['txt_dnasc']);
$dpraca=converter_data($_POST['txt_dpraca']);
$endereco=$_POST['txt_endereco'];
$bairro=$_POST['txt_bairro'];
$fone=$_POST['txt_fone'];
$cep=$_POST['txt_cep'];
$pai=$_POST['txt_pai'];
$mae=$_POST['txt_mae'];
$saram=$_POST['txt_saram'];
$pasep=$_POST['txt_pasep'];
$cpf=$_POST['txt_cpf'];
$rg=$_POST['txt_rg'];
$om=$_POST['txt_om'];
$divisao=$_POST['txt_divisao'];
$setor=$_POST['txt_setor'];
$dmov=converter_data($_POST['txt_dmov']);
$dapres=converter_data($_POST['txt_dapres']);
$dultprom=converter_data($_POST['txt_dultprom']);
$antiguidade=$_POST['txt_antiguidade'];
$ra=$_POST['txt_ra'];
$situacao=$_POST['txt_situacao'];
$religiao=$_POST['txt_religiao'];

$sql = "INSERT INTO efetivo (pg, cpg, nome, nomeguerra, qe, d_nasc, d_praca, endereco, bairro, fone, cep, pai, mae,
saram, pasep, cpf, identidade, om, divisao, setor, d_mov, d_apres, d_ultprom, antiguidad, rarc, situacao,
religiao) VALUES ('$pg','$cpg','$nome','$nomeguerra','$qe','$dnasc','$dpraca','$endereco','$bairro','$fone',
'$cep','$pai','$mae','$saram','$pasep','$cpf','$rg','$om','$divisao','$setor','$dmov','$dapres','$daultprom',
'$antiguidade','$ra','$situacao','$religiao')";
$resultado = mysql_query($sql)
or die (mysql_error());
?>
Serei muito grato por qualquer ajuda.

Compartilhar este post


Link para o post
Compartilhar em outros sites

ae amigo beleza..

 

eu nao sei se é isso.. mas eu testei sua função e ela retorna a data assim..

'2008-08-14' ela esta retornando com aspas(inicio,fim)

 

faça um teste

troque a sua função por esta..

<?php
function converter_data($strData) {
	// Recebemos a data no formato: dd/mm/aaaa
	// Convertemos a data para o formato: aaaa-mm-dd
	if ( preg_match("#/#",$strData) == 1 ) {
		$strDataFinal = implode('-', array_reverse(explode('/',$strData)));
	}
	return $strDataFinal;
}
?>

 

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Printa sua query pra ver o que ela retorna no insert e depois testa no mysql pois pode ser erro de sintax na hora de inserir ou nome de campo errado.

 

CODE

exemplo

print("INSERT INTO ...");

 

 

mais uma coisa.. concatena a variavel

 

faz assim '".$nome."' ao invês de assim '$nome'

 

não testei seu código mas tenta dar uma olhada nisso que eu te falei, qualquer coisa volte a postar que a gente te ajuda ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.