Bueno, preg_replace_all("/([^\])'/","$1\'",$yourStrHere)
va a hacer lo que preguntas:
- "/ ([^ \])" /" se obtiene la expresión regular/([^ \]) '/, que dice" que coincida con el cualquier personaje que no sea una barra invertida seguida de una comilla simple, y capture el caracter antes de la cita ".
- "$ 1 \ '" dice 'reemplazar con el carácter capturado seguido de una barra invertida y una comilla simple'
PERO ...
respuesta de Bill acerca de las consultas parametrizados utilizando el mysqli o API de PDO es Realmente, realmente un buen consejo. Es más fácil y más efectivo dejar que la API de su base de datos maneje esto que hacerlo usted mismo: las personas que escribieron estas API (y las personas que trabajaron en los back-end nativos para esas API) probablemente hayan dedicado más tiempo y esfuerzos para abordar la seguridad y problemas de rendimiento que la mayoría de nosotros podemos esperar gastar nosotros mismos.
Recuerde las palabras de Jamie Zawinski : Algunas personas, cuando se enfrentan con un problema, piensan "Lo sé, usaré expresiones regulares". Ahora ellos tienen dos problemas. –