Foros del Web » Programando para Internet » PHP »

guardar varios insert como UTF8

Estas en el tema de guardar varios insert como UTF8 en el foro de PHP en Foros del Web. Hola colegas.. estoy intentando guardar registros en diferentes tablas pero con la codificación UTF8 y el collate utf8_spanish_ci pero lo extraño es que sólo me ...
  #1 (permalink)  
Antiguo 13/01/2010, 17:39
Avatar de cesarpunk  
Fecha de Ingreso: enero-2008
Ubicación: Lima
Mensajes: 943
Antigüedad: 16 años, 3 meses
Puntos: 9
guardar varios insert como UTF8

Hola colegas.. estoy intentando guardar registros en diferentes tablas pero con la codificación UTF8 y el collate utf8_spanish_ci pero lo extraño es que sólo me funciona con un query... los siguientes me muestran las cadenas cortadas antes de las tildes u otros caracteres... igualmente mi BD y tablas esta en charset utf8 y collate correspondiente, aqui mi código de insercion:

Código PHP:

$c 
conectar();
mysql_query("SET NAMES 'utf8' COLLATE 'utf8_spanish_ci'");

$sql="insert into separata values(null,'".$titulo."','".$descripcion."','".$autor."','".$fecha_subida."','".$archivo_generado."','".$peso_archivo."','".$filetype."',0,'".$carreraID."','".$universidadID."');";
                                                 
mysql_query($sql,$c) or die(mysql_error());
$id_separata=mysql_insert_id();
                                                
$ingArray explode(", "$keywords);
foreach (
$ingArray as $i){
                                
   if(
getExistTag($i)==0){
                                
      
$sqlT="insert into tags values('".$i."');";
      
mysql_query($sqlT,$c) or die(mysql_error());
                
                                
      
$sqlST="insert into separata_tags values('".$id_separata."','".$i."');";
      
mysql_query($sqlST,$c) or die(mysql_error());
   }
   else{
                                
      
$sqlST="insert into separata_tags values('".$id_separata."','".$i."');";
      
mysql_query($sqlST,$c) or die(mysql_error());
   }                                                

el SET NAMES 'utf8' sólo me funciona en el primer insert... en los 2 siguientes llegan a la BD con las cadenas cortadas... que puede estar saliendo mal?
__________________
Quitenme la vida pero no la bebida.
  #2 (permalink)  
Antiguo 13/01/2010, 18:08
Avatar de emiliodeg  
Fecha de Ingreso: septiembre-2005
Ubicación: Córdoba
Mensajes: 1.830
Antigüedad: 18 años, 7 meses
Puntos: 55
Respuesta: guardar varios insert como UTF8

cadena cortada? fijate en el largo q definiste al campo, segurametne ese es el problema

es preferible q uses utf8_general_ci antes q el spanish ;)

__________________
Degiovanni Emilio
developtus.com
  #3 (permalink)  
Antiguo 13/01/2010, 18:19
Avatar de killerangel  
Fecha de Ingreso: septiembre-2007
Ubicación: Un punto en el espacio
Mensajes: 592
Antigüedad: 16 años, 7 meses
Puntos: 10
Pregunta Respuesta: guardar varios insert como UTF8

no has probado con el htmlentities y el htmlentities_decode?
__________________
Sueñen... y trabajen por hacer esos sueños realidad... de eso se construye el futuro!!
Me siento entre la ASP-ada y la PHP-red
  #4 (permalink)  
Antiguo 13/01/2010, 19:53
Avatar de cesarpunk  
Fecha de Ingreso: enero-2008
Ubicación: Lima
Mensajes: 943
Antigüedad: 16 años, 3 meses
Puntos: 9
Respuesta: guardar varios insert como UTF8

no, los campos son varchar(100) , ahora... como son 3 inserts y por ejemplo cuando ingreso la palabra "guía" en una tabla llega guia(codificado a utf8) y en las otras tablas llegan "gu" osea se corta hasta donde comienza el caracter con tilde... eso lo que no entiendo el porque llega bien en una tabla pero en las otras 2 no, ya que tiene el mismo charset... probaré con el htmlentities y luego les comento
__________________
Quitenme la vida pero no la bebida.
  #5 (permalink)  
Antiguo 14/01/2010, 09:13
Avatar de cesarpunk  
Fecha de Ingreso: enero-2008
Ubicación: Lima
Mensajes: 943
Antigüedad: 16 años, 3 meses
Puntos: 9
Respuesta: guardar varios insert como UTF8

bueno, ya encontre el problema... pero no entiendo el porque...

Para guardar los 2 inserts siguientes yo uso en los campos a guardar el strlower() para pasar las cadenas a minusculas... pero esa función afecta el charset!! .... tuve que quitarle eso para que guarde correctamente en el utf8 . Tendría que cambiar algo en la configuaracion para resolver esto??
__________________
Quitenme la vida pero no la bebida.
  #6 (permalink)  
Antiguo 14/01/2010, 09:16
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: guardar varios insert como UTF8

Usa mb_strtolower. Puedes tambien declarar que tipo de encoding deseas grabar con el segundo parametro, es opcional.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #7 (permalink)  
Antiguo 14/01/2010, 09:33
Avatar de cesarpunk  
Fecha de Ingreso: enero-2008
Ubicación: Lima
Mensajes: 943
Antigüedad: 16 años, 3 meses
Puntos: 9
Respuesta: guardar varios insert como UTF8

Hola , no sabía de esa funcion... . En el manual tambien habia encontrado esta función

Código PHP:
function strtolower_utf8($inputString) {
    
$outputString    utf8_decode($inputString);
    
$outputString    strtolower($outputString);
    
$outputString    utf8_encode($outputString);
    return 
$outputString;

Supongo que la que me diste debe ser más ligera, lo probaré . Gracias.
__________________
Quitenme la vida pero no la bebida.

Etiquetas: insert, utf
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:45.