logo

Extra Block Types (EBT) - Nueva experiencia con Layout Builder❗

Extra Block Types (EBT): tipos de bloques con estilo y personalizables: Presentaciones de diapositivas, Pestañas, Tarjetas, Acordeones y muchos más. Configuraciones integradas para fondo, DOM Box y plugins de JavaScript. Experimenta hoy el futuro de la construcción de diseños.

Módulos de demostración EBT Descargar módulos EBT

❗Extra Paragraph Types (EPT) - Nueva experiencia con Paragraphs

Extra Paragraph Types (EPT): conjunto de módulos basado en párrafos de forma análoga.

Módulos de demostración EPT Descargar módulos EPT

Scroll
19/06/2025, by Ivan

El nivel de base de datos de Drupal está construido sobre la biblioteca PDO de PHP. PDO proporciona una API orientada a objetos unificada para acceder a diversas bases de datos, pero no ofrece una abstracción para los distintos dialectos SQL usados en diferentes bases de datos.

Controladores

Dado que diferentes bases de datos requieren diferentes tipos de interacción, el nivel de base de datos de Drupal requiere un controlador para cada tipo de base de datos. El controlador consiste en una serie de archivos ubicados en include/database/driver, donde driver es una cadena que representa una clave única para ese controlador. En la mayoría de los casos, la clave del controlador es la versión en minúsculas del nombre de la base de datos, por ejemplo, «mysql», «pgsql» o «mycustomdriver».

Cada controlador consta de varias clases derivadas de clases base en el sistema de base de datos. Estas clases específicas del controlador pueden sobreescribir cualquier comportamiento necesario para soportar correctamente ese tipo de base de datos. Las clases específicas del controlador siempre se nombran con el nombre de la clase base seguido de un guion bajo y el nombre del controlador. Por ejemplo, la versión específica para MySQL de InsertQuery se llama InsertQuery_mysql.

Conexiones

Una conexión es un objeto de la clase DatabaseConnection, que hereda de la clase PDO. Cada base de datos a la que Drupal se conecta tiene un objeto de conexión asociado. Este objeto debe estar subdividido en subclases para cada controlador específico.

Para acceder (y si es necesario abrir) el objeto de conexión, use:

$database = \Drupal::database();
// O bien
$database = \Drupal::service('database');

Si los servicios aún no están disponibles, \Drupal\Core\Database\Database::getConnection() puede obtener la conexión a la base de datos.

Para más información sobre la meta y la clave de conexión, consulte la página de documentación de configuración de base de datos.

Para obtener acceso a la conexión activa actual, utilice:

$conn =  \Drupal\Core\Database\Database::getConnection();

Esto obtendrá el objetivo predeterminado para la conexión activa.

Tenga en cuenta que en la gran mayoría de casos no es necesario solicitar directamente el objeto de conexión. En su lugar, los envoltorios procedurales lo harán por usted. La única razón por la que alguna vez necesitará acceso directo al objeto de conexión es si está realizando manipulaciones complejas con múltiples bases de datos y no desea cambiar la base de datos activa.

Para establecer una conexión activa, utilice:

$conn = \Drupal\Core\Database\Database::setActiveConnection('external');

Consulte la siguiente sección, Configuración de la base de datos, para obtener información detallada sobre claves y objetivos de conexión.

Consultas

Una consulta es una sentencia SQL que se enviará a una conexión de base de datos. El sistema de base de datos soporta seis tipos de consultas: estática, dinámica, inserción, actualización, eliminación y combinación. Algunas consultas se escriben como plantillas de cadena SQL (sentencias preparadas), mientras que otras usan constructores de consultas orientados a objetos. “Objeto consulta” se refiere a una instancia del constructor de consultas para uno de los distintos tipos de consulta.

Sentencias

Un objeto sentencia es el resultado de una consulta select. Siempre tendrá tipo DatabaseStatement o un posible subclase DatabaseStatement. DatabaseStatement extiende la clase PDOStatement.

Drupal usa sentencias preparadas para todas las consultas. Una sentencia preparada es una plantilla de consulta en la que se insertarán valores para su ejecución. Imagine una sentencia preparada como el equivalente a una función SQL que luego se llama con parámetros para su uso.

En PDO normal, debe preparar explícitamente un objeto sentencia y luego ejecutarlo con valores específicos vinculados a los marcadores de posición en la consulta. Luego, la sentencia puede repetirse como conjunto de resultados. En realidad, sentencia y conjunto de resultados son sinónimos, pero solo después de que la sentencia se ha ejecutado.

Drupal no expone directamente la sentencia preparada. En su lugar, el desarrollador de módulos utilizará un objeto consulta o una cadena SQL directa para ejecutar la consulta, y se devolverá el objeto sentencia para esa consulta. Así, los términos “objeto sentencia” y “objeto conjunto de resultados” son más o menos sinónimos.

Source URL:
Source authors:

Drupal’s online documentation is © 2000-2020 by the individual contributors and can be used in accordance with the Creative Commons License, Attribution-ShareAlike 2.0. PHP code is distributed under the GNU General Public License.