Jump to content


Photo

Problema Na Gravação No Banco


  • Faça o login para participar
1 reply to this topic

#1 tony

tony

    24 Horas

  • Usuários
  • 486 posts
  • Sexo:Não informado

Posted 11/05/2009, 11:29

Bom dia pessoal...preciso de um help...

estou lendo um XML enorme e gravando do banco... o sistema começa a gravar no banco...porém chega em alguns registros e dá um erro, abaixo um exemplo do erro:

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 'FARIA LIMA 3144 PREDIO COMERCIAL', bairro = 'JARDIM PAULISTANO', cidade = 'SÂ' at line 2

acho que deve ser por algum caracterer ou acentuação...entao como faço para que o php prepare as variaveis para serem gravadas no banco de dados em que de esse tipo de problema??

Passo abaixo o script que estou utilizando:

$xml = simplexml_load_file("USUARIOS_24549607861016494.xml"); // Le o XML

foreach($xml->usuario as $usuario)
{
$cont +=1 ;
$campo1 = $usuario->CODIGO;
$campo2 = $usuario->NOME;
$campo3 = $usuario->ENDERECO.' '.$usuario->NUMERO.' '.$usuario->COMPL;
$campo4 = $usuario->BAIRRO;
$campo5 = $usuario->CIDADE;
$campo6 = $usuario->ESTADO;
$campo7 = $usuario->CEP;
$campo8 = $usuario->DDD1;
$campo9 = $usuario->CGC;
$campo10 = $usuario->RG;
$campo11 = $usuario->CPF;
$campo12 = $usuario->REFERENCIA;
$campo13 = $usuario->CONTRATO;
$campo14 = $usuario->CARTAO1;
$campo15 = $usuario->VALIDADE1;
$campo16 = $usuario->OPERADORA;
$campo17 = $usuario->TIPO1;
$campo18 = $usuario->NROGUIA;
$campo19 = $usuario->DTVENCTO1;
$campo20 = $usuario->RECIBO;
$campo21 = $usuario->TAXA;
$campo22 = $usuario->BANCO;
$campo23 = $usuario->AGENCIA;
$campo24 = $usuario->NOMEAGEN;
$campo25 = $usuario->CONTA;
$campo26 = $usuario->DESCONTO;
$campo27 = $usuario->EMAIL;
$campo28 = $usuario->FORMAPG;
$campo29 = $usuario->cod-emitente;

$campos ="codErp='$campo1',
nomeCliente = '$campo2',
enderecoCliente = '$campo3',
bairro = '$campo4',
cidade = '$campo5',
estado = '$campo6',
cep = '$campo7',
telefoneCliente = '$campo8',
cgc = '$campo9',
rg = '$campo10',
cpf = '$campo11',
referencia = '$campo12',
codigoContrato = '$campo13',
cartao = '$campo14',
validade = '$campo15',
operadora = '$campo16',
tipo = '$campo17',
nrGuia = '$campo18',
dataVencimento = '$campo19',
recibo = '$campo20',
taxa = '$campo21',
banco = '$campo22',
agencia = '$campo23',
nomeAgencia = '$campo24',
conta = '$campo25',
desconto = '$campo26',
emailCliente = '$campo27',
formaPg = '$campo28',
codEmitente = '$campo29'";

$inserir = mysql_query("INSERT INTO cliente SET $campos ") OR die (mysql_error());

}


Como citei...ele grava alguns registros...mas ele para em um determinado registro com o erro

Ja tentei utilizar o addslashes na variavel campo.... mas nao adianta

Alguem pode me ajudar??

#2 mhbs

mhbs

    Turista

  • Usuários
  • 33 posts
  • Sexo:Masculino
  • Localidade:Curitiba -Paraná
  • Interesses:Geral

Posted 11/05/2009, 11:40

Tony , passe um exemplo do XMl com o registro que esta apresentando problema... e o comando sql que ele esta montando.

Qual a versão do mysql vc esta utilizando?

abraço
Marcos H. B. Santos
Analista de Sistemas -
www.xna.com.br




1 user(s) are reading this topic

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

IPB Skin By Virteq