Como conectarse a una Base de Datos con PHP

Conectarse a una base de datos con PHP es cosa de todos los días para quienes estamos y para los que quieran estar en el desarrollo web. Hacerlo es bastante sencillo, pero hay ciertas pautas y cambios que han surgido desde las últimas versiones de PHP que conviene saber. Algo importante para todo desarrollador que quiera comenzar un nuevo proyecto es el echo de que las función tradicional para conectarse a la base de datos mysql_connect ya no es la opción recomendada, ahora para conectarnos a la BD debemos usar mysqli o pdo, dos nuevas clases que nos permitirán hacer lo mismo que la función anterior pero con sintaxis diferente.

Otro punto importante es siempre tener la función para realizar la conexión a la BD en un archivo separado, lo ideal es que este archivo se encuentre un nivel por encima de el directorio de nuestro sitio, de manera que no se puede acceder desde la web. También conviene que los permisos del archivo sean los correctos (ej: 644). Yendo al código primero vamos a ver un típico archivo de conexión a BD utilizando las funciones que ya no están recomendadas:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
function conectar(){
   $conn=mysql_connect("localhost","UsuarioBD","PSW_BD");
   mysql_select_db("NombreBD",$conn);
   return $conn;
}
 
function consulta($sql,$conn){
   $rs=mysql_query($sql,$conn);
   return $rs;
}
 
function resultado($rs){
   $row=mysql_fetch_array($rs);
   return $row;
}
 
function num_rows($rs) {
   $num=mysql_num_rows($rs);
   return $num;
}
 
function desconectar($conn){
   mysql_close($conn);
}
function conectar(){
   $conn=mysql_connect("localhost","UsuarioBD","PSW_BD");
   mysql_select_db("NombreBD",$conn);
   return $conn;
}

function consulta($sql,$conn){
   $rs=mysql_query($sql,$conn);
   return $rs;
}

function resultado($rs){
   $row=mysql_fetch_array($rs);
   return $row;
}

function num_rows($rs) {
   $num=mysql_num_rows($rs);
   return $num;
}

function desconectar($conn){
   mysql_close($conn);
}

De estas cinco funciones la primera es la más importante ya que es la que realiza la conexión y “guarda” los datos de conexión, es decir nombre de la BD, usuario de la BD y la contraseña de la misma. Las otras cuatro son opcionales ya que utilizar el código interno en el momento no aporta más dificultad que utilizar la función. Sin embargo puede ser más sencillo acordarse el nombre de nuestra función que el de la original, aparte si se originan cambios en el código, como paso con la nueva versión de PHP (lo voy a mostrar más adelante), nos será mucho más fácil actualizar en un solo documento que en todo el sitio.

La utilidad del resto del las funciones desde la segunda a la quinta es la siguiente:

  • Función 2 – Realiza la consulta a la BD, como parámetro recibe el SQL y la conexión obtenida con la primera función, devuelve la consulta.
  • Función 3 – Devuelve los resultados de la consulta generada por la función 2 que es pasada como parámetro.
  • Función 4 – Se usa para saber si hay resultados y cuantos, pasándole como parámetro la consulta devuelta por la función 2, si no hay devuelve 0.
  • Función 5 – Termina la conexión con la BD

Para entender como se usan estas funciones voy a poner un ejemplo:

1
2
3
4
5
6
7
8
9
10
11
include("../conexion.php"); //El archivo donde estan las funciones
 
$conn=conectar(); 
$sql="select nombre from usuarios where idusuario=10"; 
$rs=consulta($sql,$conn); 
if(num_rows($rs)!=0){ 
       $row=resultado($rs);
       $nombre=$row['nombre'];
       echo $nombre;
} 
desconectar($conn);
include("../conexion.php"); //El archivo donde estan las funciones

$conn=conectar(); 
$sql="select nombre from usuarios where idusuario=10"; 
$rs=consulta($sql,$conn); 
if(num_rows($rs)!=0){ 
       $row=resultado($rs);
       $nombre=$row['nombre'];
       echo $nombre;
} 
desconectar($conn);

Bueno ahora vamos a ver cual es la sintaxis recomendada a partir de la nueva versión PHP, si empezamos un nuevo proyecto deberemos utilizar esta, y si se trata de un proyecto anterior lo ideal sería actualizarlo lo antes posible, vayamos al código:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
function conectar(){
   $conn = new mysqli("localhost","UsuarioBD","PSW_BD","NombreBD");
   return $conn;
}
 
function consulta($sql,$conn){
   $rs=$conn->query($sql);
   return $rs;
}
 
function resultado($rs){
   $row=$rs->fetch_assoc();
   return $row;
}
 
function num_rows($rs) {
   $num=$rs->num_rows;
   return $num;
}
 
function desconectar(){
   mysqli::close ( void );
}
function conectar(){
   $conn = new mysqli("localhost","UsuarioBD","PSW_BD","NombreBD");
   return $conn;
}

function consulta($sql,$conn){
   $rs=$conn->query($sql);
   return $rs;
}

function resultado($rs){
   $row=$rs->fetch_assoc();
   return $row;
}

function num_rows($rs) {
   $num=$rs->num_rows;
   return $num;
}

function desconectar(){
   mysqli::close ( void );
}

El modo de utilizar estas funciones es exactamente el mismo. En este caso se trata de clase mysqli, la clase pdo tiene una sintaxis diferente, como ambas son recomendadas para nuevos proyectos yo prefiero la primera por ser más similar a la función anterior. Espero que les halla sido de utilidad y si tienen una consulta no duden en preguntar !.

Author: gp2

Desarrollador Web, Programador PHP y MySQL, conocedor de HTML5, CSS3 y Javascript. Del culto JQuery, gran coleccionador de funciones ajenas y especialista en hacer código redundante. Últimamente programador Java.

Deja un comentario