00001 <?php 00009 require_once( 'commandLine.inc' ); 00010 00011 $dbw = wfGetDB( DB_MASTER ); 00012 00013 if ( count( $args ) == 0 ) { 00014 echo "Usage: php deleteRevision.php <revid> [<revid> ...]\n"; 00015 exit(1); 00016 } 00017 00018 echo "Deleting revision(s) " . implode( ',', $args ) . " from ".wfWikiID()."...\n"; 00019 00020 $affected = 0; 00021 foreach ( $args as $revID ) { 00022 $dbw->insertSelect( 'archive', array( 'page', 'revision' ), 00023 array( 00024 'ar_namespace' => 'page_namespace', 00025 'ar_title' => 'page_title', 00026 'ar_comment' => 'rev_comment', 00027 'ar_user' => 'rev_user', 00028 'ar_user_text' => 'rev_user_text', 00029 'ar_timestamp' => 'rev_timestamp', 00030 'ar_minor_edit' => 'rev_minor_edit', 00031 'ar_rev_id' => 'rev_id', 00032 'ar_text_id' => 'rev_text_id', 00033 ), array( 00034 'rev_id' => $revID, 00035 'page_id = rev_page' 00036 ), $fname 00037 ); 00038 if ( !$dbw->affectedRows() ) { 00039 echo "Revision $revID not found\n"; 00040 } else { 00041 $affected += $dbw->affectedRows(); 00042 $dbw->delete( 'revision', array( 'rev_id' => $revID ) ); 00043 } 00044 } 00045 00046 print "Deleted $affected revisions\n"; 00047