Los últimos tutoriales de desarrollo web
 

PHP Conectarse a MySQL


PHP 5 y más tarde pueden trabajar con una base de datos MySQL usando:

  • Extensión mysqli (the "i" stands for improved)
  • PDO (PHP Data Objects)

Las versiones anteriores de PHP utilizan la extensión de MySQL. Sin embargo, esta extensión está desfasada y en el año 2012.


¿Debo utilizar MySQLi o DOP?

Si necesita una respuesta corta, sería "Whatever you like" .

Tanto MySQLi y PDO tienen sus ventajas:

DOP trabajará en 12 sistemas de bases de datos diferentes, donde como MySQLi sólo funciona con bases de datos MySQL.

Por lo tanto, si usted tiene que cambiar su proyecto de utilizar otra base de datos, DOP hace que el proceso sea fácil. Sólo hay que cambiar la cadena de conexión y algunas consultas. Con MySQLi, tendrá que volver a escribir el código completo - consultas incluidas.

Ambos son orientado a objetos, pero MySQLi también ofrece una API de procedimiento.

Ambos apoyan instrucciones preparadas. Sentencias preparadas protegen de la inyección de SQL, y son muy importantes para la seguridad de las aplicaciones web.


MySQL ejemplos en ambos MySQLi y PDO Sintaxis

En este y en los siguientes capítulos demostramos tres formas de trabajar con PHP y MySQL:

  • MySQLi (object-oriented)
  • MySQLi (procedural)
  • DOP

Instalación MySQLi

Para Linux y Windows: La extensión mysqli se instala automáticamente en la mayoría de los casos, cuando se instala el paquete php5 mysql.

Para detalles de la instalación, vaya a: http://php.net/manual/en/mysqli.installation.php


Instalación DOP

Para detalles de la instalación, vaya a: http://php.net/manual/en/pdo.installation.php


Abrir una conexión a MySQL

Antes de poder acceder a los datos en la base de datos MySQL, tenemos que ser capaces de conectar con el servidor:

Ejemplo (MySQLi Object-Oriented)

<?php
$servername = "localhost";
$username = "username";
$password = "password";

// Create connection
$conn = new mysqli($servername, $username, $password);

// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}
echo "Connected successfully";
?>

Nota sobre el ejemplo anterior orientado a objetos: $ connect_error se rompió hasta que PHP 5.2.9 y 5.3.0. Si usted necesita para asegurar la compatibilidad con las versiones de PHP anteriores a 5.2.9 y 5.3.0, utilice el código siguiente en su lugar:

// Verifica la conexión
si ( mysqli_connect_error() ) {
die("Database connection failed: " . mysqli_connect_error() );
}

Ejemplo (MySQLi Procedural)

<?php
$servername = "localhost";
$username = "username";
$password = "password";

// Create connection
$conn = mysqli_connect($servername, $username, $password);

// Check connection
if (!$conn) {
    die("Connection failed: " . mysqli_connect_error());
}
echo "Connected successfully";
?>

Ejemplo (PDO)

<?php
$servername = "localhost";
$username = "username";
$password = "password";

try {
    $conn = new PDO("mysql:host=$servername;dbname=myDB", $username, $password);
    // set the PDO error mode to exception
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    echo "Connected successfully";
    }
catch(PDOException $e)
    {
    echo "Connection failed: " . $e->getMessage();
    }
?>

Observe que en el ejemplo anterior DOP también hemos especificado una base de datos (myDB) . PDO requiere una base de datos válida para conectarse a. Si no se especifica una base de datos, se produce una excepción.

Consejo: Una gran ventaja de DOP es que tiene una clase de excepción para manejar cualquier problema que pueda ocurrir en nuestras consultas de bases de datos. Si se produce una excepción dentro del bloque try {}, el guión deja de ejecutar y fluye directamente a la primera catch() {} bloque.


Cierre la conexión

La conexión se cerrará automáticamente cuando termina la secuencia de comandos. Para cerrar la conexión antes, utilizar lo siguiente:

Ejemplo (MySQLi Object-Oriented)

$conn->close();

Ejemplo (MySQLi Procedural)

mysqli_close($conn);

Ejemplo (PDO)

$conn = null;