16 de noviembre de 2014

Establecer conexión entre PHP (mysqli) y MariaDB

En estos años se ha ido experimentado un gran crecimiento en la búsqueda de digitalizar toda la información que emiten desde grandes empresas hasta en pequeños subsistemas de información que podamos hacer nosotros por andar por casa como es el caso de un blog. 

Para así gestionar toda nuestra información por muy irrelevante que sea, de una manera más cómoda, eficiente, rápida y segura. En contra posición de la procedimiento tradicional que es papel, tinta, una impresora y un gran armario para almacenar todos esos papeles molestos y difíciles de encontrar.



Como hablamos anteriormente, PHP es un lenguaje de programación orientado al desarrollo de páginas Web dinámicas. Por ende, podemos sacarle un gran partido combinándolo con un sistema gestor de base de datos como MariaDB haciendo páginas Web que muestren la información que queramos. Esto ocurre gracias a los ODBC, inglés Open Database Connectivity, una serie de drivers que permiten conectarnos a nuestro SGDB y poder trabajar con él. Por norma general todos los SGBD deben tenerlos porque forma parte de un estándar. PHP tiene una serie de funciones, métodos, clases que permiten mediante una API conectar a estos SGBD.


En esta entrada hablaremos de MariaDB, un fork del famoso y universalizado SGDB MySQL y que en principio, lo que funciona en ella funciona igualmente debería funcionar en MySQL. Hay que comprender que todos estos gestores tienen al menos o como mínimo un usuario con todos los privilegios del mismo, seguido de una contraseña, una dirección IP y puerto del servidor dónde se encuentra además de la base de datos a la que apuntamos. 


Los parámetros son los siguientes:

Servidor localhost ó 127.0.0.1 (apunta a nuestra dirección local).
Usuario root
Contraseña root
Base de datos ejemplo

Bien comencemos. Existen varias forma de acceder a una DB alojada en el SGDB de MariaDB mediante PHP como orientado por procedimientos y orientado a objetos. Sin embargo, vamos a tratar con la segunda porque nos resulta más sencilla y fácil de trabajar con ella pero utilizando los métodos de mysqli y no los de POO. (Otro día lo explicaremos por POO).

Primer método

Vamos a materializar un objeto. 
mysqli en si es una clase esto quiere decir que posee una serie de métodos bien definidos además de una serie de propiedades con las que podemos trabajar cuando lo instanciemos que es el proceso en el que a partir de una clase se convierte en un objeto.

La sintaxis es la siguiente:

$ejemplo = new mysqli("DIR_SERVER","DB_USER","DB_PASS_USER","DB_2_WORK"); 
if ($ejemplo->connect_errno) {
echo "Fallo al contenctar a MySQL: (" . $ejemplo->connect_errno . ") " . $ejemplo->connect_error; 
}
echo $ejemplo->host_info . "\n";
Esto permite establecer la conexión con MariaDB.

Podemos ver todas las propiedades de esa conexión escribiendo lo siguiente:
echo "<pre>",print_r($ejemplo),"</pre>";
Nos saldrá un resultado como este:


Esto quiere decir que ha conectado perfectamente.

En caso de error, se nos mostrará un mensaje de error.

Segundo método

Podemos crear una clase y establecer una conexión con ella.
<?php

class Conexion {
 private $servidor = "localhost";
 private $usuario = "root";
 private $contrasena = "example@";
 private $based = "ejemplo";
 private $conn;

 public function conectar(){

$this->conn = new mysqli(
$this->servidor,
$this->usuario,
$this->contrasena,
$this->based
);

if ($this->conn->connect_errno) {
  echo "Fallo al contenctar a MySQL: (" . $this->conn->connect_errno . ") " . $this->conn->connect_error;
}

echo $this->conn->host_info . "\n";

}

public function desconectar(){

self::conectar();

$this->conn->close();

}

}
$ejemplo = new Conexion();
$ejemplo->conectar();
?>

Tercer método

Haciendo uso de la herencia de la clase de mysqli

<?php 
class Conexion extends mysqli {
    public function __construct($host, $usuario, $contrasena, $bd) {
        parent::__construct($host, $usuario, $contrasena, $bd);
        if (mysqli_connect_error()) {
            die('Error de Conexión (' . mysqli_connect_errno() . ') '
                    . mysqli_connect_error());
        }
    }
}
$ejemplo = new Conexion('localhost', 'root', 'example@', 'ejemplo');

echo 'Éxito... ' . $bd->host_info . "\n";
$ejemplo->close();
?>
Y listo, ya tenemos la forma de conectarnos con MariaDB, puedes elegir el método que más te guste. Yo prefiero más el segundo porque creas tu propia clase con tus propiedades y métodos que luego utilizarás. Pero eres libre de cuál escoger, o de inventarte uno.

En las próximas entradas, veremos como trabajar con los datos almacenados en nuestra base de datos, y también como realizar consultas.

Referencias

  • Google
  • PHP.net ~ manual de PHP online
  • Manuales guebs 

8 comentarios:

Gracias por visitar mi blog y animarte a comentar. Por favor se respetuoso con sus comentarios. Cualquier error es preferible reportárlo que criticarlo por el bien de todos.



Licencia y responsabilidades

Licencia Creative Commons
netSys blog por Álvaro Castillo se encuentra bajo una Licencia Creative Commons Atribución-CompartirIgual 3.0 Unported.

El propietario de este blog no se responsabiliza de los daños que puedan generarse u ocurrir por la información expuesta aquí, en caso de ser utilizada la responsabilidad recae bajo quién la use.

Se les informa de posibles publicaciones donde queden expuestas imágenes a terceros o marcas comerciales que siempre tendrán sus fuentes, y sus atribuciones.

Por último, en caso de confusión por la temática que se trate de los artículos, tutoriales...etc dejaremos claro que este sitio Web no colabora directamente con ningún proyecto de forma oficial.