Lenguaje PHP

PDO MYSQL UTF-8 Caracteres especiales en PHP

PDO MYSQL UTF-8 Caracteres especiales en PHP. Siempre es bueno migrar a una versión superior ya que trae muchas ventajas y nuevas reglas que debemos aprovechar al máximo. Si estas usando PDO en tus desarrollos y tienes grandes problemas al obtener resultados de mysql, por ejemplo, las (Ñ, Í, Ó, etc.) y que obtengas unos iconos raros como �  es muy probable que la conexión de la base de datos mysql no este configurado correctamente la codificación de caracteres uft-8.

PDO MYSQL UTF-8 Caracteres especiales en PHP

Ahora veremos un ejemplo añadiendo la constante MYSQL_ATTR_INIT_COMMAND a la conexión de la base de datos con pdo:

  1. Primer Ejemplo

$pdo = new PDO(
     'mysql:host=mihost;dbname=mibd',
     'miusuario',
     'mipassword',
     array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8")
);

2. Segundo ejemplo

Lo tendrias que declarar en tu cadena de conexión con base de datos como:

"mysql:host=$host;dbname=$db;charset=utf8"

Hasta ahi todo bien, sin embargo, antes de la version PHP 5.3.6, la opción charset fue ignorada. Si por alguna razon está ejecutando una versión anterior de PHP, debe declararlo así el UTF-8:

$dbh = new PDO("mysql:$connstr",  $user, $password);
$dbh->exec("set names utf8");

Es muy important recordar que:

  • Los archivos php de tu proyecto (web o sistema web) esten codificados en utf-8
  • Las página web tengan el meta charset utf-8
<meta charset="utf-8">
  • Las tablas y base de datos mysql tengan el cotejamiento utf8

Espero que les sea de utilidad, un saludo y no olviden de suscribirse.

PDO MYSQL UTF-8 Caracteres especiales en PHP
PDO MYSQL UTF-8 Caracteres especiales en PHP

Referencia:

UTF-8

Nestor Tapia

Bloggero, amante de la programación PHP, innovador y me fascina compartir información. Desde que conocí el entorno informatico y el internet me llamó la atención la programación, Por tal motivo he creado mi blog BAULPHP.COM para compartir mis experiencias con todos ustedes. ¡Gracias por leerme!.

7 comentarios

  1. Que genial post, me ayudo mucho, estaba como loco por que no podía realizar una sentencia pero tu post me soluciono mis dudas y problemas, gracias.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba
Esta web utiliza cookies propias para su correcto funcionamiento. Contiene enlaces a sitios web de terceros con políticas de privacidad ajenas que podrás aceptar o no cuando accedas a ellos. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Más información
Privacidad