Ver Mensaje Individual
  #1 (permalink)  
Antiguo 18/12/2012, 05:14
alyciashape
 
Fecha de Ingreso: abril-2012
Mensajes: 590
Antigüedad: 12 años
Puntos: 58
Problema escapando consulta

El tema es el siguiente, tengo un bucle que recorre datos de otra BD y los inserta en la mía (mysql). En cuanto llega a algún varchar que tiene alguna ' en el texto pues falla evidentemente. Hasta ahí bien.

Pero en cuanto quiero escapar las consultas me dan error. Por ejemplo. Este es el primer INSERT:

Código MySQL:
Ver original
  1. INSERT INTO articulo (claart, codigo, nombre, s_alm_temp_vigo, s_urbarrio, s_alm_temp_camion, s_dresden, s_consignia, s_alcabre_moto, s_motoexpress, s_perdidas, s_alcabre_urba, s_dot) VALUES (12, '0967200', 'ME. MC 4 110/90-19 NHS R TT', 6, 20, 2, 0, 0, 3, -5, -10, -3, 0)

Ahora, escapado da error:
Código MySQL:
Ver original
  1. You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '\r\n  VALUES (12, \'0967200\', \'ME. MC 4 110/90-19 NHS R TT\', 6, 20, 2,\r\n    ' at line 159

Entiendo que porque me está intentando escapar las ' de los campos varchar. Como se soluciona esto? Estoy escapando así:
$consulta = mysqli_real_escape_string($this->mysqli, $consulta);

¿Hay que escapar campo a campo?
¿No se puede hacer a toda la consulta?

¿es normal tener que pasar la variable de la conexion a mysqli real escape string? me parece extraño la verdad