Advertisement
Guest User

Untitled

a guest
Jul 10th, 2017
114
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 11.96 KB | None | 0 0
  1. <?php
  2.  
  3. if (eregi("sql_layer.php",$PHP_SELF)) {
  4. Header("Location: ../../index.php");
  5. die();
  6. }
  7.  
  8. $dbtype = "MySQL";
  9. $sql_debug=0;
  10. $sql_debug_query=0;
  11. /* $dbtype = "mSQL"; */
  12. /* $dbtype = "PostgreSQL"; */
  13. /* $dbtype = "PostgreSQL_local";// When postmaster start without "-i" option. */
  14. /* $dbtype = "ODBC"; */
  15. /* $dbtype = "ODBC_Adabas"; */
  16. /* $dbtype = "Interbase"; */
  17. /* $dbtype = "Sybase"; */
  18.  
  19. /*
  20. * sql_connect($host, $user, $password, $db)
  21. * returns the connection ID
  22. */
  23.  
  24.  
  25. class ResultSet {
  26. var $result;
  27. var $total_rows;
  28. var $fetched_rows;
  29.  
  30. function set_result( $res ) {
  31. $this->result = $res;
  32. }
  33.  
  34. function get_result() {
  35. return $this->result;
  36. }
  37.  
  38. function set_total_rows( $rows ) {
  39. $this->total_rows = $rows;
  40. }
  41.  
  42. function get_total_rows() {
  43. return $this->total_rows;
  44. }
  45.  
  46. function set_fetched_rows( $rows ) {
  47. $this->fetched_rows = $rows;
  48. }
  49.  
  50. function get_fetched_rows() {
  51. return $this->fetched_rows;
  52. }
  53.  
  54. function increment_fetched_rows() {
  55. $this->fetched_rows = $this->fetched_rows + 1;
  56. }
  57. }
  58.  
  59.  
  60.  
  61. function sql_connect($host, $user, $password, $db)
  62. {
  63. global $dbtype;
  64. switch ($dbtype) {
  65.  
  66. case "MySQL":
  67. $dbi=mysql_connect($host, $user, $password);
  68. mysql_query ("set character_set_client='cp1251'");
  69. mysql_query ("set character_set_results='cp1251'");
  70. mysql_query ("set collation_connection='cp1251_general_ci'");
  71. if (!mysql_select_db($db)) {
  72. #mysql_query("CREATE DATABASE $db");
  73. #mysql_select_db($db);
  74. #include("includes/install.php");
  75. die("Упс что-то наш сервак хандрит!");
  76. }
  77. return $dbi;
  78. break;;
  79.  
  80. case "mSQL":
  81. $dbi=msql_connect($host);
  82.  
  83. if (!msql_select_db($db)) {
  84. msql_query("CREATE DATABASE $db");
  85. msql_select_db($db);
  86. include("includes/install.php");
  87. die();
  88. }
  89. return $dbi;
  90. break;;
  91.  
  92.  
  93. case "PostgreSQL":
  94. $dbi=@pg_connect("host=$host user=$user password=$password port=5432 dbname=$db");
  95. return $dbi;
  96. break;;
  97.  
  98. case "PostgreSQL_local":
  99. $dbi=@pg_connect("user=$user password=$password dbname=$db");
  100. return $dbi;
  101. break;;
  102.  
  103. case "ODBC":
  104. $dbi=@odbc_connect($db,$user,$password);
  105. return $dbi;
  106. break;;
  107.  
  108. case "ODBC_Adabas":
  109. $dbi=@odbc_connect($host.":".$db,$user,$password);
  110. return $dbi;
  111. break;;
  112.  
  113. case "Interbase":
  114. $dbi=@ibase_connect($host.":".$db,$user,$password);
  115. return $dbi;
  116. break;;
  117.  
  118. case "Sybase":
  119. $dbi=@sybase_connect($host, $user, $password);
  120. if (!sybase_select_db($db,$dbi)) {
  121. sybase_query("CREATE DATABASE $db",$dbi);
  122. sybase_select_db($db,$dbi);
  123. include("includes/install.php");
  124. die();
  125. }
  126. return $dbi;
  127. break;;
  128.  
  129. default:
  130. break;;
  131. }
  132.  
  133. }
  134.  
  135. function sql_logout($id)
  136. {
  137. global $dbtype;
  138. switch ($dbtype) {
  139.  
  140. case "MySQL":
  141. $dbi=@mysql_close($id);
  142. return $dbi;
  143. break;;
  144.  
  145. case "mSQL":
  146. $dbi=@msql_close($id);
  147. return $dbi;
  148. break;;
  149.  
  150. case "PostgreSQL":
  151. case "PostgreSQL_local":
  152. $dbi=@pg_close($id);
  153. return $dbi;
  154. break;;
  155.  
  156. case "ODBC":
  157. case "ODBC_Adabas":
  158. $dbi=@odbc_close($id);
  159. return $dbi;
  160. break;;
  161.  
  162. case "Interbase":
  163. $dbi=@ibase_close($id);
  164. return $dbi;
  165. break;;
  166.  
  167. case "Sybase":
  168. $dbi=@sybase_close($id);
  169. return $dbi;
  170. break;;
  171.  
  172. default:
  173. break;;
  174. }
  175. }
  176.  
  177.  
  178. /*
  179. * sql_query($query, $id)
  180. * executes an SQL statement, returns a result identifier
  181. */
  182.  
  183. function sql_query($query, $id)
  184. {
  185.  
  186. global $dbtype;
  187. global $sql_debug,$sql_debug_query;
  188. $sql_debug_query++;
  189. if($sql_debug) echo "SQL query: ".str_replace(",",", ",$query)."<BR>";
  190. switch ($dbtype) {
  191.  
  192. case "MySQL":
  193. $res=@mysql_query($query, $id);
  194. return $res;
  195. break;
  196.  
  197. case "mSQL":
  198. $res=@msql_query($query, $id);
  199. return $res;
  200. break;
  201.  
  202. case "PostgreSQL":
  203. case "PostgreSQL_local":
  204. $res=pg_exec($id,$query);
  205. $result_set = new ResultSet;
  206. $result_set->set_result( $res );
  207. $result_set->set_total_rows( sql_num_rows( $result_set ) );
  208. $result_set->set_fetched_rows( 0 );
  209. return $result_set;
  210. break;;
  211.  
  212. case "ODBC":
  213. case "ODBC_Adabas":
  214. $res=@odbc_exec($id,$query);
  215. return $res;
  216. break;;
  217.  
  218. case "Interbase":
  219. $res=@ibase_query($id,$query);
  220. return $res;
  221. break;;
  222.  
  223. case "Sybase":
  224. $res=@sybase_query($query, $id);
  225. return $res;
  226. break;;
  227.  
  228. default:
  229. break;;
  230.  
  231. }
  232. }
  233.  
  234. /*
  235. * sql_num_rows($res)
  236. * given a result identifier, returns the number of affected rows
  237. */
  238.  
  239. function sql_num_rows($res)
  240. {
  241. global $dbtype;
  242. switch ($dbtype) {
  243.  
  244. case "MySQL":
  245. @$rows=mysql_num_rows($res);
  246. return $rows;
  247. break;;
  248.  
  249. case "mSQL":
  250. $rows=msql_num_rows($res);
  251. return $rows;
  252. break;;
  253.  
  254. case "PostgreSQL":
  255. case "PostgreSQL_local":
  256. $rows=pg_numrows( $res->get_result() );
  257. return $rows;
  258. break;;
  259.  
  260. case "ODBC":
  261. case "ODBC_Adabas":
  262. $rows=odbc_num_rows($res);
  263. return $rows;
  264. break;;
  265.  
  266. case "Interbase":
  267. echo "<BR>Error! PHP dosen't support ibase_numrows!<BR>";
  268. return $rows;
  269. break;;
  270.  
  271. case "Sybase":
  272. $rows=sybase_num_rows($res);
  273. return $rows;
  274. break;;
  275.  
  276. default:
  277. break;;
  278. }
  279. }
  280.  
  281. function sql_fetch_row(&$res, $nr=0)
  282. {
  283. global $dbtype;
  284. switch ($dbtype) {
  285.  
  286. case "MySQL":
  287. $row = mysql_fetch_row($res);
  288. return $row;
  289. break;;
  290.  
  291. case "mSQL":
  292. $row = msql_fetch_row($res);
  293. return $row;
  294. break;;
  295.  
  296. case "PostgreSQL":
  297. case "PostgreSQL_local":
  298. if ( $res->get_total_rows() > $res->get_fetched_rows() ) {
  299. $row = pg_fetch_row($res->get_result(), $res->get_fetched_rows() );
  300. $res->increment_fetched_rows();
  301. return $row;
  302. } else {
  303. return false;
  304. }
  305. break;;
  306.  
  307. case "ODBC":
  308. case "ODBC_Adabas":
  309. $row = array();
  310. $cols = odbc_fetch_into($res, $nr, $row);
  311. return $row;
  312. break;;
  313.  
  314. case "Interbase":
  315. $row = ibase_fetch_row($res);
  316. return $row;
  317. break;;
  318.  
  319. case "Sybase":
  320. $row = sybase_fetch_row($res);
  321. return $row;
  322. break;;
  323.  
  324. default:
  325. break;;
  326. }
  327. }
  328.  
  329.  
  330. function sql_fetch_array(&$res, $nr=0)
  331. {
  332. global $dbtype;
  333. switch ($dbtype)
  334. {
  335. case "MySQL":
  336. $row = array();
  337. $row = @mysql_fetch_array($res);
  338. return $row;
  339. break;;
  340.  
  341. case "mSQL":
  342. $row = array();
  343. $row = @msql_fetch_array($res);
  344. return $row;
  345. break;;
  346.  
  347. case "PostgreSQL":
  348. case "PostgreSQL_local":
  349. if( $res->get_total_rows() > $res->get_fetched_rows() ) {
  350. $row = array();
  351. $row = pg_fetch_array($res->get_result(), $res->get_fetched_rows() );
  352. $res->increment_fetched_rows();
  353. return $row;
  354. } else {
  355. return false;
  356. }
  357. break;;
  358.  
  359.  
  360. case "ODBC":
  361. $row = array();
  362. $result = array();
  363. $result = odbc_fetch_row($res, $nr);
  364. $nf = odbc_num_fields($res); /* Field numbering starts at 1 */
  365. for($count=1; $count < $nf+1; $count++)
  366. {
  367. $field_name = odbc_field_name($res, $count);
  368. $field_value = odbc_result($res, $field_name);
  369. $row[$field_name] = $field_value;
  370. }
  371. return $row;
  372. break;;
  373.  
  374. case "ODBC_Adabas":
  375. $row = array();
  376. $result = array();
  377. $result = odbc_fetch_row($res, $nr);
  378.  
  379. $nf = count($result)+2; /* Field numbering starts at 1 */
  380. for($count=1; $count < $nf; $count++) {
  381. $field_name = odbc_field_name($res, $count);
  382. $field_value = odbc_result($res, $field_name);
  383. $row[$field_name] = $field_value;
  384. }
  385. return $row;
  386. break;;
  387.  
  388. case "Interbase":
  389. $orow=ibase_fetch_object($res);
  390. $row=get_object_vars($orow);
  391. return $row;
  392. break;;
  393.  
  394. case "Sybase":
  395. $row = sybase_fetch_array($res);
  396. return $row;
  397. break;;
  398.  
  399. }
  400. }
  401.  
  402. function sql_fetch_object(&$res, $nr=0)
  403. {
  404. global $dbtype;
  405. switch ($dbtype)
  406. {
  407. case "MySQL":
  408. $row = @mysql_fetch_object($res);
  409. if($row) return $row;
  410. else return false;
  411. break;;
  412.  
  413. case "mSQL":
  414. $row = msql_fetch_object($res);
  415. if($row) return $row;
  416. else return false;
  417. break;;
  418.  
  419. case "PostgreSQL":
  420. case "PostgreSQL_local":
  421. if( $res->get_total_rows() > $res->get_fetched_rows() ) {
  422. $row = pg_fetch_object( $res->get_result(), $res->get_fetched_rows() );
  423. $res->increment_fetched_rows();
  424. if($row) return $row;
  425. else return false;
  426. } else {
  427. return false;
  428. }
  429. break;;
  430.  
  431. case "ODBC":
  432. $result = odbc_fetch_row($res, $nr);
  433. if(!$result) return false;
  434. $nf = odbc_num_fields($res); /* Field numbering starts at 1 */
  435. for($count=1; $count < $nf+1; $count++)
  436. {
  437. $field_name = odbc_field_name($res, $count);
  438. $field_value = odbc_result($res, $field_name);
  439. $row->$field_name = $field_value;
  440. }
  441. return $row;
  442. break;;
  443.  
  444. case "ODBC_Adabas":
  445. $result = odbc_fetch_row($res, $nr);
  446. if(!$result) return false;
  447.  
  448. $nf = count($result)+2; /* Field numbering starts at 1 */
  449. for($count=1; $count < $nf; $count++) {
  450. $field_name = odbc_field_name($res, $count);
  451. $field_value = odbc_result($res, $field_name);
  452. $row->$field_name = $field_value;
  453. }
  454. return $row;
  455. break;;
  456.  
  457. case "Interbase":
  458. $orow = ibase_fetch_object($res);
  459. if($orow)
  460. {
  461. $arow=get_object_vars($orow);
  462. while(list($name,$key)=each($arow))
  463. {
  464. $name=strtolower($name);
  465. $row->$name=$key;
  466. }
  467. return $row;
  468. }else return false;
  469. break;;
  470.  
  471. case "Sybase":
  472. $row = sybase_fetch_object($res);
  473. return $row;
  474. break;;
  475.  
  476. }
  477. }
  478.  
  479. /*** Function Free Result for function free the memory ***/
  480. function sql_free_result($res) {
  481. global $dbtype;
  482. switch ($dbtype) {
  483.  
  484. case "MySQL":
  485. $row = @mysql_free_result($res);
  486. return $row;
  487. break;;
  488.  
  489. case "mSQL":
  490. $row = msql_free_result($res);
  491. return $row;
  492. break;;
  493.  
  494.  
  495. case "PostgreSQL":
  496. case "PostgreSQL_local":
  497. $rows=pg_FreeResult( $res->get_result() );
  498. return $rows;
  499. break;;
  500.  
  501. case "ODBC":
  502. case "ODBC_Adabas":
  503. $rows=odbc_free_result($res);
  504. return $rows;
  505. break;;
  506.  
  507. case "Interbase":
  508. echo "<BR>Error! PHP dosen't support ibase_numrows!<BR>";
  509. return $rows;
  510. break;;
  511.  
  512. case "Sybase":
  513. $rows=sybase_free_result($res);
  514. return $rows;
  515. break;;
  516. }
  517. }
  518.  
  519. function sql_num_fields($res, $nr)
  520. {
  521. global $dbtype;
  522. switch ($dbtype)
  523. {
  524. case "MySQL":
  525. $row = array();
  526. $row = @mysql_num_fields($res);
  527. return $row;
  528. break;;
  529. }
  530. }
  531.  
  532.  
  533. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement