Bom, vim ajudar em um problema simples mais muito publicado, usar ASPAS para inserir conteudo em banco de dados !
Caso você tenha um formulário, e este conteudo será salvo no banco de dados, e está tendo problemas com ASPAS simples e duplas, tenho uma solução !
Para criar est a ajuda eu li muitas dúvidas sobre este assunto, e até agora achei muitas soluções, porém venho aqui mostrar uma forma de codigicação que eu tive MUITOS problemas e hoje resolvo desta forma, e espero poder ajudar outros sobre este problema !
Eu juntei os dois problemas pois um irá ajudar no outro !
(Meu primeiro tópico de ajuda)
Vamos lá,
--------------------- ACENTUAÇÃO (CharSet e META) ---------------------
1° No MySql não existe CharSet ISO-8859-1, então testei com outros no mysql e nos padrões funcionaram.
- Para criar tabelas no seu MySql use Charset (utf8).
--------------------- ASPAS ---------------------
Sabemos que no ASP não podemos inserir aspas simples em um campo de form para ser inserido do banco de dados.
Tambem que aspas duplas para editar um conteudo do banco pelo form SOME (desaparece)
Com estes 2 problemas, uma simples solução USANDO A ACENTUAÇÃO DADA ACIMA !!!!!!!!!!!!!
Trocar as aspas pelo código ASCII:
Aspas simples: ' = Chr(39)
* E achei 2 tipos diferentes de ASPAS DUPLAS....
Padrão: Aspas Duplas: " = Chr(34)
Outra: ASpas Duplas: “ = Chr(147)
Bom, usando o Chr(34), depois para você editar este conteudo ele irá SUMIR com todo o conteúdo depois da ASPAS DUPLAS dentro do seu form.
Usando aspas simples, terá problema com o ASP, ele não irá inserir seu conteudo !
Você pode trocar pela (“) ou Chr(147) que irá resolver, MASSSSS... usando em suas páginas o META e Charset passados acima...
* Se você usar outro tipo de charset para sua página, a aspas Chr(147) será trocado por um caracteres inválido.
Agora então os replace para resolver os seu problemas:
<%
<input type="text" name="texto" value="Testando aspas ' e aspas " para inserir no banco !">
conteudo = Request.Form("texto")
Replace(conteudo,"'", "''") => Caso tenha aspas simples ele duplica ela para que possa ser salvo no banco.
Replace(conteudo,Chr(34), Chr(147)) => Ele troca a aspas duplas pela outra aspas duplas, que não é usada em códigos ASP.
então na prática....
conteudo = Request.Form("texto")
addnobanco = Replace(Replace(conteudo,"'","''"),Chr(34),Chr(147))
Conn.Execute "INSERT INTO tabela(conteudo) VALUES ('" & addnobanco & "')"
Espero que este tópico não seja visto com maus olhos, pois isso ainda é um grande problema entre muitos...
E desculpe pela pessima formatação da explicação, é meu 1° tópico de ajuda e não sou muito bom em explicação ^^
Pergunta
WebSan.Com.Br
Bom, vim ajudar em um problema simples mais muito publicado, usar ASPAS para inserir conteudo em banco de dados !
Caso você tenha um formulário, e este conteudo será salvo no banco de dados, e está tendo problemas com ASPAS simples e duplas, tenho uma solução !
Para criar est a ajuda eu li muitas dúvidas sobre este assunto, e até agora achei muitas soluções, porém venho aqui mostrar uma forma de codigicação que eu tive MUITOS problemas e hoje resolvo desta forma, e espero poder ajudar outros sobre este problema !
Eu juntei os dois problemas pois um irá ajudar no outro !
(Meu primeiro tópico de ajuda)
Vamos lá,
--------------------- ACENTUAÇÃO (CharSet e META) ---------------------
1° No MySql não existe CharSet ISO-8859-1, então testei com outros no mysql e nos padrões funcionaram.
- Para criar tabelas no seu MySql use Charset (utf8).
2° Nas suas páginas use:
--------------------- ASPAS --------------------- Sabemos que no ASP não podemos inserir aspas simples em um campo de form para ser inserido do banco de dados. Tambem que aspas duplas para editar um conteudo do banco pelo form SOME (desaparece) Com estes 2 problemas, uma simples solução USANDO A ACENTUAÇÃO DADA ACIMA !!!!!!!!!!!!! Trocar as aspas pelo código ASCII: Aspas simples: ' = Chr(39) * E achei 2 tipos diferentes de ASPAS DUPLAS.... Padrão: Aspas Duplas: " = Chr(34) Outra: ASpas Duplas: “ = Chr(147) Bom, usando o Chr(34), depois para você editar este conteudo ele irá SUMIR com todo o conteúdo depois da ASPAS DUPLAS dentro do seu form. Usando aspas simples, terá problema com o ASP, ele não irá inserir seu conteudo ! Você pode trocar pela (“) ou Chr(147) que irá resolver, MASSSSS... usando em suas páginas o META e Charset passados acima... * Se você usar outro tipo de charset para sua página, a aspas Chr(147) será trocado por um caracteres inválido. Agora então os replace para resolver os seu problemas:Espero que este tópico não seja visto com maus olhos, pois isso ainda é um grande problema entre muitos...
E desculpe pela pessima formatação da explicação, é meu 1° tópico de ajuda e não sou muito bom em explicação ^^
Mas espero ajudar !!!
Editado por WebSan.Com.BrLink para o comentário
Compartilhar em outros sites
2 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.