Jump to content
Fórum Script Brasil
  • 0

Retirar o apóstrofo


fabio_siqueira
 Share

Question

Galera boa tarde!

 

Estou desenvolvendo um sistema simples aqui no meu trabalho, porém estou com um problema

quando vou importar um arquivo csv para o mysql.

Quando o PHP "acha" um apóstrofo no meio do nome, ele para de subir os dados no mysql.

 

Acredito que seja por causa do "sql injection" mas não sei como fazer ele aceitar esses caracteres especiais.

Estou usando a conexão Mysqli mas de forma estrutural.

 

Segue o trecho do código:

// conectando no banco
$conexao = mysqli_connect($servidor,$usuario,$senha,$banco);
if (mysqli_connect_errno($conexao)){
	echo "Problemas para conectar no banco de dados";
	die();
}

//query para insert na tabela relatorio
$filename = $_GET['arquivocsv2'];
$abraArq = fopen($filename, "r");
while(($row = fgetcsv($abraArq,2048,";"))!==FALSE) {

//condicional de qual radio button esta selecionado	
if ($radio == 'Relatorio'){$sql = "insert into relatorio (DocumentoSD,Descricao,CodCliente,Cliente,Regiao,DataDocumento,Material,Condicoes,Plano) values('$row[0]','$row[4]','$row[5]','$row[6]','$row[7]','$row[10]','$row[11]','$row[17]','$row[29]')";}

é exatamente o array: $row[6] onde possui registros com apóstrofo.

 

Obrigado!

Link to comment
Share on other sites

2 answers to this question

Recommended Posts

  • 0

Você pode usar addlashes() para escapar os caracteres especiais. Mas a solução ideal seria utilizar Prepared Statements.

Veja: 

http://rberaldo.com.br/como-atualizar-php-mysql-mysqli/

http://rberaldo.com.br/seguranca-em-sistemas-de-login-protecao-contra-sql-injection/

 

 

Não sei se você sabe, mas nem precisa passar isso tudo pelo PHP. O próprio MySQL consegue importar arquivos CSV. Dê uma pesquisada sobre isso.

Link to comment
Share on other sites

  • 0

Obrigado Beraldo!

funcionou, usei o  addlashes

Segue o código como ficou caso alguém precise algum dia:

//condicional de qual radio button esta selecionado	
if ($radio == 'Relatorio'){$sql = "insert into relatorio (DocumentoSD,Descricao,CodCliente,Cliente,Regiao,DataDocumento,Material,Condicoes,Plano) values('$row[0]','$row[4]','$row[5]','".addslashes($row[6])."','$row[7]','$row[10]','$row[11]','$row[17]','$row[29]')";}

vou estudar de como usar o  Prepared Statements.

Eu sei que o mysql faz isso, mas é que na ferramentinha que eu estou criando, vai ser para algumas pessoas aqui do meu trabalho fazer esse insert e dps na própria ferramenta

vai ter opções de consulta com alguns left joins etc..além de guardar no histórico esses arquivos :-)

 

Mais uma vez Muito Obrigado!

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Forum Statistics

    • Total Topics
      149.6k
    • Total Posts
      646.2k
×
×
  • Create New...