/public/patch/patch.php

https://github.com/cj/Project-Pier · PHP · 61 lines · 47 code · 11 blank · 3 comment · 6 complexity · 35268260cb6001efc448af8bbbe2e655 MD5 · raw file

  1. <?php
  2. error_reporting(E_ALL);
  3. require('../../config/config.php');
  4. $link = mysql_connect(DB_HOST, DB_USER, DB_PASS) or die('Could not connect to database server ' . DB_HOST);
  5. mysql_select_db(DB_NAME, $link) or die('Could not select database ' . DB_NAME);
  6. $id = $_GET['id'];
  7. //$cs = 'character set '.config_option('character_set', 'utf8');
  8. //$co = 'collate '.config_option('collation', 'utf8_unicode_ci');
  9. $cs = 'character set utf8';
  10. $co = 'collate utf8_unicode_ci';
  11. $sql = file_get_contents("$id.sql");
  12. $sql = str_replace('<?php echo $table_prefix ?>', DB_PREFIX, $sql);
  13. $sql = str_replace('<?php echo $default_collation ?>', $co, $sql);
  14. $sql = str_replace('<?php echo $default_charset ?>', $cs, $sql);
  15. executeMultipleQueries($sql, &$total_queries, &$executed_queries, $link);
  16. echo 'Summary' . "<br>\n";
  17. echo 'Total queries in SQL: ' . $total_queries . " <br>\n";
  18. echo 'Total executed queries: ' . $executed_queries . " <br>\n";
  19. mysql_close($link);
  20. function executeMultipleQueries($sql, &$total_queries, &$executed_queries, $link) {
  21. if (!trim($sql)) {
  22. $total_queries = 0;
  23. $executed_queries = 0;
  24. return true;
  25. } // if
  26. // Make it work on PHP 5.0.4
  27. $sql = str_replace(array("\r\n", "\r"), array("\n", "\n"), $sql);
  28. $queries = explode(";\n", $sql);
  29. if (!is_array($queries) || !count($queries)) {
  30. $total_queries = 0;
  31. $executed_queries = 0;
  32. return true;
  33. } // if
  34. $total_queries = count($queries);
  35. foreach ($queries as $query) {
  36. if (trim($query)) {
  37. echo $query;
  38. if (mysql_query(trim($query), $link)) {
  39. $executed_queries++;
  40. echo " OK<br>\n";
  41. } else {
  42. echo " FAIL<br>\n";
  43. echo mysql_error(). "<br>\n";
  44. return false;
  45. } // if
  46. } // if
  47. } // if
  48. return true;
  49. } // executeMultipleQueries
  50. ?>