首页 > 语言 > PHP > 正文

php数据库操作类,可用mysql,mssql,pg

2024-09-04 11:44:14
字体:大 中 小
来源:转载
供稿:网友

文章分享的这篇文章是因为这篇文章数据库操作类可用mysql,mssql,pg三种数据库,你只要作任何修改就可以方便的改变你数据库的类型.

函数清单,索引:

Open:打开数据库连接 Line:71

Close:关闭数据库连接 Line:107

SelectDB:选择数据库 Line:129

Query:创建查询 Line:151

DataSeek:移动记录指针 Line:175

FieldName:获取字段名称 Line:198

FieldType:获取字段类型 Line:220

FieldLenght:获取字段长度 Line:242

FetchRow:获取数据并保存到数组(数字索引) Line:264

FetchArray:获取数据并保存进数组(数字和关联) Line:289

FetchObject:获取数据并保存到对象(对象方式) Line:315

Result:获取结果数据 Line:341

FreeResult:刷新记录集 Line:363

RowsNumber:获取记录数量 Line:385

FieldsNumber:获取字段数量 Line:407

CurRecNumber:获取当前记录号(从0开始) Line:429

RecordNumber:获取当前行号(从1开始) Line:438

MoveFirstRec:移动到第一条记录 Line:447

MoveLastRec:移动到最后一条记录 Line:469

MovePreviousRec:移动到前一条记录 Line:495

MoveNextRec:移动到下一条记录 Line:521

MoveToRec:移动到一个特定的记录(从1开始) Line:548

php数据库操作类代码如下:

  1. <?PHP 
  2.  
  3. /********************************************************************************** 
  4.  
  5. 此类将数据库操作封装,具有良好的可移植性,针对数据库:mysql,mssql,pg 
  6.  
  7. *原作者:Andrzej Manczyk 整理:玉面修罗 E-mail/msn:xiuluo-999@163.com 时间:2006-12-20* 
  8.  
  9. ************************************************************************************ 
  10.  
  11. // -函数清单 索引: 
  12.  
  13. // - Open: 打开数据库连接 Line:71 
  14.  
  15. // - Close: 关闭数据库连接 Line:107 
  16.  
  17. // - SelectDB: 选择数据库 Line:129 
  18.  
  19. // - Query: 创建查询 Line:151 
  20.  
  21. // - DataSeek: 移动记录指针 Line:175 
  22.  
  23. // - FieldName: 获取字段名称 Line:198 
  24.  
  25. // - FieldType: 获取字段类型 Line:220 
  26.  
  27. // - FieldLenght: 获取字段长度 Line:242 
  28.  
  29. // - FetchRow: 获取数据并保存到数组(数字索引) Line:264 
  30.  
  31. // - FetchArray: 获取数据并保存进数组(数字和关联) Line:289 
  32.  
  33. // - FetchObject: 获取数据并保存到对象(对象方式) Line:315 
  34.  
  35. // - Result: 获取结果数据 Line:341 
  36.  
  37. // - FreeResult: 刷新记录集 Line:363 
  38.  
  39. // - RowsNumber: 获取记录数量 Line:385 
  40.  
  41. // - FieldsNumber: 获取字段数量 Line:407 
  42.  
  43. // - CurRecNumber: 获取当前记录号(从0开始) Line:429 
  44.  
  45. // - RecordNumber: 获取当前行号(从1开始) Line:438 
  46.  
  47. // - MoveFirstRec: 移动到第一条记录 Line:447 
  48.  
  49. // - MoveLastRec: 移动到最后一条记录 Line:469 
  50.  
  51. // - MovePreviousRec: 移动到前一条记录 Line:495 
  52.  
  53. // - MoveNextRec: 移动到下一条记录 Line:521 
  54.  
  55. // - MoveToRec: 移动到一个特定的记录(从1开始) Line:548 
  56.  
  57. ************************************************************************************ 
  58.  
  59. //Inputs: 
  60.  
  61. // - dbType: databases type: mssql, mysql, pg 
  62.  
  63. // - connectType: connection type: c - common connection, 
  64.  
  65. // p - open persistent connection 
  66.  
  67. // - connect: for MS SQL Server - server name, 
  68.  
  69. // for MySQL - hostname [:port] [:/path/to/socket] , 
  70.  
  71. // for PostgreSQL - host, port, tty, options, 
  72.  
  73. // dbname (without username and password) 
  74.  
  75. // - username 
  76.  
  77. // - password 
  78.  
  79. // - dbName: database name 
  80.  
  81. // - query: SQL query 
  82.  
  83. // - result: result set identifier 
  84.  
  85. // - RowNumber: 
  86.  
  87. // - offset: field identifier 
  88.  
  89. // - ResultType: a constant and can take the following values: PGSQL_ASSOC, PGSQL_NUM, and PGSQL_BOTH 
  90.  
  91. // - FieldName 
  92.  
  93. // 
  94.  
  95. //Returns: 
  96.  
  97. // - result: result set identifier 
  98.  
  99. // - connect link identifier 
  100.  
  101. // - record number (starting at 0: CurrRecNumber or starting at 1: RecordNumber) 
  102.  
  103. // - number of fields in the specified result set 
  104.  
  105. // - number of rows in the specified result set 
  106.  
  107. *************************************************************************************/ 
  108.  
  109. Class mDatabase 
  110.  
  111. { 
  112.  
  113. /***********************************成员变量定义***************************************/ 
  114.  
  115. var $dbType; // 数据库类型: mssql, mysql, pg 
  116.  
  117. var $connectType; // 连接类型: c - common connection, p - open persistent connection 
  118.  
  119. var $idCon; // 连接号 
  120.  
  121. var $curRow; // current row number of data from the result 
  122.  
  123. // associated with the specified result identifier array 
  124.  
  125. var $seek; // current row number of data from DataSeek function array 
  126.  
  127.  
  128.  
  129. /***********************************成员方法实现***************************************/ 
  130.  
  131. /************************************************************************************ 
  132.  
  133. *连接数据库的函数 
  134.  
  135. *************************************************************************************/ 
  136.  
  137. Function Open($dbType, $c, $connect, $username = "", $password = "") 
  138.  
  139. { 
  140.  
  141. $this->dbType = $dbType; 
  142.  
  143. Switch ($dbType) { 
  144.  
  145. Case "mssql": 
  146.  
  147. If ($connectType == "c") { 
  148.  
  149. $idCon = mssql_connect($connect, $username, $password); 
  150.  
  151. } Else { 
  152.  
  153. $idCon = mssql_pconnect($connect, $username, $password); 
  154.  
  155. } 
  156.  
  157. Break; 
  158.  
  159. Case "mysql": 
  160.  
  161. If ($connectType == "c") { 
  162.  
  163. $idCon = mysql_connect($connect, $username, $password); 
  164.  
  165. } Else { 
  166.  
  167. $idCon = mysql_pconnect($connect, $username, $password); 
  168.  
  169. } 
  170.  
  171. Break; 
  172.  
  173. Case "pg": 
  174.  
  175. If ($connectType == "c") { 
  176.  
  177. $idCon = pg_connect($connect . " user=" . $username . " password=" . $password); 
  178.  
  179. } Else { 
  180.  
  181. $idCon = pg_pconnect($connect . " user=" . $username . " password=" . $password); 
  182.  
  183. } 
  184.  
  185. Break; 
  186.  
  187. Default: 
  188.  
  189. $idCon = 0; 
  190.  
  191. Break; 
  192.  
  193. } 
  194.  
  195. $this->idCon = $idCon; 
  196.  
  197. Return $idCon; 
  198.  
  199. } 
  200.  
  201. /************************************************************************************ 
  202.  
  203. *关闭数据库连接 
  204.  
  205. *************************************************************************************/ 
  206.  
  207. Function Close() 
  208.  
  209. { 
  210.  
  211. Switch ($this->dbType) { 
  212.  
  213. Case "mssql": 
  214.  
  215. $r = mssql_close($this->idCon); 
  216.  
  217. Break; 
  218.  
  219. Case "mysql": 
  220.  
  221. $r = mysql_close($this->idCon); 
  222.  
  223. Break; 
  224.  
  225. Case "pg": 
  226.  
  227. $r = pg_close($this->idCon); 
  228.  
  229. Break; 
  230.  
  231. Default: 
  232.  
  233. $r = False; 
  234.  
  235. Break; 
  236.  
  237. } 
  238.  
  239. Return $r; 
  240.  
  241. } 
  242.  
  243. /************************************************************************************ 
  244.  
  245. *选择数据库 
  246.  
  247. *************************************************************************************/ 
  248.  
  249. Function SelectDb($dbName) 
  250.  
  251. { 
  252.  
  253. Switch ($this->dbType) { 
  254.  
  255. Case "mssql": 
  256.  
  257. $r = mssql_select_db($dbName); 
  258.  
  259. Break; 
  260.  
  261. Case "mysql": 
  262.  
  263. $r = mysql_select_db($dbName); 
  264.  
  265. Break; 
  266.  
  267. Case "pg": 
  268.  
  269. $r = False; 
  270.  
  271. Break; 
  272.  
  273. Default: 
  274.  
  275. $r = False; 
  276.  
  277. Break; 
  278.  
  279. } 
  280.  
  281. Return $r; 
  282.  
  283. } 
  284.  
  285. /************************************************************************************ 
  286.  
  287. *创建查询 
  288.  
  289. *************************************************************************************/ 
  290.  
  291. Function Query($query) 
  292.  
  293. { 
  294.  
  295. Switch ($this->dbType) { 
  296.  
  297. Case "mssql": 
  298.  
  299. $r = mssql_query($query, $this->idCon); 
  300.  
  301. Break; 
  302.  
  303. Case "mysql": 
  304.  
  305. $r = mysql_query($query, $this->idCon); 
  306.  
  307. Break; 
  308.  
  309. Case "pg": 
  310.  
  311. $r = pg_exec($this->idCon, $query); 
  312.  
  313. Break; 
  314.  
  315. Default: 
  316.  
  317. $r = False; 
  318.  
  319. Break; 
  320.  
  321. } 
  322.  
  323. $this->curRow[$r] = 0; 
  324.  
  325. $this->seek[$r] = 0; 
  326.  
  327. Return $r; 
  328.  
  329. } 
  330.  
  331. /************************************************************************************ 
  332.  
  333. *移动记录指针 
  334.  
  335. *************************************************************************************/ 
  336.  
  337. Function DataSeek($result, $RowNumber) 
  338.  
  339. { 
  340.  
  341. Switch ($this->dbType) { 
  342.  
  343. Case "mssql": 
  344.  
  345. $r = mssql_data_seek($result, $RowNumber); 
  346.  
  347. Break; 
  348.  
  349. Case "mysql": 
  350.  
  351. $r = mysql_data_seek($result, $RowNumber); 
  352.  
  353. Break; 
  354.  
  355. Case "pg": 
  356.  
  357. $r = False; 
  358.  
  359. Break; 
  360.  
  361. Default: 
  362.  
  363. $r = False; 
  364.  
  365. Break; 
  366.  
  367. } 
  368.  
  369. $this->seek[$result] = (int) $RowNumber; 
  370.  
  371. Return $r; 
  372.  
  373. } 
  374.  
  375. /************************************************************************************ 
  376.  
  377. *获取字段名 
  378.  
  379. *************************************************************************************/ 
  380.  
  381. Function FieldName($result, $offset) 
  382.  
  383. { 
  384.  
  385. Switch ($this->dbType) { 
  386.  
  387. Case "mssql": 
  388.  
  389. $r = mssql_field_name($result, $offset); 
  390.  
  391. Break; 
  392.  
  393. Case "mysql": 
  394.  
  395. $r = mysql_field_name($result, $offset); 
  396.  
  397. Break; 
  398.  
  399. Case "pg": 
  400.  
  401. $r = pg_fieldname($result, $offset); 
  402.  
  403. Break; 
  404.  
  405. Default: 
  406.  
  407. $r = False; 
  408.  
  409. Break; 
  410.  
  411. } 
  412.  
  413. Return $r; 
  414.  
  415. } 
  416.  
  417. /************************************************************************************ 
  418.  
  419. *获取字段类型 
  420.  
  421. *************************************************************************************/ 
  422.  
  423. Function FieldType($result, $offset) 
  424.  
  425. { 
  426.  
  427. Switch ($this->dbType) { 
  428.  
  429. Case "mssql": 
  430.  
  431. $r = mssql_field_type($result, $offset); 
  432.  
  433. Break; 
  434.  
  435. Case "mysql": 
  436.  
  437. $r = mysql_field_type($result, $offset); 
  438.  
  439. Break; 
  440.  
  441. Case "pg": 
  442.  
  443. $r = pg_fieldtype($result, $offset); 
  444.  
  445. Break; 
  446.  
  447. Default: 
  448.  
  449. $r = False; 
  450.  
  451. Break; 
  452.  
  453. } 
  454.  
  455. Return $r; 
  456.  
  457. } 
  458.  
  459. /************************************************************************************ 
  460.  
  461. *获取字段长度 
  462.  
  463. *************************************************************************************/ 
  464.  
  465. Function FieldLength($result, $offset) 
  466.  
  467. { 
  468.  
  469. Switch ($this->dbType) { 
  470.  
  471. Case "mssql": 
  472.  
  473. $r = mssql_field_length($result, $offset); 
  474.  
  475. Break; 
  476.  
  477. Case "mysql": 
  478.  
  479. $r = mysql_field_len($result, $offset); 
  480.  
  481. Break; 
  482.  
  483. Case "pg": 
  484.  
  485. $r = pg_fieldsize($result, $offset); 
  486.  
  487. Break; 
  488.  
  489. Default: 
  490.  
  491. $r = False; 
  492.  
  493. Break; 
  494.  
  495. } 
  496.  
  497. Return $r; 
  498.  
  499. } 
  500.  
  501. /************************************************************************************ 
  502.  
  503. *获取数据并保存到数组,可以用数字索引方式访问数组 
  504.  
  505. *************************************************************************************/ 
  506.  
  507. Function FetchRow($result, $RowNumber = 0) 
  508.  
  509. { 
  510.  
  511. Switch ($this->dbType) { 
  512.  
  513. Case "mssql": 
  514.  
  515. $r = mssql_fetch_row($result); 
  516.  
  517. Break; 
  518.  
  519. Case "mysql": 
  520.  
  521. $r = mysql_fetch_row($result); 
  522.  
  523. Break; 
  524.  
  525. Case "pg": 
  526.  
  527. $r = pg_fetch_row($result, $RowNumber); 
  528.  
  529. If ($r) { 
  530.  
  531. $this->curRow[$result] = $RowNumber; 
  532.  
  533. $this->seek[$result] = $RowNumber; 
  534.  
  535. } 
  536.  
  537. Break; 
  538.  
  539. Default: 
  540.  
  541. $r = False; 
  542.  
  543. Break; 
  544.  
  545. } 
  546.  
  547. Return $r; 
  548.  
  549. } 
  550.  
  551.  
  552.  
  553. /************************************************************************************ 
  554.  
  555. *获取数据并保存到数组,可以用数字索引和关联索引的方式访问 
  556.  
  557. *************************************************************************************/ 
  558.  
  559. Function FetchArray($result, $RowNumber = 0, $ResultType = 2) 
  560.  
  561. { 
  562.  
  563. Switch ($this->dbType) { 
  564.  
  565. Case "mssql": 
  566.  
  567. $r = mssql_fetch_array($result); 
  568.  
  569. Break; 
  570.  
  571. Case "mysql": 
  572.  
  573. $r = mysql_fetch_array($result); 
  574.  
  575. Break; 
  576.  
  577. Case "pg": 
  578.  
  579. $r = pg_fetch_array($result, $RowNumber, $ResultType); 
  580.  
  581. If ($r) { 
  582.  
  583. $this->curRow[$result] = $RowNumber; 
  584.  
  585. $this->seek[$result] = $RowNumber; 
  586.  
  587. } 
  588.  
  589. Break; 
  590.  
  591. Default: 
  592.  
  593. $r = False; 
  594.  
  595. Break; 
  596.  
  597. } 
  598.  
  599. Return $r; 
  600.  
  601. } 
  602.  
  603. /************************************************************************************ 
  604.  
  605. *获取数据并保存到对象 
  606.  
  607. *************************************************************************************/ 
  608.  
  609. Function FetchObject($result, $RowNumber = 0, $ResultType = 2) 
  610.  
  611. { 
  612.  
  613. Switch ($this->dbType) { 
  614.  
  615. Case "mssql": 
  616.  
  617. $r = mssql_fetch_object($result); 
  618.  
  619. Break; 
  620.  
  621. Case "mysql": 
  622.  
  623. $r = mysql_fetch_object($result); 
  624.  
  625. Break; 
  626.  
  627. Case "pg": 
  628.  
  629. $r = pg_fetch_object($result, $RowNumber, $ResultType); 
  630.  
  631. If ($r) { 
  632.  
  633. $this->curRow[$result] = $RowNumber; 
  634.  
  635. $this->seek[$result] = $RowNumber; 
  636.  
  637. } 
  638.  
  639. Break; 
  640.  
  641. Default: 
  642.  
  643. $r = False; 
  644.  
  645. Break; 
  646.  
  647. } 
  648.  
  649. Return $r; 
  650.  
  651. } 
  652.  
  653. /************************************************************************************ 
  654.  
  655. *获取结果数据 
  656.  
  657. *************************************************************************************/ 
  658.  
  659. Function Result($result, $RowNumber, $FieldName) 
  660.  
  661. { 
  662.  
  663. Switch ($this->dbType) { 
  664.  
  665. Case "mssql": 
  666.  
  667. $r = mssql_result($result, $RowNumber, $FieldName); 
  668.  
  669. Break; 
  670.  
  671. Case "mysql": 
  672.  
  673. $r = mysql_result($result, $RowNumber, $FieldName); 
  674.  
  675. Break; 
  676.  
  677. Case "pg": 
  678.  
  679. $r = pg_result($result, $RowNumber, $FieldName); 
  680.  
  681. Break; 
  682.  
  683. Default: 
  684.  
  685. $r = False; 
  686.  
  687. Break; 
  688.  
  689. } 
  690.  
  691. Return $r; 
  692.  
  693. } 
  694.  
  695. /************************************************************************************ 
  696.  
  697. *释放结果数据 
  698.  
  699. *************************************************************************************/ 
  700.  
  701. Function FreeResult($result) 
  702.  
  703. { 
  704.  
  705. Switch ($this->dbType) { 
  706.  
  707. Case "mssql": 
  708.  
  709. $r = mssql_free_result($result); 
  710.  
  711. Break; 
  712.  
  713. Case "mysql": 
  714.  
  715. $r = mysql_free_result($result); 
  716.  
  717. Break; 
  718.  
  719. Case "pg": 
  720.  
  721. $r = pg_freeresult($result); 
  722.  
  723. Break; 
  724.  
  725. Default: 
  726.  
  727. $r = False; 
  728.  
  729. Break; 
  730.  
  731. } 
  732.  
  733. Return $r; 
  734.  
  735. } 
  736.  
  737. /************************************************************************************ 
  738.  
  739. *获取记录数量 
  740.  
  741. *************************************************************************************/ 
  742.  
  743. Function RowsNumber($result) 
  744.  
  745. { 
  746.  
  747. Switch ($this->dbType) { 
  748.  
  749. Case "mssql": 
  750.  
  751. $r = mssql_num_rows($result); 
  752.  
  753. Break; 
  754.  
  755. Case "mysql": 
  756.  
  757. $r = mysql_num_rows($result); 
  758.  
  759. Break; 
  760.  
  761. Case "pg": 
  762.  
  763. $r = pg_numrows($result); 
  764.  
  765. Break; 
  766.  
  767. Default: 
  768.  
  769. $r = False; 
  770.  
  771. Break; 
  772.  
  773. } 
  774.  
  775. Return $r; 
  776.  
  777. } 
  778.  
  779. /************************************************************************************ 
  780.  
  781. *获取字段数量 
  782.  
  783. *************************************************************************************/ 
  784.  
  785. Function FieldsNumber($result) 
  786.  
  787. { 
  788.  
  789. Switch ($this->dbType) { 
  790.  
  791. Case "mssql": 
  792.  
  793. $r = mssql_num_fields($result); 
  794.  
  795. Break; 
  796.  
  797. Case "mysql": 
  798.  
  799. $r = mysql_num_fields($result); 
  800.  
  801. Break; 
  802.  
  803. Case "pg": 
  804.  
  805. $r = pg_numfields($result); 
  806.  
  807. Break; 
  808.  
  809. Default: 
  810.  
  811. $r = False; 
  812.  
  813. Break; 
  814.  
  815. } 
  816.  
  817. Return $r; 
  818.  
  819. } 
  820.  
  821. /************************************************************************************ 
  822.  
  823. *获取当前记录号(从0开始) 
  824.  
  825. *************************************************************************************/ 
  826.  
  827. Function CurRecNumber($result) 
  828.  
  829. { 
  830.  
  831. $r = $this->curRow[$result]; 
  832.  
  833. Return $r; 
  834.  
  835. } 
  836.  
  837. /************************************************************************************ 
  838.  
  839. *获取当前行号(从1开始) 
  840.  
  841. *************************************************************************************/ 
  842.  
  843. Function RecordNumber($result) 
  844.  
  845. { 
  846.  
  847. $cr = $this->CurRecNumber($result) + 1; 
  848.  
  849. Return $cr; 
  850.  
  851. } 
  852.  
  853. /************************************************************************************ 
  854.  
  855. *移动到第一条记录 
  856.  
  857. *************************************************************************************/ 
  858.  
  859. Function MoveFirstRec($result) 
  860.  
  861. { 
  862.  
  863. Switch ($this->dbType) { 
  864.  
  865. Case "pg": 
  866.  
  867. $r = $this->FetchRow($result, 0); 
  868.  
  869. Break; 
  870.  
  871. Default: 
  872.  
  873. $rn = $this->DataSeek($result, 0); 
  874.  
  875. If ($rn) { 
  876.  
  877. $r = $this->FetchRow($result); 
  878.  
  879. If ($r) $this->curRow[$result] = $this->seek[$result]; 
  880.  
  881. } Else { 
  882.  
  883. $r = False; 
  884.  
  885. } 
  886.  
  887. Break; 
  888.  
  889. } 
  890.  
  891. Return $r; 
  892.  
  893. } 
  894.  
  895. /************************************************************************************ 
  896.  
  897. *移动到最后一条记录 
  898.  
  899. *************************************************************************************/ 
  900.  
  901. Function MoveLastRec($result) 
  902.  
  903. { 
  904.  
  905. $rs = $this->RowsNumber($result); 
  906.  
  907. If ($rs) { 
  908.  
  909. $rs--; 
  910.  
  911. Switch ($this->dbType) { 
  912.  
  913. Case "pg": 
  914.  
  915. $r = $this->FetchRow($result, $rs); 
  916.  
  917. Break; 
  918.  
  919. Default: 
  920.  
  921. $rn = $this->DataSeek($result, $rs); 
  922.  
  923. If ($rn) { 
  924.  
  925. $r = $this->FetchRow($result); 
  926.  
  927. If ($r) $this->curRow[$result] = $this->seek[$result]; 
  928.  
  929. } Else { 
  930.  
  931. $r = False; 
  932.  
  933. } 
  934.  
  935. Break; 
  936.  
  937. } 
  938.  
  939. } 
  940.  
  941. Return $r; 
  942.  
  943. } 
  944.  
  945. /************************************************************************************ 
  946.  
  947. *移动到前一条记录 
  948.  
  949. *************************************************************************************/ 
  950.  
  951. Function MovePreviousRec($result) 
  952.  
  953. { 
  954.  
  955. $rs = $this->CurRecNumber($result); 
  956.  
  957. If ($rs) { 
  958.  
  959. $rs--; 
  960.  
  961. Switch ($this->dbType) { 
  962.  
  963. Case "pg": 
  964.  
  965. $r = $this->FetchRow($result, $rs); 
  966.  
  967. Break; 
  968.  
  969. Default: 
  970.  
  971. $rn = $this->DataSeek($result, $rs); 
  972.  
  973. If ($rn) { 
  974.  
  975. $r = $this->FetchRow($result); 
  976.  
  977. If ($r) $this->curRow[$result] = $this->seek[$result]; 
  978.  
  979. } Else { 
  980.  
  981. $r = False; 
  982.  
  983. } 
  984.  
  985. Break; 
  986.  
  987. } 
  988.  
  989. } 
  990.  
  991. Return $r; 
  992.  
  993. } 
  994.  
  995. /************************************************************************************ 
  996.  
  997. *移动到下一条记录 
  998.  
  999. *************************************************************************************/ 
  1000.  
  1001. Function MoveNextRec($result) 
  1002.  
  1003. { 
  1004.  
  1005. $rs = $this->CurRecNumber($result); 
  1006.  
  1007. $rn = $this->RowsNumber($result); 
  1008.  
  1009. $rs++; 
  1010.  
  1011. If ($rs != $rn) { 
  1012.  
  1013. Switch ($this->dbType) { 
  1014.  
  1015. Case "pg": 
  1016.  
  1017. $r = $this->FetchRow($result, $rs); 
  1018.  
  1019. Break; 
  1020.  
  1021. Default: 
  1022.  
  1023. $re = $this->FetchRow($result); 
  1024.  
  1025. If ($re) { 
  1026.  
  1027. $r = $re; 
  1028.  
  1029. $this->curRow[$result]++; 
  1030.  
  1031. $this->seek[$result] = $this->curRow[$result]; 
  1032.  
  1033. } Else { 
  1034.  
  1035. $r = False; 
  1036.  
  1037. } 
  1038.  
  1039. Break; 
  1040.  
  1041. } 
  1042.  
  1043. } 
  1044.  
  1045. Return $r; 
  1046.  
  1047. } 
  1048.  
  1049. /************************************************************************************ 
  1050.  
  1051. *移动到指定记录(编号从0开始) 
  1052.  
  1053. *************************************************************************************/ 
  1054.  
  1055. Function MoveToRec($result, $RowNumber) 
  1056.  
  1057. { 
  1058.  
  1059. $rn = $this->RowsNumber($result); 
  1060.  
  1061. If ($RowNumber > 0 And $RowNumber < $rn) { 
  1062.  
  1063. $RowNumber--; 
  1064.  
  1065. Switch ($this->dbType) { 
  1066.  
  1067. Case "pg": 
  1068.  
  1069. $r = $this->FetchRow($result, $RowNumber); 
  1070.  
  1071. Break; 
  1072.  
  1073. Default: 
  1074.  
  1075. $rn = $this->DataSeek($result, $RowNumber); 
  1076. //开源代码Vevb.com 
  1077. If ($rn) { 
  1078.  
  1079. $r = $this->FetchRow($result); 
  1080.  
  1081. If ($r) $this->curRow[$result] = $this->seek[$result]; 
  1082.  
  1083. } Else { 
  1084.  
  1085. $r = False; 
  1086.  
  1087. } 
  1088.  
  1089. Break; 
  1090.  
  1091. } 
  1092.  
  1093. } 
  1094.  
  1095. Return $r; 
  1096.  
  1097. } 
  1098.  
  1099. } 
  1100.  
  1101. //********************************方法实现完毕****************************************// 
  1102.  
  1103. ?>

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表