// DB Constructor - connects to the server and selects a database
function wpdb($dbuser, $dbpassword, $dbname, $dbhost) {
+ return $this->__construct($dbuser, $dbpassword, $dbname, $dbhost);
+ }
+
+ function __construct($dbuser, $dbpassword, $dbname, $dbhost) {
+ register_shutdown_function(array(&$this, "__destruct"));
+
$this->dbh = @mysql_connect($dbhost, $dbuser, $dbpassword);
if (!$this->dbh) {
$this->bail("
$this->select($dbname);
}
+ function __destruct() {
+ return true;
+ }
+
// ==================================================================
// Select a DB (if another one needs to be selected)
$EZSQL_ERROR[] =
array ('query' => $this->last_query, 'error_str' => $str);
+ $str = htmlspecialchars($str, ENT_QUOTES);
+ $query = htmlspecialchars($this->last_query, ENT_QUOTES);
// Is error output turned on or not..
if ( $this->show_errors ) {
// If there is an error then take note of it
print "<div id='error'>
<p class='wpdberror'><strong>WordPress database error:</strong> [$str]<br />
- <code>$this->last_query</code></p>
+ <code>$query</code></p>
</div>";
} else {
return false;
// Kill cached query results
function flush() {
- $this->last_result = null;
+ $this->last_result = array();
$this->col_info = null;
$this->last_query = null;
}
// Basic Query - see docs for more detail
function query($query) {
+ // filter the query, if filters are available
+ // NOTE: some queries are made before the plugins have been loaded, and thus cannot be filtered with this method
+ if ( function_exists('apply_filters') )
+ $query = apply_filters('query', $query);
+
// initialise return
$return_val = 0;
$this->flush();