Posts Etiquetados ‘MySQL’

Acentos, ñ, y caracteres UTF-8 en CakePHP 1.2 y MySQL

Cuando utilizo CakePHP 1.2, la mayoria de las veces obtengo errores en los acentos, ñ, o caracteres especiales UTF-8 al momento de extraer la información de una tabla MySQL latin1, el problema principal es que olvido poner SET NAMES UTF-8 a cada una de las llamadas a la base de datos, así como poner el charset=utf-8 en el layout.

La solucion es:

En mi views/layouts/default.ctp, entre los tags de <head> y </head>:

echo $html->charset('utf-8');

Y crear el archivo app_model.php en el folder app/ con el siguiente contenido:

class AppModel extends Model {
 
	function __construct()
	{
		parent::__construct();
		$this->query("SET NAMES 'utf8'");
	}
}

Nota: Primero va el parent::__construct(); ya que antes de que podamos ejecutar cualquier query en el modelo (o usar $this), éste debe de ser instanciado.

Esto ejecutará por default SET NAMES ‘utf-8′ en todas las queries… no es una forma ideal pero saca del problema.

Posteado el Agosto 16th, 2008 por netors  |  No Comments »

Migrar una base de datos MySQL con caracters latin1 (tildes.. etc)

Para migrar una base de datos de tipo MySQL con caracteres latin1, como pueden ser acentos, dierisis etc… es necesario especificarlo al momento de hacer el dump. Suponiendo que el servidor MySQL este en el directorio C:\MySQL\ utilizamos los comandos:

C:\MySQL\bin>mysqldump -h <servidor_fuente> -u <usuario> -p <base_de_datos> --default-character-set=latin1 > dump.sql
 
C:\MySQL\bin>mysql -h <servidor_destinatario> -u <usuario> -p <base_de_datos> < dump.sql

Posteado el Junio 18th, 2007 por netors  |  No Comments »