Foros del Web » Programando para Internet » PHP »

Problemas con sentencia Insert SQL en php

Estas en el tema de Problemas con sentencia Insert SQL en php en el foro de PHP en Foros del Web. Que tal amigos a ver si me pueden dar una mano, antes que nada les cuento que recien estoy comenzando en el mundo de php, ...
  #1 (permalink)  
Antiguo 25/08/2009, 15:49
 
Fecha de Ingreso: agosto-2009
Mensajes: 34
Antigüedad: 15 años, 2 meses
Puntos: 0
Exclamación Problemas con sentencia Insert SQL en php

Que tal amigos a ver si me pueden dar una mano, antes que nada les cuento que recien estoy comenzando en el mundo de php, el dia de hoy me he topado con un problema que no he podido resolver gracias a mi poca experiencia. El asunto es el siguiente, estoy realizando un insert a una tabla de acuerdo a los resultados de otra consulta en sql, el problema reside en que los campos resultantes de la consulta que voy a agregar a la tabla contienen caracteres (') apostrofes y sql me arroja un error, aqui se los dejo:
""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 'S','AV FRANCISCODE MIRANDA entre CLL A LTAMIRA y CLL CARACAS.LOC N° 72,SECTOR ' at line 4"""
como veran el valor del campo contiene caracteres que hacen que los datos se dividan, aqui les dejo parte del codigo que estoy utilizando, muchas gracias por todos sus comentarios.

$sql="SELECT * FROM ordenesTemp WHERE NOT EXISTS (SELECT * FROM ordenes WHERE ordenes.numero_ods=ordenesTemp.numero_ods)";
$stmt=$bd->ejecutar($sql) or die(mysql_error());
$existe_R=mysql_num_rows($stmt);
$cont=0;

if ($existe_R==0) {
$m4="No se encontraron nuevas ordenes";
echo "no existe ninguna";
}else{
while ($x=$bd->obtener_fila($stmt,0)){
$cont ++;
$sql1="INSERT INTO ordenes (area_empresa,sociedad,agencia,cod_cep,nombre_clie nte,direccion_cliente,persona_contacto,
tlf_cliente,texto_aviso_1,texto_aviso_2,marca,mode lo,numero_inventario,numero_activo,
numero_serial_fabricacion,clase,descripcion_activi dad,numero_ods,fecha_inicio_extrema,fecha_fin_extr ema)
VALUES ('$x[area_empresa]','$x[sociedad]','$x[agencia]','$x[cod_cep]','$x[nombre_cliente]','$x[direccion_cliente]','$x[persona_contacto]',
'$x[tlf_cliente]','$x[texto_aviso_1]','$x[texto_aviso_2]','$x[marca]','$x[modelo]','$x[numero_inventario]','$x[numero_activo]',
'$x[numero_serial_fabricacion]','$x[clase]','$x[descripcion_actividad]','$x[numero_ods]','$x[fecha_inicio_extrema]','$x[fecha_fin_extrema]')";
mysql_query($sql1) or die(mysql_error());
}
$m5="Se insertaron : $cont Nuevas Ordenes de Servicio";
}
  #2 (permalink)  
Antiguo 25/08/2009, 16:02
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Respuesta: Problemas con sentencia Insert SQL en php

Usa addslashes para agregar las barras invertidas y escapar las comillas simples.

Saludos.
  #3 (permalink)  
Antiguo 25/08/2009, 16:17
 
Fecha de Ingreso: agosto-2009
Mensajes: 34
Antigüedad: 15 años, 2 meses
Puntos: 0
Gracias, pero aun asi tengo el mismo problema....

Listo, gracias por el dato addslashes, lo unico que tuve que declarar cada una por separado pero funciono.

Última edición por GatorV; 26/08/2009 a las 09:30
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:15.