Advertisement
Guest User

Untitled

a guest
Aug 24th, 2016
57
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.59 KB | None | 0 0
  1. #CLASS {cDBConnector} {kill};
  2. #CLASS {cDBConnector} {open};
  3.  
  4. #NOP /********************************************************************/;
  5. #NOP /* Generic MySQL Database Connector */;
  6. #NOP /* By Balthus - 8th March 2010 */;
  7. #NOP /* */;
  8. #NOP /* db_submit works the same way as #FORMAT */;
  9. #NOP /* */;
  10. #NOP /* db_submit {returnvar} */;
  11. #NOP /* {select * from tablename where fieldname = '%s'} {match text} */;
  12. #NOP /* */;
  13. #NOP /* Parses the output and puts it into an associative array: */;
  14. #NOP /* $returnvar[recordnumber][fieldname] */;
  15. #NOP /* */;
  16. #NOP /* E.G. to get the data from HP field of the first record returned: */;
  17. #NOP /* #VAR {varname} {$returnvar[1][HP]} */;
  18. #NOP /* */;
  19. #NOP /********************************************************************/;
  20.  
  21. #NOP **** Database Connection Info ****;
  22. #VAR {dbSettings[user]} {codex};
  23. #VAR {dbSettings[pass]} {zaq12wsx};
  24. #VAR {dbSettings[database]} {arkadia};
  25. #VAR {dbSettings[server]} {127.0.0.1};
  26.  
  27. #NOP **** Constants ****;
  28. #FORMAT {dbSettings[tab]} {%a} {9};
  29.  
  30. #ALIAS {db_submit}
  31. {
  32. #IF {"%0" != ""}
  33. {
  34. #VAR {db} {};
  35.  
  36. #NOP /* Start constructing #FORMAT command to construct full SQL query string */;
  37. #VAR {dbFormat} {#FORMAT {db[Command]} {%2}};
  38. #VAR {db[Count]} {0};
  39.  
  40. #NOP /* Parse parameters 3->n, remove quotes, and append to #FORMAT command string */;
  41. #FOREACH {%0} {db[Temp]}
  42. {
  43. #MATH {db[Count]} {$db[Count] + 1};
  44. #IF {$db[Count] > 2}
  45. {
  46. #REPLACE {db[Temp]} {"} {'};
  47. #REPLACE {db[Temp]} {'} {''};
  48. #IF {"$db[Temp]" != ""}
  49. {
  50.  
  51. #VAR {dbFormat} {${dbFormat}{${db[Temp]}}};
  52. };
  53. };
  54. };
  55.  
  56. #NOP /* Perform built #FORMAT command to construct full SQL command in db[Command] */;
  57. ${dbFormat};
  58.  
  59. #NOP /* Send constructed SQL command to the database, collecting returned raw output (if any) into db[Return] */;
  60. #SCRIPT {db[return]} {mysql -h${dbSettings[server]} -u${dbSettings[user]} -p${dbSettings[pass]} -D${dbSettings[database]} -Be "${db[Command]}"};
  61.  
  62. #VAR {db[output]} {};
  63. #VAR {db[temp]} {};
  64.  
  65. #NOP /* Loop through returned tab-delimited records (if any) and process */;
  66. #FOREACH {$db[return][]} {i}
  67. {
  68. #VAR {db[fieldindex]} {0};
  69. #MATH {db[recordindex]} {$i - 1};
  70.  
  71. #NOP /* Loop through every character in the current record...split into fields on tab */;
  72. #PARSE {$db[return][$i]} {j}
  73. {
  74. #IF {"$j" == "$dbSettings[tab]"}
  75. {
  76. #MATH {db[fieldindex]} {$db[fieldindex] + 1};
  77.  
  78. #NOP /* If its the first record (header record) set the field names */;
  79. #NOP /* Otherwise populate the field contents */;
  80. #IF {$i == 1}
  81. {
  82. #VAR {db[fields][$db[fieldindex]]} {$db[temp]};
  83. }
  84. {
  85. #VAR {db[output][$db[recordindex]][$db[fields][$db[fieldindex]]]} {$db[temp]};
  86. };
  87. #VAR {db[temp]} {};
  88. }
  89. {
  90. #VAR {db[temp]} {$db[temp]${j}};
  91. };
  92. };
  93.  
  94. #NOP /* Process the data remaining after the last tab on a record */;
  95. #MATH {db[fieldindex]} {$db[fieldindex] + 1};
  96. #IF {$i == 1}
  97. {
  98. #VAR {db[fields][$db[fieldindex]]} {$db[temp]};
  99. }
  100. {
  101. #VAR {db[output][$db[recordindex]][$db[fields][$db[fieldindex]]]} {$db[temp]};
  102. };
  103. #VAR {db[temp]} {};
  104. };
  105. #IF {"%1" != ""}
  106. {
  107. #VAR {%1} {$db[output]};
  108. };
  109. #UNVAR {db};
  110. #UNVAR {dbFormat};
  111. };
  112. };
  113.  
  114. #CLASS {cDBConnector} {close};
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement