Revista Informática

PHP desde Cero: MySQL

Publicado el 22 octubre 2013 por Codehero @codeheroblog

Para ejecutar los códigos de este capitulo debemos tener una base de datos creada y crear una tabla llamada lenguajes. A continuación muestro al estructura de la tabla y algunos datos que he insertado de ejemplo.

tabla_lenguajesdatos_lenguajes

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.

$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 }

1234567891011121314151617 $db=newmysqli('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 datosif($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 }


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.

$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 . ']'); }

12345678910 $db=newmysqli('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.

$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 />'; }

1234567891011121314151617 $db=newmysqli('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.

$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;

123456789101112 $db=newmysqli('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().

$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();

123456789101112 $db=newmysqli('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 función query() con la sentencia SQL que se desee ejecutar.

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

Insertar

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

$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;

1234567 $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().

$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;

123456 $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 función query().

$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;

123456 $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.


Volver a la Portada de Logo Paperblog