Zeile 181 | Zeile 181 |
---|
} }
|
} }
|
$this->db_encoding = $config['encoding'];
| if(isset($config['encoding'])) { $this->db_encoding = $config['encoding']; }
|
// Actually connect to the specified servers foreach(array('read', 'write') as $type)
| // Actually connect to the specified servers foreach(array('read', 'write') as $type)
|
Zeile 189 | Zeile 192 |
---|
if(!isset($connections[$type]) || !is_array($connections[$type])) { break;
|
if(!isset($connections[$type]) || !is_array($connections[$type])) { break;
|
}
| }
|
if(array_key_exists('hostname', $connections[$type])) { $details = $connections[$type];
|
if(array_key_exists('hostname', $connections[$type])) { $details = $connections[$type];
|
unset($connections);
| unset($connections[$type]);
|
$connections[$type][] = $details; }
// Shuffle the connections shuffle($connections[$type]);
|
$connections[$type][] = $details; }
// Shuffle the connections shuffle($connections[$type]);
|
|
|
// Loop-de-loop foreach($connections[$type] as $single_connection) {
| // Loop-de-loop foreach($connections[$type] as $single_connection) {
|
Zeile 208 | Zeile 211 |
---|
if(isset($single_connection['pconnect'])) { $connect_function = "pg_pconnect";
|
if(isset($single_connection['pconnect'])) { $connect_function = "pg_pconnect";
|
}
| }
|
$link = $type."_link";
get_execution_time();
| $link = $type."_link";
get_execution_time();
|
Zeile 219 | Zeile 222 |
---|
if(strpos($single_connection['hostname'], ':') !== false) { list($single_connection['hostname'], $single_connection['port']) = explode(':', $single_connection['hostname']);
|
if(strpos($single_connection['hostname'], ':') !== false) { list($single_connection['hostname'], $single_connection['port']) = explode(':', $single_connection['hostname']);
|
| } else { $single_connection['port'] = null;
|
}
if($single_connection['port'])
| }
if($single_connection['port'])
|
Zeile 288 | Zeile 295 |
---|
{ global $mybb;
|
{ global $mybb;
|
$string = preg_replace("#LIMIT (\s*)([0-9]+),(\s*)([0-9]+)$#im", "LIMIT $4 OFFSET $2", trim($string));
| $string = preg_replace("#LIMIT (\s*)([0-9]+),(\s*)([0-9]+);?$#im", "LIMIT $4 OFFSET $2", trim($string));
|
$this->last_query = $string;
| $this->last_query = $string;
|
Zeile 441 | Zeile 448 |
---|
if($row === false) { $array = $this->fetch_array($query);
|
if($row === false) { $array = $this->fetch_array($query);
|
return $array[$field]; } else { return pg_fetch_result($query, $row, $field);
| if($array !== null && $array !== false) { return $array[$field]; } return null;
|
}
|
}
|
| return pg_fetch_result($query, $row, $field);
|
}
/**
| }
/**
|
Zeile 479 | Zeile 488 |
---|
*/ function insert_id() {
|
*/ function insert_id() {
|
$this->last_query = str_replace(array("\r", "\t"), '', $this->last_query); $this->last_query = str_replace("\n", ' ', $this->last_query); preg_match('#INSERT INTO ([a-zA-Z0-9_\-]+)#i', $this->last_query, $matches);
| preg_match('#INSERT\s+INTO\s+([a-zA-Z0-9_\-]+)#i', $this->last_query, $matches);
|
$table = $matches[1];
| $table = $matches[1];
|
Zeile 816 | Zeile 823 |
---|
$values[$field] = $value; } else
|
$values[$field] = $value; } else
|
{
| {
|
$values[$field] = $this->quote_val($value); } }
| $values[$field] = $this->quote_val($value); } }
|
Zeile 964 | Zeile 971 |
---|
*/ function escape_string_like($string) {
|
*/ function escape_string_like($string) {
|
return $this->escape_string(str_replace(array('%', '_') , array('\\%' , '\\_') , $string));
| return $this->escape_string(str_replace(array('\\', '%', '_') , array('\\\\', '\\%' , '\\_') , $string));
|
}
/**
| }
/**
|
Zeile 1288 | Zeile 1295 |
---|
/** * Renames a table
|
/** * Renames a table
|
*
| *
|
* @param string $old_table The old table name * @param string $new_table the new table name * @param boolean $table_prefix use table prefix
| * @param string $old_table The old table name * @param string $new_table the new table name * @param boolean $table_prefix use table prefix
|
Zeile 1299 | Zeile 1306 |
---|
if($table_prefix == false) { $table_prefix = "";
|
if($table_prefix == false) { $table_prefix = "";
|
}
| }
|
else { $table_prefix = $this->table_prefix; }
return $this->write_query("ALTER TABLE {$table_prefix}{$old_table} RENAME TO {$table_prefix}{$new_table}");
|
else { $table_prefix = $this->table_prefix; }
return $this->write_query("ALTER TABLE {$table_prefix}{$old_table} RENAME TO {$table_prefix}{$new_table}");
|
}
/**
| }
/**
|
* Replace contents of table with values * * @param string $table The table
| * Replace contents of table with values * * @param string $table The table
|
Zeile 1325 | Zeile 1332 |
---|
{ $query = $this->write_query("SELECT column_name FROM information_schema.constraint_column_usage WHERE table_name = '{$this->table_prefix}{$table}' and constraint_name = '{$this->table_prefix}{$table}_pkey' LIMIT 1"); $main_field = $this->fetch_field($query, 'column_name');
|
{ $query = $this->write_query("SELECT column_name FROM information_schema.constraint_column_usage WHERE table_name = '{$this->table_prefix}{$table}' and constraint_name = '{$this->table_prefix}{$table}_pkey' LIMIT 1"); $main_field = $this->fetch_field($query, 'column_name');
|
} else {
| } else {
|
$main_field = $default_field; }
| $main_field = $default_field; }
|
Zeile 1364 | Zeile 1371 |
---|
else { return $this->insert_query($table, $replacements, $insert_id);
|
else { return $this->insert_query($table, $replacements, $insert_id);
|
} }
| } }
|
/** * @param string $table * @param string $append
| /** * @param string $table * @param string $append
|
Zeile 1385 | Zeile 1392 |
---|
}
return $fieldstring;
|
}
return $fieldstring;
|
}
| }
|
/** * Drops a column *
| /** * Drops a column *
|
Zeile 1418 | Zeile 1425 |
---|
* @param string $table The table * @param string $column The column name * @param string $new_definition the new column definition
|
* @param string $table The table * @param string $column The column name * @param string $new_definition the new column definition
|
* @param boolean $new_not_null Whether to drop or set a column * @param boolean $new_default_value The new default value (if one is to be set)
| * @param boolean|string $new_not_null Whether to "drop" or "set" the NOT NULL attribute (no change if false) * @param boolean|string $new_default_value The new default value, or false to drop the attribute
|
* @return bool Returns true if all queries are executed successfully or false if one of them failed */ function modify_column($table, $column, $new_definition, $new_not_null=false, $new_default_value=false)
| * @return bool Returns true if all queries are executed successfully or false if one of them failed */ function modify_column($table, $column, $new_definition, $new_not_null=false, $new_default_value=false)
|
Zeile 1427 | Zeile 1434 |
---|
$result1 = $result2 = $result3 = true;
if($new_definition !== false)
|
$result1 = $result2 = $result3 = true;
if($new_definition !== false)
|
{
| {
|
$result1 = $this->write_query("ALTER TABLE {$this->table_prefix}{$table} ALTER COLUMN {$column} TYPE {$new_definition}");
|
$result1 = $this->write_query("ALTER TABLE {$this->table_prefix}{$table} ALTER COLUMN {$column} TYPE {$new_definition}");
|
}
| }
|
if($new_not_null !== false)
|
if($new_not_null !== false)
|
{
| {
|
$set_drop = "DROP";
if(strtolower($new_not_null) == "set") { $set_drop = "SET";
|
$set_drop = "DROP";
if(strtolower($new_not_null) == "set") { $set_drop = "SET";
|
}
| }
|
$result2 = $this->write_query("ALTER TABLE {$this->table_prefix}{$table} ALTER COLUMN {$column} {$set_drop} NOT NULL"); }
|
$result2 = $this->write_query("ALTER TABLE {$this->table_prefix}{$table} ALTER COLUMN {$column} {$set_drop} NOT NULL"); }
|
if($new_default_value !== false)
| if($new_default_value !== null)
|
{
|
{
|
$result3 = $this->write_query("ALTER TABLE {$this->table_prefix}{$table} ALTER COLUMN {$column} SET DEFAULT {$new_default_value}"); } else { $result3 = $this->write_query("ALTER TABLE {$this->table_prefix}{$table} ALTER COLUMN {$column} DROP DEFAULT");
| if($new_default_value !== false) { $result3 = $this->write_query("ALTER TABLE {$this->table_prefix}{$table} ALTER COLUMN {$column} SET DEFAULT {$new_default_value}"); } else { $result3 = $this->write_query("ALTER TABLE {$this->table_prefix}{$table} ALTER COLUMN {$column} DROP DEFAULT"); }
|
}
return $result1 && $result2 && $result3;
| }
return $result1 && $result2 && $result3;
|
Zeile 1462 | Zeile 1472 |
---|
* @param string $old_column The old column name * @param string $new_column the new column name * @param string $new_definition the new column definition
|
* @param string $old_column The old column name * @param string $new_column the new column name * @param string $new_definition the new column definition
|
* @param boolean $new_not_null Whether to drop or set a column * @param boolean $new_default_value The new default value (if one is to be set)
| * @param boolean|string $new_not_null Whether to "drop" or "set" the NOT NULL attribute (no change if false) * @param boolean|string $new_default_value The new default value, or false to drop the attribute
|
* @return bool Returns true if all queries are executed successfully */ function rename_column($table, $old_column, $new_column, $new_definition, $new_not_null=false, $new_default_value=false)
| * @return bool Returns true if all queries are executed successfully */ function rename_column($table, $old_column, $new_column, $new_definition, $new_not_null=false, $new_default_value=false)
|