Tutorial PHP

PHP INICIO Introducción PHP Instalación de PHP Sintaxis PHP Comentarios PHP Variables PHP PHP Echo / Imprimir Tipos de datos PHP Cadenas PHP Números PHP Matemáticas PHP Constantes PHP Operadores PHP PHP Si... Más... Elseif Cambio de PHP Bucles de PHP Funciones PHP Matrices de PHP Superglobales de PHP PHP expresión regular

Formularios PHP

Manejo de formularios PHP Validación de formulario PHP Formulario PHP requerido Formulario PHP URL/Correo electrónico Formulario PHP completo

PHP Avanzado

Fecha y hora PHP PHP Incluir Manejo de archivos PHP Archivo PHP Abrir/Leer Archivo PHP Crear/Escribir Carga de archivos PHP Cookies PHP Sesiones PHP Filtros PHP Filtros PHP avanzados Funciones de devolución de llamada de PHP PHPJSON Excepciones de PHP

POO de PHP

PHP ¿Qué es la programación orientada a objetos? Clases PHP/Objetos Constructor PHP Destructor PHP Modificadores de acceso de PHP Herencia de PHP Constantes PHP Clases abstractas de PHP Interfaces PHP Características de PHP Métodos estáticos de PHP Propiedades estáticas de PHP Espacios de nombres de PHP Iterables de PHP

Base de datos MySQL

Base de datos MySQL Conexión MySQL MySQL Crear base de datos Crear tabla MySQL MySQL Insertar datos MySQL Obtener la última identificación MySQL Insertar Múltiples MySQL preparado Datos seleccionados de MySQL mysql donde MySQL Ordenar por MySQL Eliminar datos Datos de actualización de MySQL Límite de datos de MySQL

PHPXML _

Analizadores PHP XML Analizador PHP SimpleXML PHP SimpleXML - Obtener PHP XML Expatriados PHP XML DOM

PHP -AJAX

Introducción a AJAX AJAXPHP Base de datos AJAX XML AJAX Búsqueda en vivo de AJAX Encuesta AJAX

Ejemplos de PHP

Ejemplos de PHP Compilador PHP Cuestionario de PHP Ejercicios PHP Certificado PHP

Referencia PHP

Descripción general de PHP Matriz de PHP Calendario PHP Fecha PHP Directorio PHP Error PHP Excepción PHP Sistema de archivos PHP Filtro PHP PHPFTP PHPJSON Palabras clave PHP PHP Libxml Correo PHP Matemáticas PHP PHP misceláneo PHP MySQLi Red PHP Control de salida de PHP PHP expresión regular PHP SimpleXML flujo PHP Cadena PHP Manejo de variables de PHP Analizador PHP XML código postal de PHP Zonas horarias de PHP

PHP Conectarse a MySQL


PHP 5 y versiones posteriores pueden funcionar con una base de datos MySQL usando:

  • Extensión MySQLi (la "i" significa mejorado)
  • PDO (objetos de datos PHP)

Las versiones anteriores de PHP usaban la extensión MySQL. Sin embargo, esta extensión quedó obsoleta en 2012.


¿Debo usar MySQLi o PDO?

Si necesitas una respuesta corta, sería "Lo que quieras".

Tanto MySQLi como PDO tienen sus ventajas:

PDO funcionará en 12 sistemas de bases de datos diferentes, mientras que MySQLi solo funcionará con bases de datos MySQL.

Entonces, si tiene que cambiar su proyecto para usar otra base de datos, PDO facilita el proceso. Solo tiene que cambiar la cadena de conexión y algunas consultas. Con MySQLi, deberá volver a escribir todo el código, incluidas las consultas.

Ambos están orientados a objetos, pero MySQLi también ofrece una API de procedimiento.

Ambos admiten declaraciones preparadas. Las declaraciones preparadas protegen contra la inyección de SQL y son muy importantes para la seguridad de las aplicaciones web.


Ejemplos de MySQL en la sintaxis de MySQLi y PDO

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

  • MySQLi (orientado a objetos)
  • MySQLi (procedimiento)
  • DOP

Instalación de 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 instalación, vaya a: http://php.net/manual/en/mysqli.installation.php


Instalación de DOP

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



Abrir una conexión a MySQL

Antes de que podamos acceder a los datos en la base de datos MySQL, debemos poder conectarnos al servidor:

Ejemplo (orientado a objetos de MySQLi)

<?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 orientado a objetos anterior:

$connect_error se rompió hasta PHP 5.2.9 y 5.3.0. Si necesita garantizar la compatibilidad con las versiones de PHP anteriores a la 5.2.9 y la 5.3.0, use el siguiente código:

// Verifique la conexión
si (mysqli_connect_error()) {
  die("La conexión a la base de datos falló: " . mysqli_connect_error());
}

Ejemplo (Procedimiento MySQLi)

<?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 (DOP)

<?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();
}
?>

Nota: En el ejemplo de PDO anterior, también hemos especificado una base de datos (myDB) . PDO requiere una base de datos válida para conectarse. Si no se especifica ninguna base de datos, se lanza una excepción.

Sugerencia: un gran beneficio de PDO es que tiene una clase de excepción para manejar cualquier problema que pueda ocurrir en nuestras consultas a la base de datos. Si se lanza una excepción dentro del bloque try{ }, el script deja de ejecutarse y fluye directamente al primer bloque catch(){ }.


Cerrar la conexión

La conexión se cerrará automáticamente cuando finalice el script. Para cerrar la conexión antes, usa lo siguiente:

MySQLi orientado a objetos:

$conn->close();

Procedimiento MySQLi:

mysqli_close($conn);

DOP:

$conn = null;