• Publicidad

Expresiones regulares reemplazar ' (apóstrofo) por '' (dos)

Así que programas sin strict y las expresiones regulares son otro modo de hablar. Aquí encontrarás respuestas de nivel avanzado, no recomendable para los débiles de corazón.

Expresiones regulares reemplazar ' (apóstrofo) por '' (dos)

Notapor gcbenja » 2008-11-27 16:27 @727

Hola, primero que nada mucho gusto.

Tengo un query que me devuelve en la variable $nombre registros de una base MySQL de esta forma: Benjamin A. Gomez Ca. 'Nuevo usuario' (nótese los apóstrofos)

Lo que quiero hacer es meter este texto exactamente a otra tabla, pero me da error el MySQL porque cuando encuentra el primer apóstrofo, piensa que termino la línea, entonces quiero ponerle doble apóstrofo, o triple (no estoy seguro si son dos o tres) para que no me de problemas la consulta.

He intentado esto:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
$companyname =~ g/'/''/g;
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4

pero no funciona.

Si alguien puede ayudarme, ¡¡¡¡por favor!!!!
Saludos desde Guatemala
Benjamín Gómez
gcbenja
Perlero nuevo
Perlero nuevo
 
Mensajes: 1
Registrado: 2008-11-27 16:17 @720

Publicidad

Notapor explorer » 2008-11-27 17:23 @766

Bienvenido a los foros de Perl en Español, gcbenja.

Es muy recomendable que uses la combinación prepare(), execute(), ya que MySQL se encarga de hacer el escapado de esos caracteres especiales.

En cuanto a la expresión regular, hay un pequeño error: el operador es 's', no 'g'.

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
#!/usr/bin/perl

$companyname = q(Benjamin A. Gomez Ca. 'Nuevo usuario');

$companyname =~ s/'/''/g;

print "$companyname\n";
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
Sale:
Código: Seleccionar todo
Benjamin A. Gomez Ca. ''Nuevo usuario''
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Notapor Jenda » 2008-11-28 11:27 @518

Si las dos tablas están en la misma BD no hay razón para que bajar los datos a tu script y enviarles a la BD después. Puedes hacerlo todo en BD con SQL:

Sintáxis: [ Descargar ] [ Ocultar ]
Using sql Syntax Highlighting
INSERT INTO OtraTabla (Los, Columnos)
SELECT Lo_Que, Quieres
FROM PrimeraTabla
WHERE alguna = condición
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
-------------------------------------------------------
- Estoy aquí para practicar español. Si te ayudó mi respuesta ayudame con un mensaje privado sobre mis faltas por favor. Seguramente habrá muchas :-)
Jenda
Perlero nuevo
Perlero nuevo
 
Mensajes: 132
Registrado: 2007-10-29 06:31 @313
Ubicación: Praga, Republica Checa


Volver a Avanzado

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 22 invitados