Example #1
0
 */
 // Replace based on the type of table replacement selected.
 if (pb_backupbuddy::_POST('table_selection') == 'all') {
     // All tables.
     pb_backupbuddy::status('message', 'Replacing in all tables based on settings.');
     $tables = array();
     $result = mysql_query('SHOW TABLES', $wpdb->dbh);
     while ($rs = mysql_fetch_row($result)) {
         $tables[] = $rs[0];
     }
     mysql_free_result($result);
     // Free memory.
     $rows_changed = 0;
     foreach ($tables as $table) {
         pb_backupbuddy::status('message', 'Replacing in table `' . $table . '`.');
         $rows_changed += $dbreplace->bruteforce_table($table, array($needle), array($replacement));
     }
     pb_backupbuddy::status('message', 'Total rows updated across all tables: ' . $rows_changed . '.');
     pb_backupbuddy::status('message', 'Replacement finished.');
 } elseif (pb_backupbuddy::_POST('table_selection') == 'single_table') {
     $table = mysql_real_escape_string(pb_backupbuddy::_POST('table'));
     // Single specified table.
     pb_backupbuddy::status('message', 'Replacing in single table `' . $table . '` based on settings.');
     $dbreplace->bruteforce_table($table, array($needle), array($replacement));
     pb_backupbuddy::status('message', 'Replacement finished.');
 } elseif (pb_backupbuddy::_POST('table_selection') == 'prefix') {
     // Matching table prefix.
     $prefix = mysql_real_escape_string(pb_backupbuddy::_POST('table_prefix'));
     pb_backupbuddy::status('message', 'Replacing in all tables matching prefix `' . $prefix . '`.');
     $tables = array();
     $escaped_prefix = str_replace('_', '\\_', $prefix);
Example #2
0
 }
 */
 // Replace based on the type of table replacement selected.
 if (pb_backupbuddy::_POST('table_selection') == 'all') {
     // All tables.
     pb_backupbuddy::status('message', 'Replacing in all tables based on settings.');
     $tables = array();
     $result = mysql_query('SHOW TABLES', $wpdb->dbh);
     while ($rs = mysql_fetch_row($result)) {
         $tables[] = $rs[0];
     }
     mysql_free_result($result);
     // Free memory.
     foreach ($tables as $table) {
         pb_backupbuddy::status('message', 'Replacing in table `' . $table . '`.');
         $dbreplace->bruteforce_table($table, array($needle), array($replacement));
     }
     pb_backupbuddy::status('message', 'Replacement finished.');
 } elseif (pb_backupbuddy::_POST('table_selection') == 'single_table') {
     $table = mysql_real_escape_string(pb_backupbuddy::_POST('table'));
     // Single specified table.
     pb_backupbuddy::status('message', 'Replacing in single table `' . $table . '` based on settings.');
     $dbreplace->bruteforce_table($table, array($needle), array($replacement));
     pb_backupbuddy::status('message', 'Replacement finished.');
 } elseif (pb_backupbuddy::_POST('table_selection') == 'prefix') {
     // Matching table prefix.
     $prefix = mysql_real_escape_string(pb_backupbuddy::_POST('table_prefix'));
     pb_backupbuddy::status('message', 'Replacing in all tables matching prefix `' . $prefix . '`.');
     $tables = array();
     $escaped_prefix = str_replace('_', '\\_', $prefix);
     $result = mysql_query("SHOW TABLES LIKE '{$escaped_prefix}%'", $wpdb->dbh);
Example #3
0
$dbreplace->text($destination_db_prefix . 'links', $old_urls, $new_urls, array('link_url', 'link_image', 'link_target', 'link_description', 'link_notes', 'link_rss'));
pb_backupbuddy::status('message', 'WordPress core database text replaced.');
// Misc serialized data replacements.
pb_backupbuddy::status('message', 'Replacing WordPress core database serialized data...');
$dbreplace->serialized($destination_db_prefix . 'options', $old_fullreplace, $new_fullreplace, array('option_value'));
$dbreplace->serialized($multisite_network_db_prefix . 'usermeta', $old_fullreplace, $new_fullreplace, array('meta_value'));
$dbreplace->serialized($destination_db_prefix . 'postmeta', $old_fullreplace, $new_fullreplace, array('meta_value'));
$dbreplace->serialized($destination_db_prefix . 'commentmeta', $old_fullreplace, $new_fullreplace, array('meta_value'));
pb_backupbuddy::status('message', 'WordPress core database serialized data replaced.');
if (isset(pb_backupbuddy::$options['skip_database_bruteforce']) && true === pb_backupbuddy::$options['skip_database_bruteforce']) {
    // skip bruteforce.
    pb_backupbuddy::status('details', 'Brute force database migration skipped based on advanced settings');
} else {
    // dont skip bruteforce.
    foreach ($bruteforce_tables as $bruteforce_table) {
        $dbreplace->bruteforce_table($bruteforce_table, $old_fullreplace, $new_fullreplace);
    }
}
// Update table prefixes in some WordPress meta data. $multisite_network_db_prefix is set to the normal prefix in non-ms environment.
$old_prefix = pb_backupbuddy::$options['dat_file']['db_prefix'];
$new_prefix = mysql_real_escape_string($destination_db_prefix);
pb_backupbuddy::status('details', 'Old DB prefix: `' . $old_prefix . '`; New DB prefix: `' . $new_prefix . '`. Network prefix: `' . $multisite_network_db_prefix . '`');
if ($old_prefix != $new_prefix) {
    mysql_query("UPDATE `" . $new_prefix . "usermeta` SET meta_key = REPLACE(meta_key, '" . $old_prefix . "', '" . $new_prefix . "' );");
    // usermeta table temporarily is in the new subsite's prefix until next step.
    pb_backupbuddy::status('details', 'Modified ' . mysql_affected_rows() . ' row(s) while updating meta_key\'s for DB prefix in subsite\'s [temporary if multisite] usermeta table from `' . mysql_real_escape_string($old_prefix) . '` to `' . mysql_real_escape_string($new_prefix) . '`.');
    if (mysql_error() != '') {
        pb_backupbuddy::status('error', 'mysql error: ' . mysql_error());
    }
    mysql_query("UPDATE `" . $new_prefix . "options` SET option_name = '" . $new_prefix . "user_roles' WHERE option_name ='" . $old_prefix . "user_roles' LIMIT 1");
    pb_backupbuddy::status('details', 'Modified ' . mysql_affected_rows() . ' row(s) while updating option_name user_roles DB prefix in [subsite if multisite] options table to `' . mysql_real_escape_string($new_prefix) . '`.');
Example #4
0
        } elseif ($_POST['table_selection'] == 'single_table') {
            $bruteforce_tables = array($_POST['table']);
        }
        if ($_POST['trim_whitespace'] == 'true') {
            $needle = trim($_POST['needle']);
            $replacement = trim($_POST['replacement']);
        } else {
            $needle = $_POST['needle'];
            $replacement = $_POST['replacement'];
        }
        $db_replace_file = $this->get_plugin_dir('repairbuddy/lib/dbreplace/dbreplace.php', dirname(dirname(dirname(dirname(__FILE__)))));
        require_once $db_replace_file;
        $dbreplace = new pluginbuddy_dbreplace($pluginbuddy_repairbuddy);
        foreach ($bruteforce_tables as $bruteforce_table) {
            //echo 'force ' . $bruteforce_table . ' replace ' . $needle . ' with ' . $replacement . '<br>';
            $dbreplace->bruteforce_table($bruteforce_table, $_POST['needle'], $_POST['replacement']);
        }
        $pluginbuddy_repairbuddy->output_status('Database replacement complete.', false);
        echo '<script type="text/javascript">jQuery("#pb_repairbuddy_working").hide();</script>';
        echo '<br><div style="text-align: center; margin-top: 30px;"><span class="pb_fancy">Database replacement complete.</span></div>';
    } else {
        ?>
	
	<script type="text/javascript">
		jQuery(document).ready(function() {
			jQuery( '#pb_repairbuddy_table' ).change( function() {
				alert( jQuery( '#pb_repairbuddy_table' ).val() );
				jQuery.post( '<?php 
        echo $pluginbuddy_repairbuddy->page_link('database_string_replace', 'get_table_rows');
        ?>
', { table: jQuery( '#pb_repairbuddy_table' ).val() },