La documentación de MySQL dice que debería ser \'
. Sin embargo, scite y mysql muestran que ''
funciona. Lo vi y funciona. ¿Qué tengo que hacer?
147
La documentación de MySQL dice que debería ser \'
. Sin embargo, scite y mysql muestran que ''
funciona. Lo vi y funciona. ¿Qué tengo que hacer?
''
o no\'
?\'
es específico de MySQL, mientras que''
es compatible con ANSI SQL, si no me equivocoRespuestas:
La documentación de MySQL que cita en realidad dice un poco más de lo que menciona. También dice
(Además, se vinculó a la versión MySQL 5.0 de la Tabla 8.1. Secuencias especiales de escape de caracteres , y la versión actual es 5.6, pero la Tabla 8.1 actual . Secuencias especiales de escape de caracteres se parece bastante).
Creo que la nota de Postgres sobre el
backslash_quote (string)
parámetro es informativa:Eso me dice que usar un carácter de comillas simples duplicadas es una mejor opción general y a largo plazo que usar una barra invertida para escapar de la comilla simple.
Ahora, si también desea agregar la elección del idioma, la elección de la base de datos SQL y sus peculiaridades no estándar, y la elección del marco de consulta a la ecuación, entonces podría terminar con una opción diferente. No das mucha información sobre tus limitaciones.
fuente
SQL estándar utiliza comillas duplicadas; MySQL tiene que aceptar eso para cumplir razonablemente.
fuente
'
" dentro de una cadena entre comillas con "'
" puede escribirse como "''
" . Un ""
" dentro de una cadena entre comillas con ""
" puede escribirse como """
". Preceda el carácter de comillas por un carácter de escape ("` `").Lo que creo que significó user2087510 fue:
También he usado esto con éxito.
fuente
solo escribe
''
en lugar de'
quiero decir dos veces'
fuente
Aquí hay un ejemplo:
Solo use comillas dobles para encerrar la comilla simple.
Si insiste en usar comillas simples (y la necesidad de escapar del personaje):
fuente
Hay tres formas de las que soy consciente. El primero no es el más bonito y el segundo es la forma común en la mayoría de los lenguajes de programación:
'I mustn''t sin!'
\
antes de la comilla simple.'
:'I mustn\'t sin!'
"I mustn't sin!"
fuente
\'
que es utilizada por muchos lenguajes de programación, pero''
es compatible con más dialectos SQL, por lo que usar la opción 1 es mejor para la compatibilidad. Sqlite, por ejemplo, no funciona con escapes de barra invertida.Reemplazar la cuerda
donde valor es su cadena que se va a almacenar en su base de datos.
https://www.npmjs.com/package/mysql-apostrophe
fuente
Creo que si tiene algún punto de datos con apóstrofe, puede agregar un apóstrofe antes del apóstrofe
p.ej. 'Este es el lugar de John'
Aquí MYSQL asume dos frases 'Este es el lugar de John'
Puedes poner 'Este es el lugar de John'. Creo que debería funcionar de esa manera.
fuente
En PHP, me gusta usar mysqli_real_escape_string () que escapa de caracteres especiales en una cadena para usar en una instrucción SQL.
ver https://www.php.net/manual/en/mysqli.real-escape-string.php
fuente
Posiblemente fuera de tema, pero tal vez viniste aquí buscando una manera de desinfectar la entrada de texto desde un formulario HTML, de modo que cuando un usuario ingresa el carácter de apóstrofe, no arroja un error cuando intentas escribir el texto en un SQL basada en tablas en un DB. Hay un par de formas de hacer esto, y es posible que también desee leer sobre la inyección SQL, pero una opción simple en PHP es usar la función htmlspecialchars () que convertirá todos sus apóstrofes en lo
'
que posiblemente desee almacenar. de todas formas.fuente