function db_prefix_tables in Drupal 5
Same name and namespace in other branches
- 4 includes/database.inc \db_prefix_tables()
- 6 includes/database.inc \db_prefix_tables()
Append a database prefix to all tables in a query.
Queries sent to Drupal should wrap all table names in curly brackets. This function searches for this syntax and adds Drupal's table prefix to all tables, allowing Drupal to coexist with other systems in the same database if necessary.
Parameters
$sql: A string containing a partial or entire SQL query.
Return value
The properly-prefixed string.
Related topics
10 calls to db_prefix_tables()
- db_next_id in includes/
database.mysqli.inc - Return a new unique ID in the given sequence.
- db_next_id in includes/
database.mysql.inc - Return a new unique ID in the given sequence.
- db_next_id in includes/
database.pgsql.inc - Return a new unique ID in the given sequence.
- db_query in includes/
database.inc - Runs a basic query in the active database.
- db_query_range in includes/
database.mysqli.inc - Runs a limited-range query in the active database.
File
- includes/
database.inc, line 58 - Wrapper for database interface code.
Code
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,
'}' => '',
));
}
}