Независимость от конкретной СУБД в XPDK достигается за счет двух факторов:
1) все современные СУБД поддерживают стандарт языка ANSI SQL-92, а многие – и более новые версии;
2) работа со всеми СУБД в PHP ведется примерно одинаково: вызываются функции подключения, выполнения запроса, получения количества строк в результате и текущего ряда из результата, закрытия соединения, причем имена этих функций имеют вид СУБД_действие.
В XPDK вводится слой абстракции от конкретной СУБД, который представляет собой просто модуль, в котором вида функции вида db_действие вызывают соответствующие функции СУБД_действие, а также выполняют ряд вспомогательных действий, например, фиксацию времени выполнения запроса или вывод его полного текста в случае возникновения ошибки (например, db_query вместо mysql_query или pg_query). Таким образом, вся работа с работа с БД в XPDK-программах должна строиться на db-функциях.
Кроме этого, XPDK предоставляет ряд более выскоуровневых функций для работы с СУБД. В частности, к ним относятся:
db_insert - вставка данных в таблицу из хеша, имена ключей которого совпадают с именами столбцов,
db_update - замена по указанному условию данных в таблице из хеша, имена ключей которого совпадают с именами столбцов,
db_sqlarray - извлечение данных с помощью SELECT в двумерный массив, первое измерение которого - строки, а второе - столбцы, причем столбцы имеют символические имена
db_getrow - извлечение ровно 1 ряда данных по оператору SELECT и помещение его в хеш, ключами которого являются имена столбцов.