Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Insert con Apostrofe '

Estas en el tema de Insert con Apostrofe ' en el foro de PHP en Foros del Web. Buenas, estoy queriendo realizar un insert desde una tabla a otra. El problema que tengo es que algunas filas no me inserta porque algunas columnas ...
  #1 (permalink)  
Antiguo 04/09/2014, 11:28
 
Fecha de Ingreso: enero-2013
Mensajes: 64
Antigüedad: 11 años, 3 meses
Puntos: 0
Insert con Apostrofe '

Buenas, estoy queriendo realizar un insert desde una tabla a otra.

El problema que tengo es que algunas filas no me inserta porque algunas columnas tienen un texto con apostrofe.

El codigo que utilizo es

Código PHP:
if($result $mysqli2->query("SELECT * FROM SUD_Radiobase")){
    while(
$row $result->fetch_assoc()){

            
$mysqli->query("Insert INTO bd_radiobase(Codigo_de_radiobase,Tecnologia,Radio_Cobertura,Codigo_emplazamiento,Emplazamiento,Codigo_sitio,Calle,Entre_calle1,Entre_calle2,Numero,Piso,Depto,Codigo_Postal,Latitud,Longitud,Localidad_Codigo,Localidad,Zona,Cabecera_OyM,Partido,Provincia,Pais,Estado_de_Seguimiento,Fecha_Desde,Fecha_Hasta) VALUES('".$row['Codigo']."',
'"
.$row['Tecnologia']."',
'"
.$row['Radio_Cobertura']."',
'"
.$row['Codigo_emplazamiento']."',
'"
.$row['Emplazamiento']."',
'"
.$row['Codigo_sitio']."',
'"
.$row['Calle']."',
'"
.$row['Entre_calle1']."',
'"
.$row['Entre_calle2']."',
'"
.$row['Numero']."',
'"
.$row['Piso']."',
'"
.$row['Depto']."',
'"
.$row['Codigo_Postal']."',
'"
.$row['Latitud']."',
'"
.$row['Longitud']."',
'"
.$row['Localidad_Codigo']."',
'"
.$row['Localidad']."',
'"
.$row['Zona']."',
'"
.$row['Cabecera_OyM']."',
'"
.$row['Partido']."',
'"
.$row['Provincia']."',
'"
.$row['Pais']."',
'"
.$row['Estado_Seguimiento']."',
'"
.$row['Fecha_Desde']."',
'"
.$row['Fecha_Hasta']."')");
    }
    
$result->close();

Para reemplazar los ' (apostrofes) e intentado utilizar el siguiente codigo cuando selecciono los datos:

Código PHP:
SELECT CodigoTecnologiaRadio_CoberturaCodigo_emplazamiento
REPLACE(CAST(Emplazamiento AS CHAR),"'","") AS Emplazamiento,
Codigo_sitio
REPLACE(CAST(Calle AS CHAR),"'",'') AS Calle,
REPLACE(CAST(Entre_calle1 AS CHAR),"'","") AS Entre_calle1,
REPLACE(CAST(Entre_calle2 AS CHAR),"'","") AS Entre_calle2,
NumeroPisoDeptoCodigo_PostalCodigo_PostalLatitudLongitudLocalidad_Codigo,
REPLACE(CAST(Localidad AS CHAR),"'","") AS Localidad,
ZonaCabecera_OyM
REPLACE(CAST(Partido AS CHAR),"'",'') AS Partido,
ProvinciaPaisEstado_SeguimientoFecha_DesdeFecha_Hasta
FROM SUD_Radiobase 
Pero el problema está que no me permite utilizar las comillas.

Alguna idea o ayuda?

Cómo podría que reemplace en el Insert?

Muchas gracias, saludos.
  #2 (permalink)  
Antiguo 04/09/2014, 11:36
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Insert con Apostrofe '

El tema, es que los apóstrofes son caracteres especiales, así que debes escaparlos apropiadamente.

Consulta el siguiente manual: http://php.net/manual/es/mysqli.real-escape-string.php
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 04/09/2014, 11:38
 
Fecha de Ingreso: julio-2014
Mensajes: 179
Antigüedad: 9 años, 9 meses
Puntos: 26
Respuesta: Insert con Apostrofe '

Si limpias tus datos con htmlspecialchars, te dejo el link:

http://php.net/manual/es/function.htmlspecialchars.php

Saludos
__________________
Si haces las cosas como nadie las ha hecho, cobralas bien, si las vas a hacer como todos las han hecho, cobralas bien!!
MecanizandoWeb.com
  #4 (permalink)  
Antiguo 04/09/2014, 11:50
 
Fecha de Ingreso: enero-2013
Mensajes: 64
Antigüedad: 11 años, 3 meses
Puntos: 0
Respuesta: Insert con Apostrofe '

Muchas Gracias.

Lo que utilicé fue barra invertida \ y me funciono OK.

Código PHP:
if($result $mysqli2->query("SELECT Codigo, Tecnologia, Radio_Cobertura, Codigo_emplazamiento, 
REPLACE(CAST(Emplazamiento AS CHAR),'\'','') AS Emplazamiento,
Codigo_sitio, 
REPLACE(CAST(Calle AS CHAR),'\'','') AS Calle,
REPLACE(CAST(Entre_calle1 AS CHAR),'\'','') AS Entre_calle1,
REPLACE(CAST(Entre_calle2 AS CHAR),'\'','') AS Entre_calle2,
Numero, Piso, Depto, Codigo_Postal, Codigo_Postal, Latitud, Longitud, Localidad_Codigo,
REPLACE(CAST(Localidad AS CHAR),'\'','') AS Localidad,
Zona, Cabecera_OyM, 
REPLACE(CAST(Partido AS CHAR),'\'','') AS Partido,
Provincia, Pais, Estado_Seguimiento, Fecha_Desde, Fecha_Hasta
FROM SUD_Radiobase"
)) 
  #5 (permalink)  
Antiguo 22/01/2015, 15:58
 
Fecha de Ingreso: enero-2013
Mensajes: 64
Antigüedad: 11 años, 3 meses
Puntos: 0
Respuesta: Insert con Apostrofe '

Muchas Gracias.

Lo que utilicé fue barra invertida \ y me funciono OK.

Código PHP:
if($result $mysqli2->query("SELECT Codigo, Tecnologia, Radio_Cobertura, Codigo_emplazamiento, 
REPLACE(CAST(Emplazamiento AS CHAR),'\'','') AS Emplazamiento,
Codigo_sitio, 
REPLACE(CAST(Calle AS CHAR),'\'','') AS Calle,
REPLACE(CAST(Entre_calle1 AS CHAR),'\'','') AS Entre_calle1,
REPLACE(CAST(Entre_calle2 AS CHAR),'\'','') AS Entre_calle2,
Numero, Piso, Depto, Codigo_Postal, Codigo_Postal, Latitud, Longitud, Localidad_Codigo,
REPLACE(CAST(Localidad AS CHAR),'\'','') AS Localidad,
Zona, Cabecera_OyM, 
REPLACE(CAST(Partido AS CHAR),'\'','') AS Partido,
Provincia, Pais, Estado_Seguimiento, Fecha_Desde, Fecha_Hasta
FROM SUD_Radiobase"
)) 

Etiquetas: insert, mysql, select, tabla
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 02:17.