Guest User

Untitled

a guest
Aug 16th, 2018
129
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.65 KB | None | 0 0
  1. <?php
  2. /*
  3. dbfix.php
  4. A function used to do a global string replacement in a
  5. specific database table/column.
  6.  
  7. $aReplacements = array("search"=>"home.dri.edu", "replace="=>"oldintranet.dri.edu");
  8. Sample usage: fnDB_Fix($hDB, "hr_menu_entries", $aReplacements);
  9.  
  10. Written: 10/17/2011, Nicholas Kreidberg
  11. Revised: 10/17/2011, Nicholas Kreidberg
  12.  
  13. */
  14.  
  15. // Connect to db
  16. $hDB = pg_connect("host=$db_host port=$db_port dbname=$db_name user=$db_user password=$db_pass")
  17. or die("Failed to connect to database.".pg_last_error());
  18.  
  19. function fnDB_Fix($hDB, $sTable, $sField, $aReplacements)
  20. {
  21. if(pg_connection_status($hDB) != PGSQL_CONNECTION_OK) {
  22. die("Invalid database handle passed to function.\n");
  23. }
  24.  
  25. if(empty($sTable)) {
  26. die("Missing database table parameter in call to function.\n");
  27. }
  28.  
  29. if(empty($aReplacements) || !is_array($aReplacements)) {
  30. die("Missing or invalid replacements parameter in call to function.\n");
  31. }
  32.  
  33. $rRes = pg_query($hDB, "SELECT * FROM $sTable");
  34. $aRes = pg_fetch_all($rRes);
  35.  
  36. foreach($aRes as $aRec)
  37. {
  38. echo "Orig: ".$aRec['url']."\n";
  39. $aRec['url'] = str_replace($aReplacements['search'], $aReplacements['replace'], $aRec['url']);
  40. echo "Fixed: ".$aRec['url']."\n";
  41. $sSQL = sprintf("UPDATE %s SET %s ='%s' WHERE srecn='%s'",
  42. $sTable, $sField, $aRec['url'], $aRec['srecn']);
  43. echo "SQL: ".$sSQL."\n";
  44. pg_query($hDB, $sSQL);
  45. }
  46. }
  47.  
  48. // Search/replace array
  49. $aReplacements = array("search"=>"home.dri.edu", "replace"=>"oldintranet.dri.edu");
  50.  
  51. // Sample function call
  52. fnDB_Fix($hDB, "hr_menu_entries", "url", $aReplacements);
  53.  
  54.  
  55. // Close database connection
  56. pg_close($hDB);
  57. ?>
Add Comment
Please, Sign In to add comment