Comunidad de diseño web y desarrollo en internet online

Query y el símbolo ' (apostrofe)

Citar            
MensajeEscrito el 28 May 2014 11:30 am
Hola estoy montando un programa donde se graban dados de gente de otros países.
La cuestión es que todo va bien hasta que tengo que meter nombres así

"Diego d'espasito"

Cuando monto el query, el apostrofe (') me fastidia el query.
Lo he solucionado parcialmente cambiándolo por otro símbolo parecido (´) de esta forma:

Código :

sql_nombre = sql_nombre.replace(/\u0027+/g, '´');


De esta forma me queda

"Diego d´espasito"

Es una solución provisional, pero lo que realmente me gustaría es dejar el apóstrofe tal y como debería ser. ¿Hay alguna solución? Todo lo que encontré por internet es como quitarlo o cambiarlo, pero no como dejarlo... quizá no se pueda.

Por daniel69

78 de clabLevel



 

chrome
Citar            
MensajeEscrito el 28 May 2014 02:02 pm
creo que lo puedes cambiar, si es que le metes el simbolo de escape ,
\\

Código :

sql_nombre = sql_nombre.replace("'", "\\'");

Por tuadmin

Claber

598 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 28 May 2014 02:16 pm
Es un símbolo reservado, por eso no se puede usar

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 28 May 2014 04:00 pm
Usa escape() y unespace() para codificarlo y decodificarlo.
No se si estas usando una conexión directa con SQLite o MySQL con algún backend.

Por rodrigolopezpeker

61 de clabLevel



 

chrome
Citar            
MensajeEscrito el 31 May 2014 10:13 pm
Estoy con flash/air y desde ahi me conecto a sqlite.
Lo mismo puedo grabarlo con el símbolo 'malo' y hacer un replace.
Lo probaré, gracias a todos por contestar.

Por daniel69

78 de clabLevel



 

chrome
Citar            
MensajeEscrito el 02 Jun 2014 08:07 pm
Prueba esta clase, guardala como Slashes.as, en la ruta donde tengas configurado la ruta de las clases

Código ActionScript :

package {
   final public class Slashes {;
   private static const REGEX_UNSAFE_CHARS:String = "\\-^[]";
   private static const TRIM_RIGHT_REGEX:RegExp = /[\s]+$/g;
   private static function slashUnsafeChars(chars:String):String {
      var unsafeChar:String;
      var m:uint = REGEX_UNSAFE_CHARS.length;
      for (var i:uint = 0; i < m; ++i) {
         unsafeChar = REGEX_UNSAFE_CHARS.substr(i,1);
         if (chars.indexOf(unsafeChar) != -1) {
            chars = chars.replace(unsafeChar,"\\" + unsafeChar);
         }
      }
      return chars;
   }
   public static function add(str:String, chars:String = "\"'"):String {;
   if (! str || ! chars) {
      return str;
   }
   chars = slashUnsafeChars(chars);
   var regex:RegExp = new RegExp("([" + chars + "])", "g");
   return str.replace(regex, "\\$1");
}
public static function strip(str:String, chars:String = "\"'"):String {;
if (! str || ! chars) {
   return str;
}
chars = slashUnsafeChars(chars);
var regex:RegExp = new RegExp("\\\\([" + chars + "])", "g");
return str.replace(regex, "$1");
}
}
}


Importala en tu form

Código ActionScript :

import Slashes;



/*y cuando vayas a recuperar los valores de algun campo de texto para enviarlo al servidor via amf a tu por ejemplo backend amfphp haces lo siguiente: var cadena:String = Slashes.add(mivar1.text);
o var cadena:String = Slashes.add("d's");*/

var sql:String="update mitabla set mivar1='"+Slashes.add(mivar1.text)+"', mivar2='"+Slashes.add(mivar2.text)+"'  WHERE id='"+id.text+"'";
host.ring("sql.query",sql,okUpdate,securityProtocol);

Por giskard

110 de clabLevel



Genero:Masculino  

Programador y diseñador web

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.