From e0f6734b01daac73c405914716a9f7bea1e9fe35 Mon Sep 17 00:00:00 2001 From: hawk__ Date: Fri, 26 Aug 2011 23:12:33 +0000 Subject: [PATCH] Changed the way $wpdb is used to avoid some cases were it would be used undefined git-svn-id: https://plugins.svn.wordpress.org/postgresql-for-wordpress/trunk@429271 b8457f37-d9ea-0310-8a92-e5e31aec5664 --- pg4wp/driver_pgsql.php | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/pg4wp/driver_pgsql.php b/pg4wp/driver_pgsql.php index 0e594c9..f5dd99a 100644 --- a/pg4wp/driver_pgsql.php +++ b/pg4wp/driver_pgsql.php @@ -122,6 +122,7 @@ return true; } global $wpdb; + $logto = 'queries'; // This is used to catch the number of rows returned by the last "SELECT" REQUEST $catchnumrows = false; @@ -197,6 +198,10 @@ // HB : timestamp fix for permalinks $sql = str_replace( 'post_date_gmt > 1970', 'post_date_gmt > to_timestamp (\'1970\')', $sql); + // Akismet sometimes doesn't write 'comment_ID' with 'ID' in capitals where needed ... + if( false !== strpos( $sql, $wpdb->comments)) + $sql = str_replace(' comment_id ', ' comment_ID ', $sql); + } // SELECT elseif( 0 === strpos($sql, 'UPDATE')) { @@ -226,7 +231,7 @@ $sql = str_replace('(1,',"('1',", $sql); // Fix inserts into wp_categories - if( false !== strpos($sql, 'INSERT INTO '.$wpdb->prefix.'categories')) + if( false !== strpos($sql, 'INSERT INTO '.$wpdb->categories)) { $sql = str_replace('"cat_ID",', '', $sql); $sql = str_replace("VALUES ('0',", "VALUES(", $sql); @@ -236,7 +241,7 @@ $sql = str_replace( "'0000-00-00 00:00:00'", 'now() AT TIME ZONE \'gmt\'', $sql); // Multiple values group when calling INSERT INTO don't always work - if( false !== strpos( $sql, $wpdb->prefix.'options') && false !== strpos( $sql, '), (')) + if( false !== strpos( $sql, $wpdb->options) && false !== strpos( $sql, '), (')) { $pattern = '/INSERT INTO.+VALUES/'; preg_match($pattern, $sql, $matches); @@ -275,10 +280,14 @@ // This handles removal of duplicate entries in table options if( false !== strpos( $sql, 'DELETE o1 FROM ')) - $sql = "DELETE FROM ${table_prefix}options WHERE option_id IN " . - "(SELECT o1.option_id FROM ${table_prefix}options AS o1, ${table_prefix}options AS o2 " . + $sql = "DELETE FROM $wpdb->options WHERE option_id IN " . + "(SELECT o1.option_id FROM $wpdb->options AS o1, $wpdb->options AS o2 " . "WHERE o1.option_name = o2.option_name " . "AND o1.option_id < o2.option_id)"; + + // Akismet sometimes doesn't write 'comment_ID' with 'ID' in capitals where needed ... + if( false !== strpos( $sql, $wpdb->comments)) + $sql = str_replace(' comment_id ', ' comment_ID ', $sql); } // Fix tables listing elseif( 0 === strpos($sql, 'SHOW TABLES')) @@ -318,10 +327,6 @@ // Remove illegal characters $sql = str_replace('`', '', $sql); - // Akismet sometimes doesn't write 'comment_ID' with 'ID' in capitals where needed ... - if( false !== strpos( $sql, $wpdb->prefix.'comments')) - $sql = str_replace(' comment_id ', ' comment_ID ', $sql); - // Field names with CAPITALS need special handling if( false !== strpos($sql, 'ID')) { @@ -375,7 +380,7 @@ } $GLOBALS['pg4wp_result'] = pg_query($sql); if( (PG4WP_DEBUG || PG4WP_LOG_ERRORS) && $GLOBALS['pg4wp_result'] === false && $err = pg_last_error()) - if( false === strpos($err, 'relation "'.$wpdb->prefix.'options"')) + if( false === strpos($err, 'relation "'.$wpdb->options.'"')) error_log("Error running :\n$initial\n---- converted to ----\n$sql\n----\n$err\n---------------------\n", 3, PG4WP_LOG.'pg4wp_errors.log'); if( $catchnumrows && $GLOBALS['pg4wp_result'] !== false)