Ver Mensaje Individual
  #1 (permalink)  
Antiguo 25/11/2014, 18:09
Avatar de HackID1
HackID1
 
Fecha de Ingreso: febrero-2013
Ubicación: En Update
Mensajes: 492
Antigüedad: 11 años, 9 meses
Puntos: 17
Pregunta Generar INSERT SQL y escapar comillas simples

Muy buenas Forerosdelaweb. ;)

Hoy estoy intentando realizar un script en PHP para generar varios INSERT y estos almacenarlos en un fichero con extensión .sql

Bien los datos los obtengo leyendo un fichero .csv en donde están los campos a insertar separados uno en cada columna. (por eso uso el .csv para delimitar por \t )

Realizo la lectura de estos campos linea por linea, pero cuando en el campo contenido existe alguna URL esto me produce fallo al almacenar la sentencia INSERT.

Es decir si tengo un texto en la columna CONTENT con un contenido como este en el .csv:

Cita:
soy el texto del contenido <a href='www.prueba.com'>link</a> continuamos con el texto del fichero..
Cuando llegó a esa parte donde el link esta entre '' , el script me falla porque uso lo siguiente.

Código PHP:
Ver original
  1. fwrite( $my_sql,
  2.             "INSERT INTO `wp_posts` (`ID`, `campo1`, `content`, `post_date_gmt`, )
  3.  
  4. VALUES ( '', 'texto1', ' ".$content." ', '2012-01-01 00:00:00' );"  . PHP_EOL );
  5.  
  6. /*como ven abro con Comilla doble el INSERT y cierro con comillas dobles al final del VALUE();*/
  7. /*Error se produce cuando encuentra otras comillas simples dentro de la variable $content*/

El Error, es debido a lo comentado, cuando encuentra las comillas simples del <a href='www.prueba.com'>link</a> me da error porque se sale de la escritura.

En si me crea el comando, pero la sentencia SQL esta mal creada y para que funcione debo cambiar ese link <A> </A> a mano, :( .

Como puedo resolver esto. o de que forma puedo crear varias sentencias insert leyendo los datos de las columnas de un CSV.

Gracias espero entiendan mi pregunta y puedan ayudarme

Saludos!
__________________
Puntuar +1 es buena forma de dar las gracias. :P
Your Time is limited, so don't waste it living someone else´s life.
Por: HackID1