You are on page 1of 7

PHP desde Cero: MySQL

http://codehero.co/php-desde-cero-mysql/

Ms artculos en PHP desde Cero


Este es el artculo MySQL de la serie PHP desde Cero - Mostrar todos
En este nuevo captulo de de la serie de PHP vamos a aprender como realizar una conexin
con una base de datos MySQL y manipular datos. Esta es una parte muy importante de las
aplicaciones, ya que sin una base de datos seria muy difcil guardar y manipular grandes
cantidades de datos. PHP tiene la ventaja de que hace muy sencillo la realizacin de
conexiones a una base de datos.
Para este captulo voy a asumir conocimientos bsicos de MySQL, como crear una base datos
con algunas tablas y realizar las operaciones bsicas.
Para ejecutar los cdigos de este capitulo debemos tener una base de datos creada y crear
una tabla llamada lenguajes. A continuacin muestro al estructura de la tabla y algunos datos
que he insertado de ejemplo.

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 conexin no hay manera de realizar una consulta o manipular los
datos. Para realizar la conexin se crea un objeto que contenga la informacin de la base de
datos con new mysqli(). Esta conexin 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 parmetro es el host en donde se encuentra la base de datos
// El segundo parmetro es el usuario con el que se desea conectar
// El tercer parmetro es la clave del usuario
// El cuarto es la base de datos que se desea utilizar

// Por ultimo se debe revisar si la conexin se realizo sin ningn problema


// para esto se hace uso de la propiedad 'connect_errno' sobre el objeto
// de la conexin a la base de datos
if($db->connect_errno > 0){
die('Imposible conectar [' . $db->connect_error . ']');
// Si se consigui algn error entonces se muestra cual fue
}else{
echo 'Conectado';
// Si no se consigue algn error entonces la conexin se realizo correctamen
te
}

?>

Realizar una Consulta

Con la conexin 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 parmetros
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 lgica y las funciones que se utilizan.
Ejecutar una consulta SQL en PHP se puede dividir en dos pasos, despus que tengamos la
conexin establecida claro.
El primer paso es ejecutar la consulta mediante la funcin query, esta devuelve un objeto con
la informacin del resultado de la consulta en caso de haberse ejecutado correctamente. Si
hubo algn error durante la ejecucin 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 funcin fecth_assoc(). Esta funcin va
haciendo una especie de vaco 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 nmero de filas que devolvi la consulta tenemos que utilizar la
propiedadnum_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 conexin al final del script con la
funcin 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();

?>

Insertar, Modificar y Eliminar


Para insertar, modificar o eliminar se utiliza solo el paso uno del procedimiento anterior, el cual
es llamar a la funcin query() con la sentencia SQL que se desee ejecutar.
Si se desea conocer cuantas filas fueron afectadas por la ejecucin de la funcin query(), se
hace uso del a propiedad afected_rows en el objeto de la conexin a la base de datos.

Insertar

Para insertar un registro se corre la sentencia SQL de INSERT con la funcin query().
<?php

$sql = "INSERT INTO lenguajes (id, lenguaje, descripcion) VALUES(NULL, 'C++', 'S
in 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
funcin 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;


?>

Eliminar
Para eliminar uno o varios registros se corre la sentencia SQL de DELETE con la
funcin query().
<?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;


?>

Conclusin
En este captulo hemos aprendido a realizar la conexin de PHP con MySQL y realizar
algunas sentencias bsicas. En el prximo capitulo veremos como pasar parmetros y filtros a
las consultas para que sean mas tiles. Cualquier duda o comentario estar atento a la
seccin de comentarios.

You might also like