omm62 1 Denunciar post Postado Agosto 14, 2008 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
André Baptista 0 Denunciar post Postado Agosto 15, 2008 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
Rails 3 Denunciar post Postado Agosto 15, 2008 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
omm62 1 Denunciar post Postado Agosto 18, 2008 http://forum.imasters.com.br/public/style_emoticons/default/clap.gif Caros colegas, q bom ter vcs por perto.... pane sanada.... Muito grato a todos... Aquele abraço Compartilhar este post Link para o post Compartilhar em outros sites