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:
-
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.

Referencia:
Hice todo ello pero aún no encuentro solución
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.
Gracias tambien a ti por leerme, saludos.
Hola, y si es una versión de php 5.6 como sería?
Hola Anais
De la misma manera, la versión 5.6 del PHP soporta PDO sin ningun problema.
Gracias, sabía el primer ejemplo, pero se me dificultaba aprenderlo con el segundo resolví.
Gracias por compartir, tenia este problema en mi web y ya pude solucionarlo, muchas gracias.