db_prefix_tables

Хочешь помочь с переводом? Это очень просто и быстро. Лишь зарегистрируйся, и можешь тут же начать переводить.

includes/database.inc, строка 81

Версии
5 – 6
db_prefix_tables($sql)

Добавляет префиксы (если нужно) ко всем таблицам запроса.

В запросах названия таблиц должны быть обернуты в фигурные скобки (например, 'SELECT * FROM {node}'). Эта функция ищет подобный синтаксис и добавляет префиксы таблиц Друпала ко всем таблицам, позволяя Друпалу сосуществовать с другими системами в одной базе данных, если это необходимо.

Параметры

$sql Строка, содержащая часть или целый SQL-запрос.

Возвращаемое значение

Строка с правильно добавленным префиксом.

Связанные темы

▾ 3 функции вызывают db_prefix_tables()

db_query in includes/database.mysql-common.inc
Выполняет запрос к активной базе данных.
db_query_range in includes/database.mysql.inc
Выполняет ограниченный диапазоном запрос к активной базе данных.
db_query_temporary in includes/database.mysql.inc
Выполняет SELECT-запрос к активной базе данных и сохраняет результат во временной таблице.

Код

<?php
function db_prefix_tables($sql) {
  global $db_prefix;

  if (is_array($db_prefix)) {
    if (array_key_exists('default', $db_prefix)) {
      $tmp = $db_prefix;
      unset($tmp['default']);
      foreach ($tmp as $key => $val) {
        $sql = strtr($sql, array('{'. $key .'}' => $val . $key));
      }
      return strtr($sql, array('{' => $db_prefix['default'], '}' => ''));
    }
    else {
      foreach ($db_prefix as $key => $val) {
        $sql = strtr($sql, array('{'. $key .'}' => $val . $key));
      }
      return strtr($sql, array('{' => '', '}' => ''));
    }
  }
  else {
    return strtr($sql, array('{' => $db_prefix, '}' => ''));
  }
}
?>
Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

Вход в систему