Support » Plugin: WP DB Driver » Some queries return wrong number of rows

  • Resolved markmont

    (@markmont)


    A patch to fix this issue is available at
    https://github.com/markmont/wp-db-driver/commit/411f128d977801a6cacde97d1314825f9a22193a

    wb-db-driver 1.5, WordPress 3.6, PHP version 5.5.1, PDO driver, MariaDB version 5.5.31.

    Some queries (anything other than create, alter, truncate, drop, insert, delete, update, replace) may return the wrong number of rows. Example:


    global $wpdb;
    $table_name = $wbdp->prefix . 'posts';
    if( ! $wpdb->query( "SHOW TABLES LIKE '{$table_name}';" ) ) {
    error_log( "Oh no, the WordPress posts table, ${table_name}, does not exist!" );
    } else {
    error_log( "All is well." );
    }

    When run, the above code will claim that the posts table does not exist, even though it does exist. This is a real-world test case from a plugin that fails to work with wp-db-driver, the Wysija Newsletters plugin, see lines 495-497 of
    http://plugins.trac.wordpress.org/browser/wysija-newsletters/trunk/helpers/install.php

    (Note that additional changes to Wysija Newletters are needed to get it to work with wp-db-driver)

    The problem is due to last_result being used on line 300 of wp-db-drivers/db.php before it gets set on line 303; the fix is straightforward.

    http://wordpress.org/plugins/wp-db-driver/

Viewing 1 replies (of 1 total)
Viewing 1 replies (of 1 total)
  • The topic ‘Some queries return wrong number of rows’ is closed to new replies.