| |||
Me da error el apostrofe ' Tengo una base de datos a la que introduzco datos desde un formulario html y ASP. La cuestión es que siempre me aceptaba palabras que contenían el caracter apostrofe ('), pero desde hace un tiempo no lo permite y me da error. ¿Por qué está pasando esto? |
| ||||
![]() Cita: funciono de maravilla, muchas gracias ... saludos
Iniciado por gorka_arai ![]() El apóstrofe en SQL "rompe" la consulta. A menudo es usado por usuarios malintencionados que mediante inyección de SQL (SQL Injection, que dicen los más versados...) pretenden reventar bases de datos ajenas. A menudo aparece en los grupos de noticias una pregunta sobre alguien que tiene problemas a la hora de construir los criterios de una sentencia SQL, ya sea porque en esos criterios se utilizan fechas, o bien porque a lo mejor hay algún campo de texto que contiene una comilla simple como te ocurre a ti (lo cual es interpretado erróneamente por el motor de base de datos como un separador de campos o argumentos). Me explico. Esta sentencia producirá un error de "error de sintaxis, falta operador..." porque el motor de base de datos cogerá el apóstrofe como un separador de argumentos y la sentecia SQL petará. Observa:
Código:
Para resolverlo debemos sustituir la comilla simple por un par de comillas, así:sDestinatario = "B's Beverages" SQL = "SELECT * FROM Pedidos " _ & "WHERE Destinatario = '" & sDestinatario & "'"
Código:
Por ello te recomiendo que te acostumbres a usar el replace para añadir comillas dobles al apóstrofe (y ya de paso evitas algo de SQL injection!!!)sDestinatario = "B's Beverages" ' reemplazamos las comillas simples por un par ' de comillas sDestinatario = Replace(sDestinatario, "'", "''") SQL = "SELECT * FROM Pedidos " _ & "WHERE Destinatario = '" & sDestinatario & "'" Aupa. ![]() |