PDO MYSQL UTF-8 Caracteres especiales en 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:

💣 Descarga sistemas PHP y Laravel COMPLETOS GRATIS
Recursos premium listos para usar en proyectos reales 💻
👥 +1000 desarrolladores · 🔥 Publicaciones diarias
🔥 Unirme al canal GRATIS ahora 👥 Grupo de Facebook
⏳ Enlaces disponibles por tiempo limitado
💻 Sistemas completos 🔌 Plugins PRO ⚡ Scripts listos 🔥 Recursos exclusivos

  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

¿De cuánta utilidad te ha parecido este contenido?

¡Haz clic en una estrella para puntuarlo!

Promedio de puntuación 5 / 5. Recuento de votos: 1

Hasta ahora, ¡no hay votos!. Sé el primero en puntuar este contenido.

7 comments

  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.

Leave a comment

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