DRUPAL: ejecutar una consulta contra la base de datos

Un sitio Drupal forzosamente está ligado a una base de datos MySQL, que utiliza para almacenar datos de los usuarios, de las páginas, etc. Aunque se puede conectar a bases de datos externas yo voy a explicar cómo ejecutar consultas sobre la base de datos vinculada a Drupal.

Si queremos ejecutar una consulta que no devuelve datos (por ejemplo, un CREATE, INSERT, UPDATE, DELETE…) simplemente podemos ejecutar:

db_query($consulta)

donde $consulta es un string que contiene la consulta. Ej:

$consulta = “DELETE FROM paises WHERE nombre_pais = ‘Pandora'”;

db_query($consulta);

Ojo con las comillas, lo aconsejable es usar comillas dobles para el string que contiene la consulta y comillas simples para la propia consulta.

Si la consulta devuelve valores (típicamente un SELECT) para acceder a los valores que nos devuelve haremos lo siguiente:

$consulta = ‘SELECT nombre_pais FROM paises’;

$resultado = db_query($consulta);

while ($fila = db_fetch_array($resultado)) {
   /*
      Nos devuelve en $fila un array con los valores de cada fila.
      A estos valores accedemos mediante su índice.
   */
   echo $fila[‘nombre_pais’] . ‘
‘;
}

Nos imprimiría todos los nombres de países en líneas separadas.

Advertisements
DRUPAL: ejecutar una consulta contra la base de datos