Lenguaje PHP

PDO Conectar con la base de datos MYSQL

PDO Conectar con la base de datos MYSQL. Desde hace algún tiempo que algunas funciones empezaron a quedarse obsoletas como mysql_connect o mysql_fetch_array, esto es posible porque nuestros servidores compartidos mejoran su versión de PHP, es posible que nos salgan continuamente warnings y avisos del tipo: en desuso, si bien es muy sencillo entender la codificación, tenemos la tarea de dejarlo ir y cambiar al nuevo método de conexión.

<?php
mysql_connect('localhost', 'usuario', 'contraseña') or die ("Fallo la conexion.");
?>

Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in

Veamos algunas soluciones para este tipo de problemas a la hora de conectar PHP con nuestro servidor MYSQL. Quizá en algunas ocasiones utilicemos las estrategias de PHP como el de ocultar esos mensajes que nos da este lenguaje de programación, en la mayoría de los casos puede ser una molestia.

<?php

// Desactivar toda notificación de error
error_reporting(0);

// Notificar solamente errores de ejecución
error_reporting(E_ERROR | E_WARNING |E_PARSE);

// Notificar E_NOTICE también puede ser bueno (para informar de variables
// no inicializadas o capturar errores en nombres de variables ...)
error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);

// Notificar todos los errores excepto E_NOTICE
// Este es el valor predeterminado establecido en php.ini
error_reporting(E_ALL ^ E_NOTICE);

// Notificar todos los errores de PHP (ver el registro de cambios)
error_reporting(E_ALL);

// Notificar todos los errores de PHP
error_reporting(-1);

// Lo mismo que error_reporting(E_ALL);
ini_set('error_reporting', E_ALL);

?>

Simplemente ocultan los mensajes de warnings y demás mensajes. Pero si lo utilizas en jquery para comunicar con mysql, pasando parámetros con json, etc., es posible que el resultado no sea el más esperado por que te añadirá espacios en blanco, saltos de línea mostrando las deficiencias de nuestra programación.

La solución eficaz es dar el salto a la nueva función, para ello nada más simple, os dejo un ejemplo de conexión completa con mysqli_connect y consultar con mysqli_query:

PDO Conectar con la base de datos MYSQL

<?php
//Conexion antigua
mysql_query('select * from paises', $connection); //Conexion nueva
mysqli_query($connection, 'select * from paises');
?>

a) Ejemplo completo #1 MySQLi

<?php
define("bServidor", "localhost");
define("bUsuario", "usuario");
define("bPass","password");
define("bBd","base_de_datos");

$conexion = mysqli_connect(bServidor, bUsuario, bPass, bBd);
$consulta = 'select * from paises';
$resultado = mysqli_query($conexion, $consulta);

while ($registro = mysqli_fetch_array($resultado)){
//tus resultados de la base de datos
}
?>

Ejemplo #1  PDO

Otras soluciones es migrar a PDO

<?php
$conn = new PDO('mysql:host=localhost;dbname=basededatos', $usuario, $password);
?>

Si lo ven por primera vez notaran que es muy dificil, pero ingresen al codigo y se daran cuenta de lo sencillo que es: empecemos, creamos con el “new” una instancia de clase PDO PHP, definir el tipo de base de datos con “mysql:”, el servidor “localhost”, el nombre de la base de datos “dbname=basededatos”, y después usando variables, el usuario y la contraseña del servidor de bases de datos (MYSQL).

PDO Conectar con la base de datos MYSQL
PDO Conectar con la base de datos MYSQL

Como puede haber errores en cada instancia, tenemos que controlarlos mediante el uso de try catch(…){} de la siguiente manera: ejemplo.

<?php
try{
	$conn = new PDO('mysql:host=localhost;dbname=basededatos', $usuario, $password);
	$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}catch(PDOException $e){
	echo "ERROR: " . $e->getMessage();
}
?>

Si ven no es cosa de otro mundo, de esta manera se conecta a la base de datos MYSQL de manera eficaz y en caso de que suceda un error en la conexion salta un error con un echo. Se puede ver que el try catch reemplazaria la función del or die de la sintaxis habitual de PHP y MySQL, mysql_connect ya esta en desuso en las nuevas versiones de PHP.

Ejemplo #2 PDO

<?php
$mbd = new PDO('mysql:host=localhost;dbname=prueba', $usuario, $contraseña);
// Utilizar la conexión aquí
$sth = $mbd->query('SELECT * FROM foo');

// Ya se ha terminado; se cierra
$sth = null;
$mbd = null;
?>

Más Informacion

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

Deja una respuesta

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

Botón volver arriba