Робота з базою даних в Drupal: Database API і 2 способи написання запитів

Писати запити до бази даних, використовуючи штатні засоби мови PHP, коли ви програмуєте на Drupal, вважається дуже поганою / поганим тоном (принаймні в переважній більшості випадків). Адже у нього є стерпний Database API. Далі я наведу два абстрактних варіанти написання SQL запитів з урахуванням цього факту: в стилі D6 і в стилі D7 – останньою мажорній версії системи на тек. час.

SQL-запит:

SELECT `uid`, `hostname` FROM sessions

Тобто з таблички sessions беремо значення з двох полів – uid і hostname.

D7 (майже, як у шістці):

$first = db_select(‘SELECT uid, hostname FROM {sessions}’);

D7:

$second = db_select(‘sessions’, ‘s’);
$second->fields(‘s’, array(‘uid’, ‘hostname’));
$second = $second->execute();
// або (але не завжди так можна писати):
$three = db_select(‘sessions’, ‘s’)
->fields(‘s’, array(‘uid’, ‘hostname’))
->execute();

Як бачимо перший варіант більш прозорим для розуміння, оскільки візуально мало чим відрізняється від сирого запиту, але з т. з. “правильного” коду, його використовувати не рекомендується.

P. S. Щоб опис не розтягнулося на кілька десятків рядків , я привів сніппети для найпростішого query. Читайте api.drupal.org.

Залишити відповідь