Subversion-Projekte lars-tiefland.php_share

Revision

Details | Letzte Änderung | Log anzeigen | RSS feed

Revision Autor Zeilennr. Zeile
1 lars 1
<?php
2
// +----------------------------------------------------------------------+
3
// | PHP Version 4                                                        |
4
// +----------------------------------------------------------------------+
5
// | Copyright (c) 1998-2004 Manuel Lemos, Tomas V.V.Cox,                 |
6
// | Stig. S. Bakken, Lukas Smith                                         |
7
// | All rights reserved.                                                 |
8
// +----------------------------------------------------------------------+
9
// | MDB is a merge of PEAR DB and Metabases that provides a unified DB   |
10
// | API as well as database abstraction for PHP applications.            |
11
// | This LICENSE is in the BSD license style.                            |
12
// |                                                                      |
13
// | Redistribution and use in source and binary forms, with or without   |
14
// | modification, are permitted provided that the following conditions   |
15
// | are met:                                                             |
16
// |                                                                      |
17
// | Redistributions of source code must retain the above copyright       |
18
// | notice, this list of conditions and the following disclaimer.        |
19
// |                                                                      |
20
// | Redistributions in binary form must reproduce the above copyright    |
21
// | notice, this list of conditions and the following disclaimer in the  |
22
// | documentation and/or other materials provided with the distribution. |
23
// |                                                                      |
24
// | Neither the name of Manuel Lemos, Tomas V.V.Cox, Stig. S. Bakken,    |
25
// | Lukas Smith nor the names of his contributors may be used to endorse |
26
// | or promote products derived from this software without specific prior|
27
// | written permission.                                                  |
28
// |                                                                      |
29
// | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS  |
30
// | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT    |
31
// | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS    |
32
// | FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE      |
33
// | REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,          |
34
// | INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, |
35
// | BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS|
36
// |  OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED  |
37
// | AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT          |
38
// | LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY|
39
// | WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE          |
40
// | POSSIBILITY OF SUCH DAMAGE.                                          |
41
// +----------------------------------------------------------------------+
42
// | Author: YOUR NAME <YOUR EMAIL>                                       |
43
// +----------------------------------------------------------------------+
44
//
45
// $Id: skeleton.php,v 1.16.4.2 2004/03/12 16:19:31 lsmith Exp $
46
//
47
 
48
// This is just a skeleton MDB driver.
49
// There may be methods missing as this skeleton is based on the methods
50
// implemented by the MySQL and PostGreSQL drivers in MDB.
51
// Some methods may not have to be implemented in the driver, because the
52
// implementation in common.php is compatible with the given RDBMS.
53
// In each of the listed methods I have added comments that tell you where
54
// to look for a "reference" implementation.
55
// Some of these methods have been expanded or changed slightly in MDB.
56
// Looking in the relevant MDB Wrapper should give you some pointers, some
57
// other difference you will only discover by looking at one of the existing
58
// MDB driver or the common implementation in common.php.
59
// One thing that will definately have to be modified in all "reference"
60
// implementations of Metabase methods is the error handling.
61
// Anyways don't worry if you are having problems: Lukas Smith is here to help!
62
 
63
require_once('MDB/Common.php');
64
 
65
/**
66
 * MDB XXX driver
67
 *
68
 * @package MDB
69
 * @category Database
70
 * @author  YOUR NAME <YOUR EMAIL>
71
 */
72
class MDB_xxx extends MDB_Common
73
{
74
// Most of the class variables are taken from the corresponding Metabase driver.
75
// Few are taken from the corresponding PEAR DB driver.
76
// Some are MDB specific.
77
    var $connection = 0;
78
    var $connected_host;
79
    var $connected_user;
80
    var $connected_password;
81
    var $connected_port;
82
    var $opened_persistent = '';
83
 
84
    var $escape_quotes = "\\";
85
    var $decimal_factor = 1.0;
86
 
87
    var $highest_fetched_row = array();
88
    var $columns = array();
89
 
90
    // }}}
91
    // {{{ constructor
92
 
93
    /**
94
    * Constructor
95
    */
96
    function MDB_xxx()
97
    {
98
        $this->MDB_common();
99
        $this->phptype = 'xxx';
100
        $this->dbsyntax = 'xxx';
101
 
102
        // most of the following codes needs to be taken from the corresponding Metabase driver setup() methods
103
 
104
        // the error code maps from corresponding PEAR DB driver constructor
105
 
106
        // also please remember to "register" all driver specific options here like so
107
        // $this->options['option_name'] = 'non NULL default value';
108
    }
109
 
110
    // }}}
111
    // {{{ errorNative()
112
 
113
    /**
114
     * Get the native error code of the last error (if any) that
115
     * occured on the current connection.
116
     *
117
     * @access public
118
     *
119
     * @return int native XXX error code
120
     */
121
    function errorNative()
122
    {
123
        // take this method from the corresponding PEAR DB driver: errorNative()
124
    }
125
 
126
    // }}}
127
    // {{{ xxxRaiseError()
128
 
129
    /**
130
     * This method is used to communicate an error and invoke error
131
     * callbacks etc.  Basically a wrapper for MDB::raiseError
132
     * that checks for native error msgs.
133
     *
134
     * @param integer $errno error code
135
     * @param string  $message userinfo message
136
     * @return object a PEAR error object
137
     * @access public
138
     * @see PEAR_Error
139
     */
140
    function xxxRaiseError($errno = NULL, $message = NULL)
141
    {
142
        // take this method from the corresponding PEAR DB driver: xxxRaiseError()
143
    }
144
 
145
    // }}}
146
    // {{{ autoCommit()
147
 
148
    /**
149
     * Define whether database changes done on the database be automatically
150
     * committed. This function may also implicitly start or end a transaction.
151
     *
152
     * @param boolean $auto_commit    flag that indicates whether the database
153
     *                                changes should be committed right after
154
     *                                executing every query statement. If this
155
     *                                argument is 0 a transaction implicitly
156
     *                                started. Otherwise, if a transaction is
157
     *                                in progress it is ended by committing any
158
     *                                database changes that were pending.
159
     *
160
     * @access public
161
     *
162
     * @return mixed MDB_OK on success, a MDB error on failure
163
     */
164
    function autoCommit($auto_commit)
165
    {
166
        // take this from the corresponding Metabase driver: AutoCommitTransactions()
167
        // the MetabaseShutdownTransactions function is handled by the PEAR desctructor
168
    }
169
 
170
    // }}}
171
    // {{{ commit()
172
 
173
    /**
174
     * Commit the database changes done during a transaction that is in
175
     * progress. This function may only be called when auto-committing is
176
     * disabled, otherwise it will fail. Therefore, a new transaction is
177
     * implicitly started after committing the pending changes.
178
     *
179
     * @access public
180
     *
181
     * @return mixed MDB_OK on success, a MDB error on failure
182
     */
183
    function commit()
184
    {
185
        // take this from the corresponding Metabase driver: CommitTransaction()
186
    }
187
 
188
    // }}}
189
    // {{{ rollback()
190
 
191
    /**
192
     * Cancel any database changes done during a transaction that is in
193
     * progress. This function may only be called when auto-committing is
194
     * disabled, otherwise it will fail. Therefore, a new transaction is
195
     * implicitly started after canceling the pending changes.
196
     *
197
     * @access public
198
     *
199
     * @return mixed MDB_OK on success, a MDB error on failure
200
     */
201
    function rollback()
202
    {
203
        // take this from the corresponding Metabase driver: RollbackTransaction()
204
    }
205
 
206
    // }}}
207
    // {{{ connect()
208
 
209
    /**
210
     * Connect to the database
211
     *
212
     * @return TRUE on success, MDB_Error on failure
213
     **/
214
    function connect()
215
    {
216
        // take this from the corresponding Metabase driver: Connect() and Setup()
217
        if (PEAR::isError(PEAR::loadExtension($this->phptype))) {
218
            return(PEAR::raiseError(NULL, MDB_ERROR_NOT_FOUND,
219
                NULL, NULL, 'extension '.$this->phptype.' is not compiled into PHP',
220
                'MDB_Error', TRUE));
221
        }
222
    }
223
 
224
    // }}}
225
    // {{{ _close()
226
    /**
227
     * all the RDBMS specific things needed close a DB connection
228
     *
229
     * @access private
230
     *
231
     */
232
    function _close()
233
    {
234
        // take this from the corresponding Metabase driver: Close()
235
    }
236
 
237
    // }}}
238
    // {{{ query()
239
 
240
    /**
241
     * Send a query to the database and return any results
242
     *
243
     * @access public
244
     *
245
     * @param string  $query  the SQL query
246
     * @param array   $types  array that contains the types of the columns in
247
     *                        the result set
248
     *
249
     * @return mixed a result handle or MDB_OK on success, a MDB error on failure
250
     */
251
    function query($query, $types = NULL)
252
    {
253
        // take this from the corresponding Metabase driver: Query()
254
    }
255
 
256
    // }}}
257
    // {{{ subSelect()
258
 
259
    /**
260
     * simple subselect emulation for Mysql
261
     *
262
     * @access public
263
     *
264
     * @param string $query the SQL query for the subselect that may only
265
     *                      return a column
266
     * @param string $quote determines if the data needs to be quoted before
267
     *                      being returned
268
     *
269
     * @return string the query
270
     */
271
    function subSelect($query, $quote = FALSE)
272
    {
273
        // This is a new method that only needs to be added if the RDBMS does
274
        // not support sub-selects. See the MySQL driver for an example
275
    }
276
 
277
    // }}}
278
    // {{{ replace()
279
 
280
    /**
281
     * Execute a SQL REPLACE query. A REPLACE query is identical to a INSERT
282
     * query, except that if there is already a row in the table with the same
283
     * key field values, the REPLACE query just updates its values instead of
284
     * inserting a new row.
285
     *
286
     * The REPLACE type of query does not make part of the SQL standards. Since
287
     * practically only MySQL implements it natively, this type of query is
288
     * emulated through this method for other DBMS using standard types of
289
     * queries inside a transaction to assure the atomicity of the operation.
290
     *
291
     * @access public
292
     *
293
     * @param string $table name of the table on which the REPLACE query will
294
     *  be executed.
295
     * @param array $fields associative array that describes the fields and the
296
     *  values that will be inserted or updated in the specified table. The
297
     *  indexes of the array are the names of all the fields of the table. The
298
     *  values of the array are also associative arrays that describe the
299
     *  values and other properties of the table fields.
300
     *
301
     *  Here follows a list of field properties that need to be specified:
302
     *
303
     *    Value:
304
     *          Value to be assigned to the specified field. This value may be
305
     *          of specified in database independent type format as this
306
     *          function can perform the necessary datatype conversions.
307
     *
308
     *    Default:
309
     *          this property is required unless the Null property
310
     *          is set to 1.
311
     *
312
     *    Type
313
     *          Name of the type of the field. Currently, all types Metabase
314
     *          are supported except for clob and blob.
315
     *
316
     *    Default: text
317
     *
318
     *    Null
319
     *          Boolean property that indicates that the value for this field
320
     *          should be set to NULL.
321
     *
322
     *          The default value for fields missing in INSERT queries may be
323
     *          specified the definition of a table. Often, the default value
324
     *          is already NULL, but since the REPLACE may be emulated using
325
     *          an UPDATE query, make sure that all fields of the table are
326
     *          listed in this function argument array.
327
     *
328
     *    Default: 0
329
     *
330
     *    Key
331
     *          Boolean property that indicates that this field should be
332
     *          handled as a primary key or at least as part of the compound
333
     *          unique index of the table that will determine the row that will
334
     *          updated if it exists or inserted a new row otherwise.
335
     *
336
     *          This function will fail if no key field is specified or if the
337
     *          value of a key field is set to NULL because fields that are
338
     *          part of unique index they may not be NULL.
339
     *
340
     *    Default: 0
341
     *
342
     * @return mixed MDB_OK on success, a MDB error on failure
343
     */
344
    function replace($table, $fields)
345
    {
346
        // take this from the corresponding Metabase driver: Replace()
347
    }
348
 
349
    // }}}
350
    // {{{ getColumnNames()
351
 
352
    /**
353
     * Retrieve the names of columns returned by the DBMS in a query result.
354
     *
355
     * @param resource   $result    result identifier
356
     * @return mixed                an associative array variable
357
     *                              that will hold the names of columns. The
358
     *                              indexes of the array are the column names
359
     *                              mapped to lower case and the values are the
360
     *                              respective numbers of the columns starting
361
     *                              from 0. Some DBMS may not return any
362
     *                              columns when the result set does not
363
     *                              contain any rows.
364
     *
365
     *                              a MDB error on failure
366
     * @access public
367
     */
368
    function getColumnNames($result)
369
    {
370
        // take this from the corresponding Metabase driver: GetColumnNames()
371
    }
372
 
373
    // }}}
374
    // {{{ numCols()
375
 
376
    /**
377
     * Count the number of columns returned by the DBMS in a query result.
378
     *
379
     * @param resource    $result        result identifier
380
     * @access public
381
     * @return mixed integer value with the number of columns, a MDB error
382
     *                       on failure
383
     */
384
    function numCols($result)
385
    {
386
        // take this from the corresponding Metabase driver: NumberOfColumns()
387
    }
388
 
389
    // }}}
390
    // {{{ endOfResult()
391
 
392
    /**
393
    * check if the end of the result set has been reached
394
    *
395
    * @param resource    $result result identifier
396
    * @return mixed TRUE or FALSE on sucess, a MDB error on failure
397
    * @access public
398
    */
399
    function endOfResult($result)
400
    {
401
        // take this from the corresponding Metabase driver: EndOfResult()
402
    }
403
 
404
    // }}}
405
    // {{{ _retrieveLob()
406
 
407
    /**
408
     * fetch a float value from a result set
409
     *
410
     * @param int $lob handle to a lob created by the createLob() function
411
     * @return mixed MDB_OK on success, a MDB error on failure
412
     * @access private
413
     */
414
    function _retrieveLob($lob)
415
    {
416
        // take this from the corresponding Metabase driver: RetrieveLOB()
417
    }
418
 
419
    // }}}
420
    // {{{ endOfResultLob()
421
 
422
    /**
423
     * Determine whether it was reached the end of the large object and
424
     * therefore there is no more data to be read for the its input stream.
425
     *
426
     * @param int    $lob handle to a lob created by the createLob() function
427
     * @return mixed TRUE or FALSE on success, a MDB error on failure
428
     * @access public
429
     */
430
    function endOfResultLob($lob)
431
    {
432
        // take this from the corresponding Metabase driver: EndOfResultLOB()
433
    }
434
 
435
    // }}}
436
    // {{{ _readResultLob()
437
 
438
    /**
439
     * Read data from large object input stream.
440
     *
441
     * @param int $lob handle to a lob created by the createLob() function
442
     * @param blob $data reference to a variable that will hold data to be
443
     *      read from the large object input stream
444
     * @param int $length integer value that indicates the largest ammount of
445
     *      data to be read from the large object input stream.
446
     * @return mixed length on success, a MDB error on failure
447
     * @access private
448
     */
449
    function _readResultLob($lob, &$data, $length)
450
    {
451
        // take this from the corresponding Metabase driver: ReadResultLOB()
452
    }
453
 
454
    // }}}
455
    // {{{ _destroyResultLob()
456
 
457
    /**
458
     * Free any resources allocated during the lifetime of the large object
459
     * handler object.
460
     *
461
     * @param int $lob handle to a lob created by the createLob() function
462
     * @access private
463
     */
464
    function _destroyResultLob($lob)
465
    {
466
        // take this from the corresponding Metabase driver: DestroyResultLOB()
467
    }
468
 
469
    // }}}
470
    // {{{ fetch()
471
 
472
    /**
473
    * fetch value from a result set
474
    *
475
    * @param resource    $result result identifier
476
    * @param int    $row    number of the row where the data can be found
477
    * @param int    $field    field number where the data can be found
478
    * @return mixed string on success, a MDB error on failure
479
    * @access public
480
    */
481
    function fetch($result, $row, $field)
482
    {
483
        // take this from the corresponding Metabase driver: FetchResult()
484
    }
485
 
486
    // }}}
487
    // {{{ fetchClob()
488
 
489
    /**
490
    * fetch a clob value from a result set
491
    *
492
    * @param resource    $result result identifier
493
    * @param int    $row    number of the row where the data can be found
494
    * @param int    $field    field number where the data can be found
495
    * @return mixed content of the specified data cell, a MDB error on failure,
496
    *               a MDB error on failure
497
    * @access public
498
    */
499
    function fetchClob($result, $row, $field)
500
    {
501
        // take this from the corresponding Metabase driver: FetchCLOB()
502
    }
503
 
504
    // }}}
505
    // {{{ fetchBlob()
506
 
507
    /**
508
    * fetch a blob value from a result set
509
    *
510
    * @param resource    $result result identifier
511
    * @param int    $row    number of the row where the data can be found
512
    * @param int    $field    field number where the data can be found
513
    * @return mixed content of the specified data cell, a MDB error on failure
514
    * @access public
515
    */
516
    function fetchBlob($result, $row, $field)
517
    {
518
        // take this from the corresponding Metabase driver: FetchBLOB()
519
    }
520
 
521
    // }}}
522
    // {{{ resultIsNull()
523
 
524
    /**
525
     * Determine whether the value of a query result located in given row and
526
     *   field is a NULL.
527
     *
528
     * @param resource    $result result identifier
529
     * @param int    $row    number of the row where the data can be found
530
     * @param int    $field    field number where the data can be found
531
     * @return mixed TRUE or FALSE on success, a MDB error on failure
532
     * @access public
533
     */
534
    function resultIsNull($result, $row, $field)
535
    {
536
        // take this from the corresponding Metabase driver: ResultIsNull()
537
    }
538
 
539
    // }}}
540
    // {{{ convertResult()
541
 
542
    /**
543
    * convert a value to a RDBMS indepdenant MDB type
544
    *
545
    * @param mixed  $value   value to be converted
546
    * @param int    $type    constant that specifies which type to convert to
547
    * @return mixed converted value
548
    * @access public
549
    */
550
    function convertResult($value, $type)
551
    {
552
        // take this from the corresponding Metabase driver: ConvertResult()
553
    }
554
 
555
    // }}}
556
    // {{{ numRows()
557
 
558
    /**
559
    * returns the number of rows in a result object
560
    *
561
     * @param ressource $result a valid result ressouce pointer
562
    * @return mixed MDB_Error or the number of rows
563
    * @access public
564
    */
565
    function numRows($result)
566
    {
567
        // take this from the corresponding Metabase driver: NumberOfRows()
568
    }
569
 
570
    // }}}
571
    // {{{ freeResult()
572
 
573
    /**
574
     * Free the internal resources associated with $result.
575
     *
576
     * @param $result result identifier
577
     * @return bool TRUE on success, FALSE if $result is invalid
578
     * @access public
579
     */
580
    function freeResult($result)
581
    {
582
        // take this from the corresponding Metabase driver: FreeResult()
583
    }
584
 
585
    // }}}
586
    // {{{ get*Declaration()
587
 
588
    // take phpdoc comments from MDB common.php: get*Declaration()
589
 
590
    function get*Declaration($name, $field)
591
    {
592
        // take this from the corresponding Metabase driver: Get*FieldValue()
593
    }
594
 
595
    // }}}
596
    // {{{ get*Value()
597
 
598
    /**
599
     * Convert a text value into a DBMS specific format that is suitable to
600
     * compose query statements.
601
     *
602
     * @param resource  $prepared_query query handle from prepare()
603
     * @param           $parameter
604
     * @param           $clob
605
     * @return string  text string that represents the given argument value in
606
     *                 a DBMS specific format.
607
     * @access public
608
     */
609
    function get*Value($prepared_query, $parameter, $clob)
610
    {
611
        // take this from the corresponding Metabase driver: Get*FieldValue()
612
    }
613
 
614
    // }}}
615
    // {{{ getClobValue()
616
 
617
    /**
618
     * Convert a text value into a DBMS specific format that is suitable to
619
     * compose query statements.
620
     *
621
     * @param resource  $prepared_query query handle from prepare()
622
     * @param           $parameter
623
     * @param           $clob
624
     * @return string  text string that represents the given argument value in
625
     *                 a DBMS specific format.
626
     * @access public
627
     */
628
    function getClobValue($prepared_query, $parameter, $clob)
629
    {
630
        // take this from the corresponding Metabase driver: GetCLOBFieldValue()
631
    }
632
 
633
    // }}}
634
    // {{{ freeClobValue()
635
 
636
    /**
637
     * free a chracter large object
638
     *
639
     * @param resource  $prepared_query query handle from prepare()
640
     * @param string    $clob
641
     * @param string    $value
642
     * @return MDB_OK
643
     * @access public
644
     */
645
    function freeClobValue($prepared_query, $clob, &$value)
646
    {
647
        // take this from the corresponding Metabase driver: FreeClobValue()
648
    }
649
 
650
    // }}}
651
    // {{{ getBlobValue()
652
 
653
    /**
654
     * Convert a text value into a DBMS specific format that is suitable to
655
     * compose query statements.
656
     *
657
     * @param resource  $prepared_query query handle from prepare()
658
     * @param           $parameter
659
     * @param           $blob
660
     * @return string  text string that represents the given argument value in
661
     *                 a DBMS specific format.
662
     * @access public
663
     */
664
    function getBlobValue($prepared_query, $parameter, $blob)
665
    {
666
        // take this from the corresponding Metabase driver: GetBLOBFieldValue()
667
    }
668
 
669
    // }}}
670
    // {{{ freeBlobValue()
671
 
672
    /**
673
     * free a binary large object
674
     *
675
     * @param resource  $prepared_query query handle from prepare()
676
     * @param string    $blob
677
     * @return MDB_OK
678
     * @access public
679
     */
680
    function freeBlobValue($prepared_query, $blob)
681
    {
682
        // take this from the corresponding Metabase driver: FreeBlobValue()
683
    }
684
 
685
    // }}}
686
    // {{{ nextId()
687
 
688
    /**
689
     * returns the next free id of a sequence
690
     *
691
     * @param string  $seq_name name of the sequence
692
     * @param boolean $ondemand when true the seqence is
693
     *                          automatic created, if it
694
     *                          not exists
695
     *
696
     * @return mixed MDB_Error or id
697
     * @access public
698
     */
699
    function nextId($seq_name, $ondemand = FALSE)
700
    {
701
        // take this from the corresponding PEAR DB driver: nextId()
702
    }
703
 
704
 
705
    // }}}
706
    // {{{ currId()
707
 
708
    /**
709
     * returns the current id of a sequence
710
     *
711
     * @param string  $seq_name name of the sequence
712
     * @return mixed MDB_Error or id
713
     * @access public
714
     */
715
    function currId($seq_name)
716
    {
717
        // take this from the corresponding Metabase driver: GetSequenceCurrentValue()
718
    }
719
 
720
    // }}}
721
    // {{{ fetchInto()
722
 
723
    /**
724
     * Fetch a row and insert the data into an existing array.
725
     *
726
     * @param resource  $result     result identifier
727
     * @param int       $fetchmode  how the array data should be indexed
728
     * @param int       $rownum     the row number to fetch
729
     * @return int data array on success, a MDB error on failure
730
     * @access public
731
     */
732
    function fetchInto($result, $fetchmode = MDB_FETCHMODE_DEFAULT, $rownum = 0)
733
    {
734
        // take this from the corresponding Metabase driver: FetchResultArray()
735
        // possibly you also need to take code from Metabases FetchRow() method
736
        // note Metabases FetchRow() method should not be confused with MDB's fetchRow()
737
    }
738
 
739
    // }}}
740
    // {{{ nextResult()
741
 
742
    /**
743
     * Move the internal mysql result pointer to the next available result
744
     * Currently not supported
745
     *
746
     * @param a valid result resource
747
     * @return true if a result is available otherwise return false
748
     * @access public
749
     */
750
    function nextResult($result)
751
    {
752
        // take this from the corresponding PEAR DB driver: nextResult()
753
    }
754
 
755
    // }}}
756
    // {{{ tableInfo()
757
 
758
    /**
759
    * returns meta data about the result set
760
    *
761
    * @param resource    $result    result identifier
762
    * @param mixed $mode depends on implementation
763
    * @return array an nested array, or a MDB error
764
    * @access public
765
    */
766
    function tableInfo($result, $mode = NULL) {
767
        // take this from the corresponding PEAR DB driver: tableInfo()
768
    }
769
}
770
 
771
?>