Conectar a una Base de Datos

Lo primero que se debe hacer siempre que se quiera usar MySQL en PHP es conectarse a la base de datos, sin una conexión no hay manera de realizar una consulta o manipular los datos. Para realizar la conexión se crea un objeto que contenga la información de la base de datos con new mysqli(). Esta conexión sirve para todas las operaciones que se deseen realizar en el mismo script PHP.

<?php

$db = new mysqli('localhost', 'usuario', 'clave', 'nombre_base_datos');
// El primer parámetro es el host en donde se encuentra la base de datos
// El segundo parámetro es el usuario con el que se desea conectar
// El tercer parámetro es la clave del usuario
// El cuarto es la base de datos que se desea utilizar


// Por ultimo se debe revisar si la conexión se realizo sin ningún problema
// para esto se hace uso de la propiedad 'connect_errno' sobre el objeto
// de la conexión a la base de datos
if($db->connect_errno > 0){
    die('Imposible conectar [' . $db->connect_error . ']');
    // Si se consiguió algún error entonces se muestra cual fue
}else{
    echo 'Conectado';
    // Si no se consigue algún error entonces la conexión se realizo correctamente
}

?>

Como Realizar una Consulta

Con la conexión ya establecida pasamos a realizar una consulta que es lo mas importante. Hay varias maneras de realizar consultas, las cuales depende de si se van a pasar parámetros o no y de si se va a realizar la consulta muchas veces o no. Pero primero vamos a realizar una consulta simple para aprender la lógica y las funciones que se utilizan.

Ejecutar una consulta SQL en PHP se puede dividir en dos pasos, después que tengamos la conexión establecida claro.

El primer paso es ejecutar la consulta mediante la función query, esta devuelve un objeto con la información del resultado de la consulta en caso de haberse ejecutado correctamente. Si hubo algún error durante la ejecución de la consulta entonces se devuelve FALSE.

<?php

$db = new mysqli('localhost', 'usuario', 'clave', 'nombre_base_datos');
if($db->connect_errno > 0){
    die('Imposible conectar [' . $db->connect_error . ']');
}

$sql = "SELECT lenguaje FROM lenguajes";

if(!$resultado = $db->query($sql)){
    die('Ocurrio un error ejecutando el query [' . $db->error . ']');
}
?>

El segundo paso es recorrer el resultado para obtener todas las filas que nos devolvió la consulta ejecutada, para esto se hace uso de la función fecth_assoc(). Esta función va haciendo una especie de vacío a la consulta y va pasando cada fila a la variable para poder obtener los datos. El ciclo while va a terminar cuando la consulta se haya vaciado completamente.

<?php

$db = new mysqli('localhost', 'usuario', 'clave', 'nombre_base_datos');
if($db->connect_errno > 0){
    die('Imposible conectar [' . $db->connect_error . ']');
}

$sql = "SELECT lenguaje FROM lenguajes";

if(!$resultado = $db->query($sql)){
    die('Ocurrio un error ejecutando el query [' . $db->error . ']');
}

while($fila = $resultado->fetch_assoc()){

    // $fila es un arreglo asociativo con todos los campos que se pusieron en el select

    echo $fila['lenguaje'] . '<br />';
}
?>

Si queremos conocer el número de filas que devolvió la consulta tenemos que utilizar la propiedad num_rows del objeto resultante de la consulta a la base de datos, veamos un ejemplo.

<?php

$db = new mysqli('localhost', 'usuario', 'clave', 'nombre_base_datos');
if($db->connect_errno > 0){
    die('Imposible conectar [' . $db->connect_error . ']');
}

$sql = "SELECT lenguaje FROM lenguajes";

if(!$resultado = $db->query($sql)){
    die('Ocurrio un error ejecutando el query [' . $db->error . ']');
}

echo 'Cantidad de filas: ' . $resultado->num_rows;

?>

Por último, siempre es una buena practica cerrar la conexión al final del script con la función close().

<?php

$db = new mysqli('localhost', 'usuario', 'clave', 'nombre_base_datos');
if($db->connect_errno > 0){
    die('Imposible conectar [' . $db->connect_error . ']');
}

$sql = "SELECT lenguaje FROM lenguajes";

if(!$resultado = $db->query($sql)){
    die('Ocurrio un error ejecutando el query [' . $db->error . ']');
}

$db->close();

?>

<h1>Como Insertar, Modificar y Eliminar</h1>

Para insertar, modificar o eliminar se utiliza solo el paso uno del procedimiento anterior, el cual es llamar a la función <strong>query()</strong> con la sentencia SQL que se desee ejecutar.

Si se desea conocer cuantas filas fueron afectadas por la ejecución de la función <strong>query()</strong>, se hace uso del a propiedad <strong>afected_rows </strong>en el objeto de la conexión a la base de datos.
<h2>Insertar</h2>

Para insertar un registro se corre la sentencia SQL de <strong>INSERT </strong>con la función <strong>query()</strong>.

<?php

$sql = "INSERT INTO lenguajes (id, lenguaje, descripcion) VALUES(NULL, 'C++', 'Sin Descripcion')";

if(! $db->query($sql)){
     die('Ocurrio un error ejecutando el query [' . $db->error . ']');
}

echo 'Filas Insertadas: '.$db->affected_rows;
?>

Modificar

Para modificar uno o varios registros se corre la sentencia SQL de UPDATE con la función query().

<?php

$sql = "UPDATE lenguajes SET  descripcion =  'Lenguaje C++' WHERE  id =5;";
if(! $db->query($sql) ){
     die('Ocurrio un error ejecutando el query [' . $db->error . ']');
}

echo 'Filas Modificadas: '.$db->affected_rows;
?>

<h2>Eliminar</h2>

Para eliminar uno o varios registros se corre la sentencia SQL de <strong>DELETE </strong>con la función <strong>query().</strong>

<?php

$sql = "DELETE FROM lenguajes WHERE  id = 5;";
if(! $db->query($sql) ){
     die('Ocurrio un error ejecutando el query [' . $db->error . ']');
}

echo 'Filas Eliminadas: '.$db->affected_rows;
?>

Conclusión

En este capítulo hemos aprendido a realizar la conexión de PHP con MySQL y realizar algunas sentencias básicas. En el próximo capitulo veremos como pasar parámetros y filtros a las consultas para que sean mas útiles. Cualquier duda o comentario estaré atento a la sección de comentarios.