Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Problema con acentos al insertar a MySQL desde PHP

Estas en el tema de Problema con acentos al insertar a MySQL desde PHP en el foro de PHP en Foros del Web. Hola a todos. Les comento que ya he buscado la solucion a este problema en los demas posts pero ninguno me ha funcionado Bueno el ...
  #1 (permalink)  
Antiguo 06/09/2009, 12:02
 
Fecha de Ingreso: septiembre-2009
Mensajes: 25
Antigüedad: 14 años, 7 meses
Puntos: 3
(Solucionado!!)Problema con acentos al insertar a MySQL desde PHP

Hola a todos.

Les comento que ya he buscado la solucion a este problema en los demas posts pero ninguno me ha funcionado

Bueno el problema que tengo como lo dice el titulo, es que al momento que mando a insertar la informacion de un formulario a MySQL, los acentos los guarda con caracteres extraños.
Cuando mando a llamar estos valores de MySQL para mostrarlos en pantalla aparecen correctamente, pero si entro directamete a MySQL y veo la informacion los acentos aparecen con caracteres raros. Asi como tambien si deseo insertar algun valor con acentos directamente a la base de datos estos se muestran correctamente en MySQL.

Apesar de que estos valores cuando los mando a llamar los visualizo correctamente en pantalla, de esa misma base de datos la utilizo para hacer unas llamadas desde moodle, y me muestra en pantalla los valores con caracteres extraños tal y como estan guardados en la base de datos.

Hay alguna forma para poder guadar los acentos en mysql desde php?

Cabe mensionar que la codificacion que utilizo es la UTF8, en el servidor Apache, en la codificacion de las paginas Webs, asi como tambien el la Base de datos.


Esperando que alguien pueda tener alguna idea de como solucionarlo se los agradeceria.

Última edición por jonn59; 10/09/2009 a las 11:23 Razón: solucionado
  #2 (permalink)  
Antiguo 06/09/2009, 12:33
Avatar de bioxido  
Fecha de Ingreso: diciembre-2008
Ubicación: $_SERVER['PHP_SELF']
Mensajes: 601
Antigüedad: 15 años, 4 meses
Puntos: 21
Respuesta: Problema con acentos al insertar a MySQL desde PHP

para eso, antes de insertar los datos en la base de datos, pasalos por la funciona htmlentities(), asi no vas a tener problemas.
  #3 (permalink)  
Antiguo 06/09/2009, 18:42
 
Fecha de Ingreso: septiembre-2009
Mensajes: 25
Antigüedad: 14 años, 7 meses
Puntos: 3
Respuesta: Problema con acentos al insertar a MySQL desde PHP

hola amigo gracias por tu respuesta, el htmlentities() ya lo estoy utilizando pero para mostrar correctamente algunos valores que obtengo de la base de datos.

Pero te comento que hise lo que me indicaste y cuando ingrese ala base de datos a ver unos valores que inserte desde el formulario, se ven como sigue.

inserte "Pédro", y en la base de datos se ve "Pédro"

anteriormente si insertaba palabras con asentos se veian de la siguiente forma "GarcÃ*a Lòpez"


Alguna otra idea seria de ayuda gracias.
  #4 (permalink)  
Antiguo 10/09/2009, 09:31
 
Fecha de Ingreso: septiembre-2009
Mensajes: 25
Antigüedad: 14 años, 7 meses
Puntos: 3
Respuesta: Problema con acentos al insertar a MySQL desde PHP

Alguien tiene alguna idea de como solucionar el problema, se los agradeceria.

  #5 (permalink)  
Antiguo 10/09/2009, 09:35
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: Problema con acentos al insertar a MySQL desde PHP

Te sugiero que todo lo conviertas a UTF-8 me refiero al archivo, los header, metas y la base de datos.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #6 (permalink)  
Antiguo 10/09/2009, 09:40
 
Fecha de Ingreso: septiembre-2009
Mensajes: 25
Antigüedad: 14 años, 7 meses
Puntos: 3
Respuesta: Problema con acentos al insertar a MySQL desde PHP

La codificación del archivo fuente es UTF-8, así como la base de datos, y los headers de las paginas web, es por ello que no se que pueda estar ocurriendo
  #7 (permalink)  
Antiguo 10/09/2009, 10:00
Avatar de flmn  
Fecha de Ingreso: septiembre-2009
Mensajes: 22
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: Problema con acentos al insertar a MySQL desde PHP

¿Dentro de UTF-8 que sub-codificación usas?
Si no lo haces ya te recomiendo probar utf8_unicode_ci para la codificación de la base de datos y la conexión a mysql.
  #8 (permalink)  
Antiguo 10/09/2009, 10:25
 
Fecha de Ingreso: abril-2009
Ubicación: Colombia
Mensajes: 949
Antigüedad: 15 años
Puntos: 27
Respuesta: Problema con acentos al insertar a MySQL desde PHP

Cuando envies informacion a la base de datos, debes de utilizar
el charset=iso-8859-1 asi:

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />

y en tu base de datos debes tener UTF-8
Tuve ese mismo problema algun dia en un proyecto,,y de esta forma lo pude solucionar.....

espero te sirva
  #9 (permalink)  
Antiguo 10/09/2009, 11:21
 
Fecha de Ingreso: septiembre-2009
Mensajes: 25
Antigüedad: 14 años, 7 meses
Puntos: 3
De acuerdo Respuesta: Problema con acentos al insertar a MySQL desde PHP

Hola a todos, muchas gracias por sus respuestas, me sirvieron de mucha ayuda para poder dar con la solucion del problema.

Les comento que logre solucionarlo agregando:
Código PHP:
@mysql_query("SET NAMES 'utf8'"); 
despues de hacer la conexion con la base de datos.
Al final mi funcion de conexion quedo de la siguiente forma:

Código PHP:
class DB extends Config {
        
        public function 
Conectarse(){
               if (!(
$link=@mysql_connect($this->host,$this->db_usuario,$this->db_pass))){
                  echo 
"Error conectando a la base de datos.";
                  exit();
               }
               
               if (!@
mysql_select_db($this->db_name,$link)){
                  echo 
"Error seleccionando la base de datos.";
                  exit();
               }
               
               @
mysql_query("SET NAMES 'utf8'",$link);
               
               return 
$link;
        } 
No modifique nada a los headers de las paginas web ni de la base de datos, todo quedo en UTF8.

Gracias!!
  #10 (permalink)  
Antiguo 13/05/2011, 18:35
 
Fecha de Ingreso: enero-2005
Ubicación: Barcelona
Mensajes: 37
Antigüedad: 19 años, 2 meses
Puntos: 1
Respuesta: Problema con acentos al insertar a MySQL desde PHP

Muchas gracias por indicar la solución.

Para poner mi granito de arena, les dejo otra manera de conectar con la base de datos:

Cita:
function conectar()
{
mysql_connect("localhost", "user", "psw") or die("Problemas en la conexion");

mysql_select_db("bbdd") or die ("problema en al seleccion de db");

@mysql_query("SET NAMES 'utf8'");
}

function desconectar()
{
mysql_close();
}
  #11 (permalink)  
Antiguo 14/05/2011, 04:14
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años
Puntos: 406
Respuesta: Problema con acentos al insertar a MySQL desde PHP

Oye, te das cuenta que el post tiene mas de 1 año o.O, vamos que no eres nuevo nuevo en foros del web, y debes saber que esta prohibido revivir temas con mas de 6 MESES
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)
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.
Tema Cerrado

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 07:59.