Ver Mensaje Individual
  #2 (permalink)  
Antiguo 30/05/2011, 05:27
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: se puede insertar y eliminar registros con una sola consulta mysql?

La respuesta es NO. Una misma sentencia no puede hacer inserción y eliminación, entre otras cosas porque pueden estar realizando operaciones mutuamente excluyentes.
Si tu preocupación es el sql-injection mi recomendación es que toda operación con la base la hagas por medio de stored procedures, y no con sentencias comunes, ya que las mismas son invulnerables al sql-injection.
Para que te quede claro por qué son invulnerables:
1) Un usuario puede crearse con sólo privilegios de ejecución de SP, lo que impide que las invocaciones a los mismos puedan usarse para acceder a tablas.
2) Los SP sólo reciben parámetros dentro de la llamada. Los parámetros sólo pueden ser valores esperados, cualquier otro valor es tomado como error de SP.
3) No puedes agregar dinámicamente parámetros a un SP, ni enviarle menos de los que debes.
4) Si el parámetro esperado es un VARCHAR no puede usarse para sql-injection porque para dar resultado deberían usarse sentencias preparadas en el SP, cosa que no sería el uso del VARCHAR.
5) Aún si las usas con una sentencia preparada, la inclusión de sql-injection en ese caso generaría un error de sintaxis en la creación de la sentencia preparada, y dentro de un SP todo error genera una cancelación completa del procedimiento.

No te preocupes de los terroristas, ellos tienen víctimas más importantes, y tu tienes adversarios más graves: los que se dedican a meterte bobadas en los formularios, nada más que "para ver qué pasa"...
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Última edición por gnzsoloyo; 30/05/2011 a las 05:49