/oscommerce2-mypgsql/catalog/includes/functions/database.php

https://github.com/shooray/oscommerce2-mypgsql · PHP · 199 lines · 162 code · 25 blank · 12 comment · 70 complexity · 5390b006c0a1febbee68cb7136a0b023 MD5 · raw file

  1. <?php
  2. /*
  3. $Id$
  4. osCommerce, Open Source E-Commerce Solutions
  5. http://www.oscommerce.com
  6. Copyright (c) 2007 osCommerce
  7. Released under the GNU General Public License
  8. */
  9. function tep_db_connect($server = DB_SERVER, $username = DB_SERVER_USERNAME, $password = DB_SERVER_PASSWORD, $database = DB_DATABASE, $dbType = DB_TYPE, $dbPort = DB_PORT, $link = 'db_link') {
  10. global $$link;
  11. if (USE_PCONNECT == 'true') {
  12. if($dbType == 'mysql') {
  13. $$link = mysql_pconnect($server.":".$dbPort, $username, $password);
  14. if ($$link) mysql_select_db($database);
  15. } else if ($dbType == 'pgsql') {
  16. $$link = pg_pconnect("host=".$server." port=".$dbPort." dbname=".$database." user=".$username." password=".$password);
  17. }
  18. } else {
  19. if($dbType == 'mysql') {
  20. $$link = mysql_connect($server.":".$dbPort, $username, $password);
  21. if ($$link) mysql_select_db($database);
  22. } else if ($dbType == 'pgsql') {
  23. $$link = pg_connect("host=".$server." port=".$dbPort." dbname=".$database." user=".$username." password=".$password);
  24. }
  25. }
  26. return $$link;
  27. }
  28. function tep_db_close($link = 'db_link') {
  29. global $$link;
  30. if(DB_TYPE == 'mysql') {
  31. return mysql_close($$link);
  32. } else if(DB_TYPE == 'pgsql') {
  33. return pg_close($$link);
  34. }
  35. }
  36. function tep_db_error($query, $errno, $error) {
  37. die('<font color="#000000"><strong>' . $errno . ' - ' . $error . '<br /><br />' . $query . '<br /><br /><small><font color="#ff0000">[TEP STOP]</font></small><br /><br /></strong></font>');
  38. }
  39. function tep_db_query($query, $link = 'db_link') {
  40. global $$link;
  41. if (defined('STORE_DB_TRANSACTIONS') && (STORE_DB_TRANSACTIONS == 'true')) {
  42. error_log('QUERY ' . $query . "\n", 3, STORE_PAGE_PARSE_TIME_LOG);
  43. }
  44. //echo "<pre>".$query."</pre>";
  45. if(DB_TYPE == 'mysql') {
  46. $result = mysql_query($query, $$link) or tep_db_error($query, mysql_errno(), mysql_error());
  47. } else if(DB_TYPE == 'pgsql') {
  48. $result = pg_query($$link, $query) or tep_db_error($query, 'error no', pg_last_error());
  49. }
  50. if (defined('STORE_DB_TRANSACTIONS') && (STORE_DB_TRANSACTIONS == 'true')) {
  51. $result_error = mysql_error();
  52. error_log('RESULT ' . $result . ' ' . $result_error . "\n", 3, STORE_PAGE_PARSE_TIME_LOG);
  53. }
  54. return $result;
  55. }
  56. function tep_db_perform($table, $data, $action = 'insert', $parameters = '', $link = 'db_link') {
  57. reset($data);
  58. if ($action == 'insert') {
  59. $query = 'insert into ' . $table . ' (';
  60. while (list($columns, ) = each($data)) {
  61. $query .= $columns . ', ';
  62. }
  63. $query = substr($query, 0, -2) . ') values (';
  64. reset($data);
  65. while (list(, $value) = each($data)) {
  66. switch ((string)$value) {
  67. case 'now()':
  68. $query .= 'now(), ';
  69. break;
  70. case 'null':
  71. $query .= 'null, ';
  72. break;
  73. default:
  74. $query .= '\'' . tep_db_input($value) . '\', ';
  75. break;
  76. }
  77. }
  78. $query = substr($query, 0, -2) . ')';
  79. } elseif ($action == 'update') {
  80. $query = 'update ' . $table . ' set ';
  81. while (list($columns, $value) = each($data)) {
  82. switch ((string)$value) {
  83. case 'now()':
  84. $query .= $columns . ' = now(), ';
  85. break;
  86. case 'null':
  87. $query .= $columns .= ' = null, ';
  88. break;
  89. default:
  90. $query .= $columns . ' = \'' . tep_db_input($value) . '\', ';
  91. break;
  92. }
  93. }
  94. $query = substr($query, 0, -2) . ' where ' . $parameters;
  95. }
  96. return tep_db_query($query, $link);
  97. }
  98. function tep_db_fetch_array($db_query) {
  99. if(DB_TYPE == 'mysql') {
  100. return mysql_fetch_array($db_query, MYSQL_ASSOC);
  101. } else if(DB_TYPE == 'pgsql') {
  102. return pg_fetch_array($db_query, NULL, PGSQL_ASSOC);
  103. }
  104. }
  105. function tep_db_num_rows($db_query) {
  106. if(DB_TYPE == "mysql") {
  107. return mysql_num_rows($db_query);
  108. } else if(DB_TYPE == "pgsql") {
  109. return pg_num_rows($db_query);
  110. }
  111. }
  112. function tep_db_data_seek($db_query, $row_number) {
  113. if(DB_TYPE == 'mysql') {
  114. return mysql_data_seek($db_query, $row_number);
  115. } else if(DB_TYPE == 'pgsql') {
  116. return pg_result_seek($db_query, $row_number);
  117. }
  118. }
  119. function tep_db_insert_id($link = 'db_link') {
  120. global $$link;
  121. if (DB_TYPE == 'mysql') {
  122. return mysql_insert_id($$link);
  123. } elseif (DB_TYPE == 'pgsql') {
  124. $insert_id_query = pg_query("select lastval();");
  125. $insert_id_row = pg_fetch_row($insert_id_query);
  126. return $insert_id_row[0];
  127. }
  128. }
  129. function tep_db_free_result($db_query) {
  130. if (DB_TYPE == 'mysql') {
  131. return mysql_free_result($db_query);
  132. } elseif (DB_TYPE == 'pgsql') {
  133. return pg_free_result($db_query);
  134. }
  135. }
  136. //no use
  137. function tep_db_fetch_fields($db_query) {
  138. return mysql_fetch_field($db_query);
  139. }
  140. function tep_db_output($string) {
  141. return htmlspecialchars($string);
  142. }
  143. function tep_db_input($string, $link = 'db_link') {
  144. global $$link;
  145. if(DB_TYPE == 'mysql') {
  146. if (function_exists('mysql_real_escape_string')) {
  147. return mysql_real_escape_string($string, $$link);
  148. } elseif (function_exists('mysql_escape_string')) {
  149. return mysql_escape_string($string);
  150. }
  151. } else if(DB_TYPE == 'pgsql') {
  152. if(function_exists('pg_escape_string ')) {
  153. return pg_escape_string($string);
  154. }
  155. }
  156. return addslashes($string);
  157. }
  158. function tep_db_prepare_input($string) {
  159. if (is_string($string)) {
  160. return trim(tep_sanitize_string(stripslashes($string)));
  161. } elseif (is_array($string)) {
  162. reset($string);
  163. while (list($key, $value) = each($string)) {
  164. $string[$key] = tep_db_prepare_input($value);
  165. }
  166. return $string;
  167. } else {
  168. return $string;
  169. }
  170. }
  171. ?>