Guest User

Untitled

a guest
Jul 8th, 2018
190
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 3.90 KB | None | 0 0
  1. <?php
  2. $host = "localhost";
  3. $user = "root";
  4. $password = "root";
  5. $db_name = "temp_char";
  6.  
  7. $link = mysql_connect($host, $user, $password) or die("Сервер базы данных не доступен");
  8. $db = mysql_select_db($db_name) or die("База данных не доступна");
  9.  
  10. function CheckCountCharacters($account)
  11. {    
  12.     $r = mysql_query("SELECT COUNT(*) FROM characters WHERE account = ".$account) or die("Ошибка при выполнении запроса: ".mysql_error());
  13.     $row = mysql_fetch_row($r);
  14.     if ($row[0] > 9)
  15.         die("У вас на аккаунте больше 9 персонажей. Для продолжения, вы должны сделать их количество не больше 9.");    
  16. }
  17.  
  18. function dump_sql($dump_dir, $guid, $realm)
  19. {
  20.     $table_name =
  21.     array(
  22.     0 => "characters",
  23.     1 => "character_queststatus",
  24.     2 => "character_reputation",
  25.     3 => "character_spell",
  26.     4 => "character_spell_cooldown",
  27.     5 => "character_action",
  28.     6 => "character_aura",
  29.     7 => "character_homebind",
  30.     8 => "character_skills",
  31.     9 => "character_inventory",
  32.     10 => "item_instance",
  33.     11 => "character_pet",
  34.     12 => "character_gifts",
  35.     13 => "pet_spell",
  36.     14 => "pet_spell_cooldown",
  37.     15 => "pet_aura",
  38.     16 => "mail",
  39.     17 => "mail_items",
  40.     18 => "character_glyphs");
  41.    
  42.     $dump_tables =
  43.     array(
  44.     0 => "SELECT * FROM characters WHERE guid = ",
  45.     1 => "SELECT * FROM character_queststatus WHERE guid = ",
  46.     2 => "SELECT * FROM character_reputation WHERE guid = ",
  47.     3 => "SELECT * FROM character_spell WHERE guid = ",
  48.     4 => "SELECT * FROM character_spell_cooldown WHERE guid = ",
  49.     5 => "SELECT * FROM character_action WHERE guid = ",
  50.     6 => "SELECT * FROM character_aura WHERE guid = ",
  51.     7 => "SELECT * FROM character_homebind WHERE guid = ",
  52.     8 => "SELECT * FROM character_skills WHERE guid = ",
  53.     9 => "SELECT * FROM character_inventory WHERE guid = ",
  54.     10 => "SELECT * FROM item_instance WHERE owner_guid  = ",
  55.     11 => "SELECT * FROM character_pet WHERE owner = ",
  56.     12 => "SELECT * FROM character_gifts WHERE guid = ",    
  57.     13 => "SELECT * FROM pet_spell WHERE guid IN (SELECT id FROM character_pet WHERE owner = ",
  58.     14 => "SELECT * FROM pet_spell_cooldown WHERE guid IN (SELECT id FROM character_pet WHERE owner = ",
  59.     15 => "SELECT * FROM pet_aura WHERE guid IN (SELECT id FROM character_pet WHERE owner = ",
  60.     16 => "SELECT * FROM mail WHERE receiver = ",
  61.     17 => "SELECT * FROM mail_items WHERE receiver = ",
  62.     18 => "SELECT * FROM character_glyphs WHERE guid = ");
  63.    
  64.     $count = 17;
  65.     if ($realm == "1")    // 0 - TBC;    
  66.         $count = 18;     // 1 - WotLK
  67.    
  68.     $full_dump = "";
  69.     for ($i = 0; $i <= $count; $i++)
  70.     {          
  71.         if ($i > 12 && $i < 16)
  72.             $rows = $dump_tables[$i].$guid.");";
  73.         else $rows = $dump_tables[$i].$guid.";";
  74.         $r = mysql_query($rows) or die("Ошибка при выполнении запроса: ".mysql_error());
  75.         while($row = mysql_fetch_row($r))
  76.         {
  77.             $query = "";
  78.             foreach ($row as $field)
  79.             {
  80.                 if (is_null($field))
  81.                     $field = "NULL";
  82.                 else
  83.                     $field = "'".mysql_escape_string($field)."'";
  84.                 if ($query == "")
  85.                     $query = $field;
  86.                 else
  87.                     $query = $query.', '.$field;
  88.             }
  89.             $full_dump = $full_dump."INSERT INTO `".$table_name[$i]."` VALUES (".$query.");\n";            
  90.         }        
  91.     }
  92.    
  93.     $fp = fopen($dump_dir."/"."player_guid-".$guid.".sql", "a");
  94.     if ($fp)
  95.     {
  96.         fwrite ($fp, $full_dump);
  97.         fclose ($fp);
  98.     }
  99.     mysql_close($link);
  100. }
  101.  
  102. CheckCountCharacters("2");
  103. dump_sql('.', "6", "0");    // 0 - TBC 1 - Wotlk
  104. ?>
Add Comment
Please, Sign In to add comment