summaryrefslogtreecommitdiff
path: root/pear/packages/DB-1.5.0RC1.tar
blob: ec82dfcfaa18489eb523ef191317ef2cd9bdd0c0 (plain)
ofshex dumpascii
0000 70 61 63 6b 61 67 65 2e 78 6d 6c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 package.xml.....................
0020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0060 00 00 00 00 31 30 30 36 34 34 20 00 20 20 20 37 36 34 20 00 20 20 20 31 34 34 20 00 20 20 20 20 ....100644.....764.....144......
0080 20 20 31 36 35 33 34 20 20 37 36 37 35 34 35 31 34 37 37 20 20 20 36 34 31 34 20 00 00 00 00 00 ..16534..7675451477...6414......
00a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
00c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
00e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
01a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
01c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
01e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0200 3c 3f 78 6d 6c 20 76 65 72 73 69 6f 6e 3d 22 31 2e 30 22 20 65 6e 63 6f 64 69 6e 67 3d 22 49 53 <?xml.version="1.0".encoding="IS
0220 4f 2d 38 38 35 39 2d 31 22 20 3f 3e 0a 3c 70 61 63 6b 61 67 65 20 76 65 72 73 69 6f 6e 3d 22 31 O-8859-1".?>.<package.version="1
0240 2e 30 22 3e 0a 20 20 3c 6e 61 6d 65 3e 44 42 3c 2f 6e 61 6d 65 3e 0a 20 20 3c 73 75 6d 6d 61 72 .0">...<name>DB</name>...<summar
0260 79 3e 44 61 74 61 62 61 73 65 20 41 62 73 74 72 61 63 74 69 6f 6e 20 4c 61 79 65 72 3c 2f 73 75 y>Database.Abstraction.Layer</su
0280 6d 6d 61 72 79 3e 0a 20 20 3c 64 65 73 63 72 69 70 74 69 6f 6e 3e 44 42 20 69 73 20 61 20 64 61 mmary>...<description>DB.is.a.da
02a0 74 61 62 61 73 65 20 61 62 73 74 72 61 63 74 69 6f 6e 20 6c 61 79 65 72 20 70 72 6f 76 69 64 69 tabase.abstraction.layer.providi
02c0 6e 67 3a 0a 2a 20 61 6e 20 4f 4f 2d 73 74 79 6c 65 20 71 75 65 72 79 20 41 50 49 0a 2a 20 61 20 ng:.*.an.OO-style.query.API.*.a.
02e0 44 53 4e 20 28 64 61 74 61 20 73 6f 75 72 63 65 20 6e 61 6d 65 29 20 66 6f 72 6d 61 74 20 66 6f DSN.(data.source.name).format.fo
0300 72 20 73 70 65 63 69 66 79 69 6e 67 20 64 61 74 61 62 61 73 65 20 73 65 72 76 65 72 73 0a 2a 20 r.specifying.database.servers.*.
0320 70 72 65 70 61 72 65 2f 65 78 65 63 75 74 65 20 28 62 69 6e 64 29 20 65 6d 75 6c 61 74 69 6f 6e prepare/execute.(bind).emulation
0340 20 66 6f 72 20 64 61 74 61 62 61 73 65 73 20 74 68 61 74 20 64 6f 6e 27 74 20 73 75 70 70 6f 72 .for.databases.that.don't.suppor
0360 74 0a 20 20 69 74 20 6e 61 74 69 76 65 6c 79 0a 2a 20 61 20 72 65 73 75 6c 74 20 6f 62 6a 65 63 t...it.natively.*.a.result.objec
0380 74 20 66 6f 72 20 65 61 63 68 20 71 75 65 72 79 20 72 65 73 70 6f 6e 73 65 0a 2a 20 70 6f 72 74 t.for.each.query.response.*.port
03a0 61 62 6c 65 20 65 72 72 6f 72 20 63 6f 64 65 73 0a 2a 20 73 65 71 75 65 6e 63 65 20 65 6d 75 6c able.error.codes.*.sequence.emul
03c0 61 74 69 6f 6e 0a 2a 20 73 65 71 75 65 6e 74 69 61 6c 20 61 6e 64 20 6e 6f 6e 20 73 65 71 75 65 ation.*.sequential.and.non.seque
03e0 6e 74 69 61 6c 20 72 6f 77 20 66 65 74 63 68 69 6e 67 20 61 73 20 77 65 6c 6c 20 61 73 20 62 75 ntial.row.fetching.as.well.as.bu
0400 6c 6b 20 66 65 74 63 68 69 6e 67 0a 2a 20 6f 72 64 65 72 65 64 20 61 72 72 61 79 2c 20 61 73 73 lk.fetching.*.ordered.array,.ass
0420 6f 63 69 61 74 69 76 65 20 61 72 72 61 79 20 61 6e 64 20 6f 62 6a 65 63 74 20 66 6f 72 6d 61 74 ociative.array.and.object.format
0440 73 20 73 75 70 70 6f 72 74 65 64 20 66 6f 72 0a 20 20 74 68 65 20 66 65 74 63 68 65 64 20 72 6f s.supported.for...the.fetched.ro
0460 77 73 0a 2a 20 72 6f 77 20 6c 69 6d 69 74 20 73 75 70 70 6f 72 74 0a 2a 20 74 72 61 6e 73 61 63 ws.*.row.limit.support.*.transac
0480 74 69 6f 6e 73 20 73 75 70 70 6f 72 74 0a 2a 20 74 61 62 6c 65 20 69 6e 66 6f 72 6d 61 74 69 6f tions.support.*.table.informatio
04a0 6e 20 69 6e 74 65 72 66 61 63 65 0a 2a 20 44 6f 63 42 6f 6f 6b 20 61 6e 64 20 50 48 50 44 6f 63 n.interface.*.DocBook.and.PHPDoc
04c0 20 41 50 49 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 0a 0a 44 42 20 6c 61 79 65 72 73 20 69 74 .API.documentation..DB.layers.it
04e0 73 65 6c 66 20 6f 6e 20 74 6f 70 20 6f 66 20 50 48 50 27 73 20 65 78 69 73 74 69 6e 67 20 64 61 self.on.top.of.PHP's.existing.da
0500 74 61 62 61 73 65 20 65 78 74 65 6e 73 69 6f 6e 73 2e 20 20 54 68 65 0a 63 75 72 72 65 6e 74 6c tabase.extensions...The.currentl
0520 79 20 73 75 70 70 6f 72 74 65 64 20 65 78 74 65 6e 73 69 6f 6e 73 20 61 72 65 3a 20 64 62 61 73 y.supported.extensions.are:.dbas
0540 65 2c 20 66 62 73 71 6c 2c 20 69 6e 74 65 72 62 61 73 65 2c 20 69 6e 66 6f 72 6d 69 78 2c 0a 6d e,.fbsql,.interbase,.informix,.m
0560 73 71 6c 2c 20 6d 73 73 71 6c 2c 20 6d 79 73 71 6c 2c 20 6f 63 69 38 2c 20 6f 64 62 63 2c 20 70 sql,.mssql,.mysql,.oci8,.odbc,.p
0580 67 73 71 6c 2c 20 73 71 6c 69 74 65 20 61 6e 64 20 73 79 62 61 73 65 20 28 44 42 20 73 74 79 6c gsql,.sqlite.and.sybase.(DB.styl
05a0 65 20 69 6e 74 65 72 66 61 63 65 73 0a 74 6f 20 4c 44 41 50 20 73 65 72 76 65 72 73 20 61 6e 64 e.interfaces.to.LDAP.servers.and
05c0 20 4d 53 20 41 44 4f 20 28 75 73 69 6e 67 20 43 4f 4d 29 20 61 72 65 20 61 6c 73 6f 20 61 76 61 .MS.ADO.(using.COM).are.also.ava
05e0 69 62 6c 65 20 66 72 6f 6d 20 61 20 73 65 70 61 72 61 74 65 20 70 61 63 6b 61 67 65 29 2e 3c 2f ible.from.a.separate.package).</
0600 64 65 73 63 72 69 70 74 69 6f 6e 3e 0a 20 20 3c 6d 61 69 6e 74 61 69 6e 65 72 73 3e 0a 20 20 20 description>...<maintainers>....
0620 20 3c 6d 61 69 6e 74 61 69 6e 65 72 3e 0a 20 20 20 20 20 20 3c 75 73 65 72 3e 73 73 62 3c 2f 75 .<maintainer>.......<user>ssb</u
0640 73 65 72 3e 0a 20 20 20 20 20 20 3c 6e 61 6d 65 3e 53 74 69 67 20 53 e6 74 68 65 72 20 42 61 6b ser>.......<name>Stig.S.ther.Bak
0660 6b 65 6e 3c 2f 6e 61 6d 65 3e 0a 20 20 20 20 20 20 3c 65 6d 61 69 6c 3e 73 74 69 67 40 70 68 70 ken</name>.......<email>stig@php
0680 2e 6e 65 74 3c 2f 65 6d 61 69 6c 3e 0a 20 20 20 20 20 20 3c 72 6f 6c 65 3e 6c 65 61 64 3c 2f 72 .net</email>.......<role>lead</r
06a0 6f 6c 65 3e 0a 20 20 20 20 3c 2f 6d 61 69 6e 74 61 69 6e 65 72 3e 0a 20 20 20 20 3c 6d 61 69 6e ole>.....</maintainer>.....<main
06c0 74 61 69 6e 65 72 3e 0a 20 20 20 20 20 20 3c 75 73 65 72 3e 63 6f 78 3c 2f 75 73 65 72 3e 0a 20 tainer>.......<user>cox</user>..
06e0 20 20 20 20 20 3c 6e 61 6d 65 3e 54 6f 6d 61 73 20 56 2e 56 2e 43 6f 78 3c 2f 6e 61 6d 65 3e 0a .....<name>Tomas.V.V.Cox</name>.
0700 20 20 20 20 20 20 3c 65 6d 61 69 6c 3e 63 6f 78 40 69 64 65 63 6e 65 74 2e 63 6f 6d 3c 2f 65 6d ......<email>cox@idecnet.com</em
0720 61 69 6c 3e 0a 20 20 20 20 20 20 3c 72 6f 6c 65 3e 64 65 76 65 6c 6f 70 65 72 3c 2f 72 6f 6c 65 ail>.......<role>developer</role
0740 3e 0a 20 20 20 20 3c 2f 6d 61 69 6e 74 61 69 6e 65 72 3e 0a 20 20 3c 2f 6d 61 69 6e 74 61 69 6e >.....</maintainer>...</maintain
0760 65 72 73 3e 0a 20 20 3c 72 65 6c 65 61 73 65 3e 0a 20 20 20 20 3c 76 65 72 73 69 6f 6e 3e 31 2e ers>...<release>.....<version>1.
0780 35 2e 30 52 43 31 3c 2f 76 65 72 73 69 6f 6e 3e 0a 20 20 20 20 3c 64 61 74 65 3e 32 30 30 33 2d 5.0RC1</version>.....<date>2003-
07a0 30 36 2d 32 33 3c 2f 64 61 74 65 3e 0a 20 20 20 20 3c 6c 69 63 65 6e 73 65 3e 50 48 50 20 4c 69 06-23</date>.....<license>PHP.Li
07c0 63 65 6e 73 65 3c 2f 6c 69 63 65 6e 73 65 3e 0a 20 20 20 20 3c 73 74 61 74 65 3e 73 74 61 62 6c cense</license>.....<state>stabl
07e0 65 3c 2f 73 74 61 74 65 3e 0a 20 20 20 20 3c 6e 6f 74 65 73 3e 4e 65 77 20 46 65 61 74 75 72 65 e</state>.....<notes>New.Feature
0800 73 3a 0a 2d 20 41 64 64 65 64 20 24 64 62 68 2d 26 67 74 3b 66 72 65 65 50 72 65 70 61 72 65 64 s:.-.Added.$dbh-&gt;freePrepared
0820 28 29 2c 20 66 6f 72 20 65 78 70 6c 69 63 69 74 69 6c 79 20 66 72 65 65 20 61 20 70 72 65 70 61 (),.for.explicitily.free.a.prepa
0840 72 65 64 20 72 65 73 75 6c 74 0a 2d 20 54 65 73 74 20 73 75 69 74 65 20 65 6e 68 61 6e 63 65 64 red.result.-.Test.suite.enhanced
0860 0a 2d 20 41 64 64 65 64 20 6e 65 77 20 2a 65 78 70 65 72 69 6d 65 6e 74 61 6c 2a 20 64 72 69 76 .-.Added.new.*experimental*.driv
0880 65 72 20 66 6f 72 20 53 51 4c 69 74 65 0a 0a 42 75 67 73 20 66 69 78 65 64 3a 0a 2d 20 46 69 78 er.for.SQLite..Bugs.fixed:.-.Fix
08a0 65 64 20 6d 65 6d 6f 72 79 20 6c 65 61 6b 73 20 77 69 74 68 20 6d 65 74 68 6f 64 73 20 74 68 61 ed.memory.leaks.with.methods.tha
08c0 74 20 64 69 64 20 61 75 74 6f 6d 61 74 69 63 20 70 72 65 70 61 72 65 2f 65 78 65 63 75 74 65 0a t.did.automatic.prepare/execute.
08e0 2d 20 69 62 61 73 65 3a 20 62 65 74 74 65 72 20 65 72 72 6f 72 20 68 61 6e 64 6c 69 6e 67 20 61 -.ibase:.better.error.handling.a
0900 6e 64 20 76 61 72 69 6f 75 73 20 62 75 67 66 69 78 65 73 0a 2d 20 6d 73 73 71 6c 3a 20 61 64 64 nd.various.bugfixes.-.mssql:.add
0920 65 64 20 70 6f 72 74 20 73 65 74 74 69 6e 67 20 74 6f 20 63 6f 6e 6e 65 63 74 20 61 6e 64 20 65 ed.port.setting.to.connect.and.e
0940 6e 68 61 6e 63 65 6d 65 6e 74 73 20 74 6f 20 74 68 65 20 65 72 72 6f 72 20 68 61 6e 6c 64 65 72 nhancements.to.the.error.hanlder
0960 0a 2d 20 6d 79 73 71 6c 3a 20 24 64 62 2d 26 67 74 3b 63 72 65 61 74 65 53 65 71 75 65 6e 63 65 .-.mysql:.$db-&gt;createSequence
0980 28 29 3b 20 24 64 62 2d 26 67 74 3b 6e 65 78 74 49 44 28 29 3b 20 6e 6f 77 20 72 65 74 75 72 6e ();.$db-&gt;nextID();.now.return
09a0 73 20 31 20 61 6e 64 20 6f 74 68 65 72 20 6d 69 6e 6f 72 20 66 69 78 65 73 0a 2d 20 6f 64 62 63 s.1.and.other.minor.fixes.-.odbc
09c0 3a 20 61 64 64 65 64 20 6e 61 74 69 76 65 20 71 75 6f 74 65 28 29 20 66 75 6e 63 74 69 6f 6e 2c :.added.native.quote().function,
09e0 20 62 65 74 74 65 72 20 65 72 72 6f 72 20 68 61 6e 64 6c 69 6e 67 2c 20 61 6e 64 20 6f 74 68 65 .better.error.handling,.and.othe
0a00 72 20 62 75 67 66 69 78 65 73 0a 2d 20 70 67 73 71 6c 3a 20 6d 69 6e 6f 72 20 62 75 67 66 69 78 r.bugfixes.-.pgsql:.minor.bugfix
0a20 65 73 0a 0a 53 70 65 63 69 61 6c 20 74 68 61 6e 6b 73 20 66 6f 72 20 74 68 6f 73 65 20 70 65 72 es..Special.thanks.for.those.per
0a40 73 6f 6e 73 20 77 68 6f 20 73 65 6e 74 20 70 61 74 63 68 65 73 20 61 6e 64 20 62 75 67 20 72 65 sons.who.sent.patches.and.bug.re
0a60 70 6f 72 74 73 2e 20 54 68 69 73 20 72 65 6c 65 61 73 65 0a 69 73 20 64 6f 6e 65 20 66 6f 72 20 ports..This.release.is.done.for.
0a80 70 75 62 6c 69 63 20 74 65 73 74 69 6e 67 20 62 65 66 6f 72 65 20 74 68 65 20 66 69 6e 61 6c 20 public.testing.before.the.final.
0aa0 72 65 6c 65 61 73 65 20 69 6e 20 73 79 6e 63 20 77 69 74 68 20 74 68 65 0a 75 70 63 6f 6d 6d 69 release.in.sync.with.the.upcommi
0ac0 6e 67 20 50 48 50 20 34 2e 33 2e 33 20 76 65 72 73 69 6f 6e 2e 3c 2f 6e 6f 74 65 73 3e 0a 20 20 ng.PHP.4.3.3.version.</notes>...
0ae0 20 20 3c 70 72 6f 76 69 64 65 73 20 74 79 70 65 3d 22 66 75 6e 63 74 69 6f 6e 22 20 6e 61 6d 65 ..<provides.type="function".name
0b00 3d 22 61 72 72 61 79 5f 63 68 61 6e 67 65 5f 6b 65 79 5f 63 61 73 65 22 20 2f 3e 0a 20 20 20 20 ="array_change_key_case"./>.....
0b20 3c 66 69 6c 65 6c 69 73 74 3e 0a 20 20 20 20 20 20 3c 66 69 6c 65 20 72 6f 6c 65 3d 22 70 68 70 <filelist>.......<file.role="php
0b40 22 20 62 61 73 65 69 6e 73 74 61 6c 6c 64 69 72 3d 22 2f 22 20 6d 64 35 73 75 6d 3d 22 36 30 66 ".baseinstalldir="/".md5sum="60f
0b60 34 62 65 65 36 32 63 61 61 64 35 38 31 39 33 38 36 61 37 30 38 33 63 64 66 38 62 65 66 22 20 6e 4bee62caad5819386a7083cdf8bef".n
0b80 61 6d 65 3d 22 44 42 2e 70 68 70 22 2f 3e 0a 20 20 20 20 20 20 3c 66 69 6c 65 20 72 6f 6c 65 3d ame="DB.php"/>.......<file.role=
0ba0 22 70 68 70 22 20 6d 64 35 73 75 6d 3d 22 36 65 31 64 32 37 32 39 66 32 33 31 35 36 39 31 34 63 "php".md5sum="6e1d2729f23156914c
0bc0 63 37 63 62 32 36 33 38 66 33 63 64 65 30 22 20 6e 61 6d 65 3d 22 44 42 2f 63 6f 6d 6d 6f 6e 2e c7cb2638f3cde0".name="DB/common.
0be0 70 68 70 22 2f 3e 0a 20 20 20 20 20 20 3c 66 69 6c 65 20 72 6f 6c 65 3d 22 70 68 70 22 20 6d 64 php"/>.......<file.role="php".md
0c00 35 73 75 6d 3d 22 37 39 66 64 63 34 35 63 32 64 64 39 36 38 31 38 34 38 62 38 61 33 39 39 35 38 5sum="79fdc45c2dd9681848b8a39958
0c20 37 35 62 39 32 37 22 20 6e 61 6d 65 3d 22 44 42 2f 64 62 61 73 65 2e 70 68 70 22 2f 3e 0a 20 20 75b927".name="DB/dbase.php"/>...
0c40 20 20 20 20 3c 66 69 6c 65 20 72 6f 6c 65 3d 22 70 68 70 22 20 6d 64 35 73 75 6d 3d 22 38 38 63 ....<file.role="php".md5sum="88c
0c60 66 33 62 66 35 35 38 63 31 31 63 65 35 33 61 62 63 65 65 64 32 62 31 32 66 30 64 30 61 22 20 6e f3bf558c11ce53abceed2b12f0d0a".n
0c80 61 6d 65 3d 22 44 42 2f 66 62 73 71 6c 2e 70 68 70 22 2f 3e 0a 20 20 20 20 20 20 3c 66 69 6c 65 ame="DB/fbsql.php"/>.......<file
0ca0 20 72 6f 6c 65 3d 22 70 68 70 22 20 6d 64 35 73 75 6d 3d 22 65 63 64 37 31 66 61 36 66 34 37 38 .role="php".md5sum="ecd71fa6f478
0cc0 33 33 37 63 35 33 66 34 35 34 62 31 36 33 34 66 33 33 62 64 22 20 6e 61 6d 65 3d 22 44 42 2f 69 337c53f454b1634f33bd".name="DB/i
0ce0 62 61 73 65 2e 70 68 70 22 2f 3e 0a 20 20 20 20 20 20 3c 66 69 6c 65 20 72 6f 6c 65 3d 22 70 68 base.php"/>.......<file.role="ph
0d00 70 22 20 6d 64 35 73 75 6d 3d 22 35 66 34 36 65 36 38 35 62 36 37 36 34 38 64 32 32 39 65 64 30 p".md5sum="5f46e685b67648d229ed0
0d20 64 66 61 61 38 32 33 36 36 61 36 22 20 6e 61 6d 65 3d 22 44 42 2f 69 66 78 2e 70 68 70 22 2f 3e dfaa82366a6".name="DB/ifx.php"/>
0d40 0a 20 20 20 20 20 20 3c 66 69 6c 65 20 72 6f 6c 65 3d 22 70 68 70 22 20 6d 64 35 73 75 6d 3d 22 .......<file.role="php".md5sum="
0d60 66 39 62 34 37 66 33 34 35 35 32 61 66 35 66 30 63 63 38 36 61 35 61 39 31 64 38 62 32 32 62 61 f9b47f34552af5f0cc86a5a91d8b22ba
0d80 22 20 6e 61 6d 65 3d 22 44 42 2f 6d 73 71 6c 2e 70 68 70 22 2f 3e 0a 20 20 20 20 20 20 3c 66 69 ".name="DB/msql.php"/>.......<fi
0da0 6c 65 20 72 6f 6c 65 3d 22 70 68 70 22 20 6d 64 35 73 75 6d 3d 22 65 36 61 62 61 66 62 66 63 39 le.role="php".md5sum="e6abafbfc9
0dc0 38 38 61 32 35 61 30 63 39 32 32 66 63 34 39 34 36 62 33 37 64 35 22 20 6e 61 6d 65 3d 22 44 42 88a25a0c922fc4946b37d5".name="DB
0de0 2f 6d 73 73 71 6c 2e 70 68 70 22 2f 3e 0a 20 20 20 20 20 20 3c 66 69 6c 65 20 72 6f 6c 65 3d 22 /mssql.php"/>.......<file.role="
0e00 70 68 70 22 20 6d 64 35 73 75 6d 3d 22 30 37 63 38 33 61 36 31 38 33 30 61 37 35 36 32 30 66 32 php".md5sum="07c83a61830a75620f2
0e20 61 61 62 62 32 37 35 38 31 32 32 37 30 22 20 6e 61 6d 65 3d 22 44 42 2f 6d 79 73 71 6c 2e 70 68 aabb275812270".name="DB/mysql.ph
0e40 70 22 2f 3e 0a 20 20 20 20 20 20 3c 66 69 6c 65 20 72 6f 6c 65 3d 22 70 68 70 22 20 6d 64 35 73 p"/>.......<file.role="php".md5s
0e60 75 6d 3d 22 36 65 30 33 62 62 32 62 39 65 64 34 65 34 65 38 62 31 64 37 65 66 31 61 34 66 32 32 um="6e03bb2b9ed4e4e8b1d7ef1a4f22
0e80 36 34 35 64 22 20 6e 61 6d 65 3d 22 44 42 2f 6f 63 69 38 2e 70 68 70 22 2f 3e 0a 20 20 20 20 20 645d".name="DB/oci8.php"/>......
0ea0 20 3c 66 69 6c 65 20 72 6f 6c 65 3d 22 70 68 70 22 20 6d 64 35 73 75 6d 3d 22 63 32 31 31 62 34 .<file.role="php".md5sum="c211b4
0ec0 38 34 32 39 66 32 36 66 31 61 32 33 33 38 34 38 30 38 36 36 61 31 61 64 39 33 22 20 6e 61 6d 65 8429f26f1a2338480866a1ad93".name
0ee0 3d 22 44 42 2f 6f 64 62 63 2e 70 68 70 22 2f 3e 0a 20 20 20 20 20 20 3c 66 69 6c 65 20 72 6f 6c ="DB/odbc.php"/>.......<file.rol
0f00 65 3d 22 70 68 70 22 20 6d 64 35 73 75 6d 3d 22 66 33 62 66 39 35 63 33 34 34 66 33 34 37 62 32 e="php".md5sum="f3bf95c344f347b2
0f20 36 66 35 31 30 38 38 30 32 30 33 64 37 63 66 64 22 20 6e 61 6d 65 3d 22 44 42 2f 70 67 73 71 6c 6f510880203d7cfd".name="DB/pgsql
0f40 2e 70 68 70 22 2f 3e 0a 20 20 20 20 20 20 3c 66 69 6c 65 20 72 6f 6c 65 3d 22 70 68 70 22 20 6d .php"/>.......<file.role="php".m
0f60 64 35 73 75 6d 3d 22 65 64 65 64 63 32 30 62 65 32 35 37 61 30 31 66 35 37 30 32 64 36 32 31 35 d5sum="ededc20be257a01f5702d6215
0f80 30 62 36 32 31 31 61 22 20 6e 61 6d 65 3d 22 44 42 2f 73 79 62 61 73 65 2e 70 68 70 22 2f 3e 0a 0b6211a".name="DB/sybase.php"/>.
0fa0 20 20 20 20 20 20 3c 66 69 6c 65 20 72 6f 6c 65 3d 22 70 68 70 22 20 6d 64 35 73 75 6d 3d 22 32 ......<file.role="php".md5sum="2
0fc0 37 33 37 64 66 63 37 30 39 33 34 34 61 32 65 37 30 65 61 64 61 65 37 39 35 39 32 61 39 37 62 22 737dfc709344a2e70eadae79592a97b"
0fe0 20 6e 61 6d 65 3d 22 44 42 2f 73 74 6f 72 61 67 65 2e 70 68 70 22 2f 3e 0a 20 20 20 20 20 20 3c .name="DB/storage.php"/>.......<
1000 66 69 6c 65 20 72 6f 6c 65 3d 22 70 68 70 22 20 6d 64 35 73 75 6d 3d 22 32 62 65 65 66 31 30 35 file.role="php".md5sum="2beef105
1020 37 34 32 38 65 65 61 61 64 66 64 66 62 36 39 35 64 30 37 65 61 37 61 38 22 20 6e 61 6d 65 3d 22 7428eeaadfdfb695d07ea7a8".name="
1040 44 42 2f 73 71 6c 69 74 65 2e 70 68 70 22 2f 3e 0a 20 20 20 20 20 20 3c 66 69 6c 65 20 72 6f 6c DB/sqlite.php"/>.......<file.rol
1060 65 3d 22 64 6f 63 22 20 6d 64 35 73 75 6d 3d 22 36 35 31 61 36 34 34 62 36 66 33 34 39 35 66 63 e="doc".md5sum="651a644b6f3495fc
1080 33 39 32 37 39 64 37 35 62 38 30 39 39 33 37 32 22 20 6e 61 6d 65 3d 22 64 6f 63 2f 49 44 45 41 39279d75b8099372".name="doc/IDEA
10a0 53 22 2f 3e 0a 20 20 20 20 20 20 3c 66 69 6c 65 20 72 6f 6c 65 3d 22 64 6f 63 22 20 6d 64 35 73 S"/>.......<file.role="doc".md5s
10c0 75 6d 3d 22 64 64 63 64 31 62 66 64 63 64 36 61 65 63 32 62 32 32 38 61 65 61 64 39 62 31 64 35 um="ddcd1bfdcd6aec2b228aead9b1d5
10e0 32 61 30 39 22 20 6e 61 6d 65 3d 22 64 6f 63 2f 4d 41 49 4e 54 41 49 4e 45 52 53 22 2f 3e 0a 20 2a09".name="doc/MAINTAINERS"/>..
1100 20 20 20 20 20 3c 66 69 6c 65 20 72 6f 6c 65 3d 22 64 6f 63 22 20 6d 64 35 73 75 6d 3d 22 63 39 .....<file.role="doc".md5sum="c9
1120 32 33 66 37 62 32 33 65 39 35 38 35 36 33 38 62 31 33 34 66 32 61 31 35 63 35 61 36 63 63 22 20 23f7b23e9585638b134f2a15c5a6cc".
1140 6e 61 6d 65 3d 22 64 6f 63 2f 53 54 41 54 55 53 22 2f 3e 0a 20 20 20 20 20 20 3c 66 69 6c 65 20 name="doc/STATUS"/>.......<file.
1160 72 6f 6c 65 3d 22 64 6f 63 22 20 6d 64 35 73 75 6d 3d 22 32 32 65 34 64 39 36 63 39 63 37 34 31 role="doc".md5sum="22e4d96c9c741
1180 65 37 66 32 37 34 34 66 36 63 36 63 61 61 65 65 32 34 36 22 20 6e 61 6d 65 3d 22 64 6f 63 2f 54 e7f2744f6c6caaee246".name="doc/T
11a0 45 53 54 45 52 53 22 2f 3e 0a 20 20 20 20 20 20 3c 66 69 6c 65 20 72 6f 6c 65 3d 22 74 65 73 74 ESTERS"/>.......<file.role="test
11c0 22 20 6d 64 35 73 75 6d 3d 22 64 65 35 36 32 36 34 36 64 66 62 37 34 64 62 61 64 32 34 66 30 65 ".md5sum="de562646dfb74dbad24f0e
11e0 39 36 30 37 65 38 66 31 64 62 22 20 6e 61 6d 65 3d 22 74 65 73 74 73 2f 64 62 5f 65 72 72 6f 72 9607e8f1db".name="tests/db_error
1200 2e 70 68 70 74 22 2f 3e 0a 20 20 20 20 20 20 3c 66 69 6c 65 20 72 6f 6c 65 3d 22 74 65 73 74 22 .phpt"/>.......<file.role="test"
1220 20 6d 64 35 73 75 6d 3d 22 62 33 66 38 30 35 61 61 32 63 38 38 33 62 65 32 38 35 36 33 30 65 64 .md5sum="b3f805aa2c883be285630ed
1240 66 62 38 64 61 33 66 32 39 22 20 6e 61 6d 65 3d 22 74 65 73 74 73 2f 64 62 5f 70 61 72 73 65 64 fb8da3f29".name="tests/db_parsed
1260 73 6e 2e 70 68 70 74 22 2f 3e 0a 20 20 20 20 20 20 3c 66 69 6c 65 20 72 6f 6c 65 3d 22 74 65 73 sn.phpt"/>.......<file.role="tes
1280 74 22 20 6d 64 35 73 75 6d 3d 22 31 64 32 39 30 38 65 61 63 32 36 39 62 62 34 65 32 39 63 61 62 t".md5sum="1d2908eac269bb4e29cab
12a0 62 39 66 38 63 33 34 39 65 33 38 22 20 6e 61 6d 65 3d 22 74 65 73 74 73 2f 64 62 5f 66 61 63 74 b9f8c349e38".name="tests/db_fact
12c0 6f 72 79 2e 70 68 70 74 22 2f 3e 0a 20 20 20 20 20 20 3c 66 69 6c 65 20 72 6f 6c 65 3d 22 74 65 ory.phpt"/>.......<file.role="te
12e0 73 74 22 20 6d 64 35 73 75 6d 3d 22 33 63 34 65 36 65 31 34 62 30 32 34 61 39 63 36 31 30 36 33 st".md5sum="3c4e6e14b024a9c61063
1300 38 64 33 33 63 32 63 65 39 64 34 38 22 20 6e 61 6d 65 3d 22 74 65 73 74 73 2f 64 62 5f 69 73 6d 8d33c2ce9d48".name="tests/db_ism
1320 61 6e 69 70 2e 70 68 70 74 22 2f 3e 0a 20 20 20 20 20 20 3c 66 69 6c 65 20 72 6f 6c 65 3d 22 74 anip.phpt"/>.......<file.role="t
1340 65 73 74 22 20 6d 64 35 73 75 6d 3d 22 35 36 62 33 32 32 35 39 31 30 34 30 38 39 34 63 61 66 62 est".md5sum="56b322591040894cafb
1360 64 36 65 34 32 62 39 66 65 36 39 33 63 22 20 6e 61 6d 65 3d 22 74 65 73 74 73 2f 64 62 5f 65 72 d6e42b9fe693c".name="tests/db_er
1380 72 6f 72 32 2e 70 68 70 74 22 2f 3e 0a 20 20 20 20 20 20 3c 66 69 6c 65 20 72 6f 6c 65 3d 22 74 ror2.phpt"/>.......<file.role="t
13a0 65 73 74 22 20 6d 64 35 73 75 6d 3d 22 37 38 31 30 35 33 30 37 66 66 35 32 30 63 64 32 33 38 37 est".md5sum="78105307ff520cd2387
13c0 39 63 37 66 66 62 62 32 39 35 64 38 38 22 20 6e 61 6d 65 3d 22 74 65 73 74 73 2f 65 72 72 6f 72 9c7ffbb295d88".name="tests/error
13e0 73 2e 69 6e 63 22 2f 3e 0a 20 20 20 20 20 20 3c 66 69 6c 65 20 72 6f 6c 65 3d 22 74 65 73 74 22 s.inc"/>.......<file.role="test"
1400 20 6d 64 35 73 75 6d 3d 22 35 63 64 65 35 35 30 66 34 37 32 37 64 31 61 63 65 31 35 65 64 35 30 .md5sum="5cde550f4727d1ace15ed50
1420 34 30 36 37 32 37 35 63 63 22 20 6e 61 6d 65 3d 22 74 65 73 74 73 2f 66 65 74 63 68 6d 6f 64 65 4067275cc".name="tests/fetchmode
1440 5f 6f 62 6a 65 63 74 2e 69 6e 63 22 2f 3e 0a 20 20 20 20 20 20 3c 66 69 6c 65 20 72 6f 6c 65 3d _object.inc"/>.......<file.role=
1460 22 74 65 73 74 22 20 6d 64 35 73 75 6d 3d 22 36 35 65 35 35 62 62 37 30 37 31 36 64 65 32 36 33 "test".md5sum="65e55bb70716de263
1480 65 33 65 65 32 66 66 30 39 62 64 33 36 38 33 22 20 6e 61 6d 65 3d 22 74 65 73 74 73 2f 66 65 74 e3ee2ff09bd3683".name="tests/fet
14a0 63 68 6d 6f 64 65 73 2e 69 6e 63 22 2f 3e 0a 20 20 20 20 20 20 3c 66 69 6c 65 20 72 6f 6c 65 3d chmodes.inc"/>.......<file.role=
14c0 22 74 65 73 74 22 20 6d 64 35 73 75 6d 3d 22 34 62 65 65 62 39 63 34 31 35 30 65 33 64 33 34 37 "test".md5sum="4beeb9c4150e3d347
14e0 65 39 37 64 66 38 33 61 62 37 32 36 33 38 61 22 20 6e 61 6d 65 3d 22 74 65 73 74 73 2f 66 65 74 e97df83ab72638a".name="tests/fet
1500 63 68 72 6f 77 2e 69 6e 63 22 2f 3e 0a 20 20 20 20 20 20 3c 66 69 6c 65 20 72 6f 6c 65 3d 22 74 chrow.inc"/>.......<file.role="t
1520 65 73 74 22 20 6d 64 35 73 75 6d 3d 22 31 65 62 66 63 36 33 38 37 33 38 63 64 64 32 33 64 66 39 est".md5sum="1ebfc638738cdd23df9
1540 35 36 61 37 37 34 62 33 31 39 66 30 36 22 20 6e 61 6d 65 3d 22 74 65 73 74 73 2f 69 6e 63 6c 75 56a774b319f06".name="tests/inclu
1560 64 65 2e 69 6e 63 22 2f 3e 0a 20 20 20 20 20 20 3c 66 69 6c 65 20 72 6f 6c 65 3d 22 74 65 73 74 de.inc"/>.......<file.role="test
1580 22 20 6d 64 35 73 75 6d 3d 22 32 34 62 63 39 32 64 66 61 38 34 32 38 32 39 37 65 64 39 62 62 63 ".md5sum="24bc92dfa8428297ed9bbc
15a0 36 31 37 39 61 39 31 35 36 36 22 20 6e 61 6d 65 3d 22 74 65 73 74 73 2f 6c 69 6d 69 74 2e 69 6e 6179a91566".name="tests/limit.in
15c0 63 22 2f 3e 0a 20 20 20 20 20 20 3c 66 69 6c 65 20 72 6f 6c 65 3d 22 74 65 73 74 22 20 6d 64 35 c"/>.......<file.role="test".md5
15e0 73 75 6d 3d 22 66 66 34 35 34 37 39 35 33 62 65 31 65 65 61 36 30 37 37 35 39 66 36 61 61 61 32 sum="ff4547953be1eea607759f6aaa2
1600 30 66 63 38 33 22 20 6e 61 6d 65 3d 22 74 65 73 74 73 2f 6e 75 6d 63 6f 6c 73 2e 69 6e 63 22 2f 0fc83".name="tests/numcols.inc"/
1620 3e 0a 20 20 20 20 20 20 3c 66 69 6c 65 20 72 6f 6c 65 3d 22 74 65 73 74 22 20 6d 64 35 73 75 6d >.......<file.role="test".md5sum
1640 3d 22 33 39 39 62 32 38 62 31 64 36 39 34 34 31 31 30 65 64 37 34 36 63 32 30 33 64 32 62 64 32 ="399b28b1d6944110ed746c203d2bd2
1660 36 66 22 20 6e 61 6d 65 3d 22 74 65 73 74 73 2f 6e 75 6d 72 6f 77 73 2e 69 6e 63 22 2f 3e 0a 20 6f".name="tests/numrows.inc"/>..
1680 20 20 20 20 20 3c 66 69 6c 65 20 72 6f 6c 65 3d 22 74 65 73 74 22 20 6d 64 35 73 75 6d 3d 22 32 .....<file.role="test".md5sum="2
16a0 38 30 62 38 36 62 62 63 31 33 33 64 63 62 31 66 32 35 37 63 35 61 32 64 65 32 62 66 63 33 32 22 80b86bbc133dcb1f257c5a2de2bfc32"
16c0 20 6e 61 6d 65 3d 22 74 65 73 74 73 2f 70 72 65 70 65 78 65 2e 69 6e 63 22 2f 3e 0a 20 20 20 20 .name="tests/prepexe.inc"/>.....
16e0 20 20 3c 66 69 6c 65 20 72 6f 6c 65 3d 22 74 65 73 74 22 20 6d 64 35 73 75 6d 3d 22 33 61 37 39 ..<file.role="test".md5sum="3a79
1700 62 35 61 66 64 63 38 38 38 37 36 33 39 35 32 32 37 35 31 66 36 34 33 30 31 36 39 64 22 20 6e 61 b5afdc8887639522751f6430169d".na
1720 6d 65 3d 22 74 65 73 74 73 2f 73 65 71 75 65 6e 63 65 73 2e 69 6e 63 22 2f 3e 0a 20 20 20 20 20 me="tests/sequences.inc"/>......
1740 20 3c 66 69 6c 65 20 72 6f 6c 65 3d 22 74 65 73 74 22 20 6d 64 35 73 75 6d 3d 22 35 38 37 66 31 .<file.role="test".md5sum="587f1
1760 62 35 31 37 35 39 61 36 35 30 61 31 62 63 65 35 33 33 66 34 65 62 39 35 31 36 61 22 20 6e 61 6d b51759a650a1bce533f4eb9516a".nam
1780 65 3d 22 74 65 73 74 73 2f 73 69 6d 70 6c 65 71 75 65 72 79 2e 69 6e 63 22 2f 3e 0a 20 20 20 20 e="tests/simplequery.inc"/>.....
17a0 20 20 3c 66 69 6c 65 20 72 6f 6c 65 3d 22 74 65 73 74 22 20 6d 64 35 73 75 6d 3d 22 31 33 62 34 ..<file.role="test".md5sum="13b4
17c0 64 64 65 38 65 62 30 66 36 34 38 66 65 31 66 36 34 62 33 30 36 66 39 61 34 32 63 64 22 20 6e 61 dde8eb0f648fe1f64b306f9a42cd".na
17e0 6d 65 3d 22 74 65 73 74 73 2f 74 61 62 6c 65 69 6e 66 6f 2e 69 6e 63 22 2f 3e 0a 20 20 20 20 20 me="tests/tableinfo.inc"/>......
1800 20 3c 66 69 6c 65 20 72 6f 6c 65 3d 22 74 65 73 74 22 20 6d 64 35 73 75 6d 3d 22 66 30 30 34 32 .<file.role="test".md5sum="f0042
1820 31 37 63 32 62 39 30 38 63 32 38 65 34 66 63 66 34 63 39 65 33 66 30 38 64 30 32 22 20 6e 61 6d 17c2b908c28e4fcf4c9e3f08d02".nam
1840 65 3d 22 74 65 73 74 73 2f 74 72 61 6e 73 61 63 74 69 6f 6e 73 2e 69 6e 63 22 2f 3e 0a 20 20 20 e="tests/transactions.inc"/>....
1860 20 20 20 3c 66 69 6c 65 20 72 6f 6c 65 3d 22 74 65 73 74 22 20 6d 64 35 73 75 6d 3d 22 33 65 39 ...<file.role="test".md5sum="3e9
1880 64 62 37 65 32 37 35 63 34 33 63 31 35 32 31 34 62 33 65 36 34 66 38 65 39 34 39 36 66 22 20 6e db7e275c43c15214b3e64f8e9496f".n
18a0 61 6d 65 3d 22 74 65 73 74 73 2f 64 72 69 76 65 72 2f 30 31 63 6f 6e 6e 65 63 74 2e 70 68 70 74 ame="tests/driver/01connect.phpt
18c0 22 2f 3e 0a 20 20 20 20 20 20 3c 66 69 6c 65 20 72 6f 6c 65 3d 22 74 65 73 74 22 20 6d 64 35 73 "/>.......<file.role="test".md5s
18e0 75 6d 3d 22 61 39 32 31 65 36 31 66 33 64 65 35 32 30 61 62 63 61 37 33 62 61 65 32 66 39 63 37 um="a921e61f3de520abca73bae2f9c7
1900 39 63 31 31 22 20 6e 61 6d 65 3d 22 74 65 73 74 73 2f 64 72 69 76 65 72 2f 30 32 66 65 74 63 68 9c11".name="tests/driver/02fetch
1920 2e 70 68 70 74 22 2f 3e 0a 20 20 20 20 20 20 3c 66 69 6c 65 20 72 6f 6c 65 3d 22 74 65 73 74 22 .phpt"/>.......<file.role="test"
1940 20 6d 64 35 73 75 6d 3d 22 35 36 32 39 34 63 33 62 31 34 33 64 61 38 36 31 64 36 33 63 64 30 30 .md5sum="56294c3b143da861d63cd00
1960 61 31 62 36 62 66 66 34 34 22 20 6e 61 6d 65 3d 22 74 65 73 74 73 2f 64 72 69 76 65 72 2f 30 33 a1b6bff44".name="tests/driver/03
1980 73 69 6d 70 6c 65 71 75 65 72 79 2e 70 68 70 74 22 2f 3e 0a 20 20 20 20 20 20 3c 66 69 6c 65 20 simplequery.phpt"/>.......<file.
19a0 72 6f 6c 65 3d 22 74 65 73 74 22 20 6d 64 35 73 75 6d 3d 22 64 34 32 62 31 63 66 38 66 61 37 36 role="test".md5sum="d42b1cf8fa76
19c0 65 39 36 66 61 31 39 62 62 61 62 65 34 31 64 63 64 63 37 61 22 20 6e 61 6d 65 3d 22 74 65 73 74 e96fa19bbabe41dcdc7a".name="test
19e0 73 2f 64 72 69 76 65 72 2f 30 34 6e 75 6d 63 6f 6c 73 2e 70 68 70 74 22 2f 3e 0a 20 20 20 20 20 s/driver/04numcols.phpt"/>......
1a00 20 3c 66 69 6c 65 20 72 6f 6c 65 3d 22 74 65 73 74 22 20 6d 64 35 73 75 6d 3d 22 37 32 66 66 39 .<file.role="test".md5sum="72ff9
1a20 31 61 65 32 61 33 65 62 39 34 65 30 33 66 66 30 66 31 39 61 61 66 62 38 32 30 30 22 20 6e 61 6d 1ae2a3eb94e03ff0f19aafb8200".nam
1a40 65 3d 22 74 65 73 74 73 2f 64 72 69 76 65 72 2f 30 35 73 65 71 75 65 6e 63 65 73 2e 70 68 70 74 e="tests/driver/05sequences.phpt
1a60 22 2f 3e 0a 20 20 20 20 20 20 3c 66 69 6c 65 20 72 6f 6c 65 3d 22 74 65 73 74 22 20 6d 64 35 73 "/>.......<file.role="test".md5s
1a80 75 6d 3d 22 30 63 34 65 33 31 39 34 31 38 35 61 31 36 62 35 34 66 63 62 39 36 35 37 38 31 32 39 um="0c4e3194185a16b54fcb96578129
1aa0 66 31 32 65 22 20 6e 61 6d 65 3d 22 74 65 73 74 73 2f 64 72 69 76 65 72 2f 30 36 70 72 65 70 65 f12e".name="tests/driver/06prepe
1ac0 78 65 63 2e 70 68 70 74 22 2f 3e 0a 20 20 20 20 20 20 3c 66 69 6c 65 20 72 6f 6c 65 3d 22 74 65 xec.phpt"/>.......<file.role="te
1ae0 73 74 22 20 6d 64 35 73 75 6d 3d 22 63 32 64 38 33 33 32 32 33 32 33 61 31 63 32 62 36 31 38 32 st".md5sum="c2d83322323a1c2b6182
1b00 66 31 63 33 32 37 30 39 30 61 37 33 22 20 6e 61 6d 65 3d 22 74 65 73 74 73 2f 64 72 69 76 65 72 f1c327090a73".name="tests/driver
1b20 2f 30 38 61 66 66 65 63 74 65 64 72 6f 77 73 2e 70 68 70 74 22 2f 3e 0a 20 20 20 20 20 20 3c 66 /08affectedrows.phpt"/>.......<f
1b40 69 6c 65 20 72 6f 6c 65 3d 22 74 65 73 74 22 20 6d 64 35 73 75 6d 3d 22 39 66 35 33 37 61 31 39 ile.role="test".md5sum="9f537a19
1b60 35 30 61 37 66 38 31 33 36 64 32 62 64 30 34 32 33 36 66 65 31 33 65 35 22 20 6e 61 6d 65 3d 22 50a7f8136d2bd04236fe13e5".name="
1b80 74 65 73 74 73 2f 64 72 69 76 65 72 2f 30 39 6e 75 6d 72 6f 77 73 2e 70 68 70 74 22 2f 3e 0a 20 tests/driver/09numrows.phpt"/>..
1ba0 20 20 20 20 20 3c 66 69 6c 65 20 72 6f 6c 65 3d 22 74 65 73 74 22 20 6d 64 35 73 75 6d 3d 22 31 .....<file.role="test".md5sum="1
1bc0 64 66 33 64 66 63 38 66 64 63 34 37 39 66 66 35 66 35 30 66 31 30 30 35 33 39 37 32 65 32 65 22 df3dfc8fdc479ff5f50f10053972e2e"
1be0 20 6e 61 6d 65 3d 22 74 65 73 74 73 2f 64 72 69 76 65 72 2f 31 30 65 72 72 6f 72 6d 61 70 2e 70 .name="tests/driver/10errormap.p
1c00 68 70 74 22 2f 3e 0a 20 20 20 20 20 20 3c 66 69 6c 65 20 72 6f 6c 65 3d 22 74 65 73 74 22 20 6d hpt"/>.......<file.role="test".m
1c20 64 35 73 75 6d 3d 22 32 34 33 34 38 31 61 35 32 32 34 65 37 38 61 34 64 61 63 31 65 30 39 36 63 d5sum="243481a5224e78a4dac1e096c
1c40 38 39 35 37 63 32 38 22 20 6e 61 6d 65 3d 22 74 65 73 74 73 2f 64 72 69 76 65 72 2f 31 33 6c 69 8957c28".name="tests/driver/13li
1c60 6d 69 74 2e 70 68 70 74 22 2f 3e 0a 20 20 20 20 20 20 3c 66 69 6c 65 20 72 6f 6c 65 3d 22 74 65 mit.phpt"/>.......<file.role="te
1c80 73 74 22 20 6d 64 35 73 75 6d 3d 22 37 38 38 37 62 30 64 34 37 39 36 66 64 35 38 38 37 39 61 36 st".md5sum="7887b0d4796fd58879a6
1ca0 32 38 31 64 34 39 61 66 61 36 38 31 22 20 6e 61 6d 65 3d 22 74 65 73 74 73 2f 64 72 69 76 65 72 281d49afa681".name="tests/driver
1cc0 2f 31 34 66 65 74 63 68 6d 6f 64 65 5f 6f 62 6a 65 63 74 2e 70 68 70 74 22 2f 3e 0a 20 20 20 20 /14fetchmode_object.phpt"/>.....
1ce0 20 20 3c 66 69 6c 65 20 72 6f 6c 65 3d 22 74 65 73 74 22 20 6d 64 35 73 75 6d 3d 22 65 61 30 64 ..<file.role="test".md5sum="ea0d
1d00 39 33 32 35 37 31 61 36 63 32 31 61 32 62 65 63 39 31 38 33 39 38 33 66 64 37 62 61 22 20 6e 61 932571a6c21a2bec9183983fd7ba".na
1d20 6d 65 3d 22 74 65 73 74 73 2f 64 72 69 76 65 72 2f 31 35 71 75 6f 74 65 2e 70 68 70 74 22 2f 3e me="tests/driver/15quote.phpt"/>
1d40 0a 20 20 20 20 20 20 3c 66 69 6c 65 20 72 6f 6c 65 3d 22 74 65 73 74 22 20 6d 64 35 73 75 6d 3d .......<file.role="test".md5sum=
1d60 22 36 65 61 34 32 34 65 34 62 63 38 63 33 32 33 30 65 65 34 36 65 31 62 33 31 36 34 31 34 61 32 "6ea424e4bc8c3230ee46e1b316414a2
1d80 62 22 20 6e 61 6d 65 3d 22 74 65 73 74 73 2f 64 72 69 76 65 72 2f 62 75 67 32 32 33 32 38 2e 70 b".name="tests/driver/bug22328.p
1da0 68 70 74 22 2f 3e 0a 20 20 20 20 20 20 3c 66 69 6c 65 20 72 6f 6c 65 3d 22 74 65 73 74 22 20 6d hpt"/>.......<file.role="test".m
1dc0 64 35 73 75 6d 3d 22 65 64 37 37 31 30 33 36 65 37 34 34 62 64 63 64 30 34 65 64 36 30 39 62 30 d5sum="ed771036e744bdcd04ed609b0
1de0 34 37 37 66 36 65 35 22 20 6e 61 6d 65 3d 22 74 65 73 74 73 2f 64 72 69 76 65 72 2f 63 6f 6e 6e 477f6e5".name="tests/driver/conn
1e00 65 63 74 2e 69 6e 63 22 2f 3e 0a 20 20 20 20 20 20 3c 66 69 6c 65 20 72 6f 6c 65 3d 22 74 65 73 ect.inc"/>.......<file.role="tes
1e20 74 22 20 6d 64 35 73 75 6d 3d 22 34 64 34 65 63 63 37 34 32 36 63 36 38 63 62 61 64 62 63 35 36 t".md5sum="4d4ecc7426c68cbadbc56
1e40 37 34 31 37 36 39 63 63 63 35 31 22 20 6e 61 6d 65 3d 22 74 65 73 74 73 2f 64 72 69 76 65 72 2f 741769ccc51".name="tests/driver/
1e60 6d 6b 74 61 62 6c 65 2e 69 6e 63 22 2f 3e 0a 20 20 20 20 20 20 3c 66 69 6c 65 20 72 6f 6c 65 3d mktable.inc"/>.......<file.role=
1e80 22 74 65 73 74 22 20 6d 64 35 73 75 6d 3d 22 37 30 64 63 63 38 63 33 62 33 38 32 34 33 63 38 61 "test".md5sum="70dcc8c3b38243c8a
1ea0 34 39 63 33 38 32 65 34 31 36 33 65 61 30 66 22 20 6e 61 6d 65 3d 22 74 65 73 74 73 2f 64 72 69 49c382e4163ea0f".name="tests/dri
1ec0 76 65 72 2f 73 65 74 75 70 2e 69 6e 63 22 2f 3e 0a 20 20 20 20 20 20 3c 66 69 6c 65 20 72 6f 6c ver/setup.inc"/>.......<file.rol
1ee0 65 3d 22 74 65 73 74 22 20 6d 64 35 73 75 6d 3d 22 61 65 30 64 37 34 62 63 61 61 39 36 61 38 38 e="test".md5sum="ae0d74bcaa96a88
1f00 65 34 36 33 65 61 34 35 63 64 34 30 34 61 31 33 39 22 20 6e 61 6d 65 3d 22 74 65 73 74 73 2f 64 e463ea45cd404a139".name="tests/d
1f20 72 69 76 65 72 2f 73 6b 69 70 69 66 2e 69 6e 63 22 2f 3e 0a 20 20 20 20 3c 2f 66 69 6c 65 6c 69 river/skipif.inc"/>.....</fileli
1f40 73 74 3e 0a 20 20 3c 2f 72 65 6c 65 61 73 65 3e 0a 3c 2f 70 61 63 6b 61 67 65 3e 0a 00 00 00 00 st>...</release>.</package>.....
1f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2000 44 42 2d 31 2e 35 2e 30 52 43 31 2f 44 42 2e 70 68 70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 DB-1.5.0RC1/DB.php..............
2020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2060 00 00 00 00 31 30 30 36 34 34 20 00 20 20 20 37 36 34 20 00 20 20 20 31 34 34 20 00 20 20 20 20 ....100644.....764.....144......
2080 20 20 37 30 37 35 35 20 20 37 36 37 31 36 37 36 36 35 33 20 20 20 36 35 33 35 20 00 00 00 00 00 ..70755..7671676653...6535......
20a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
20c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
20e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
21a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
21c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
21e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2200 3c 3f 70 68 70 0a 2f 2a 20 76 69 6d 3a 20 73 65 74 20 65 78 70 61 6e 64 74 61 62 20 74 61 62 73 <?php./*.vim:.set.expandtab.tabs
2220 74 6f 70 3d 34 20 73 68 69 66 74 77 69 64 74 68 3d 34 20 66 6f 6c 64 6d 65 74 68 6f 64 3d 6d 61 top=4.shiftwidth=4.foldmethod=ma
2240 72 6b 65 72 3a 20 2a 2f 0a 2f 2f 20 2b 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d rker:.*/.//.+-------------------
2260 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
2280 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2b 0a 2f 2f 20 7c 20 50 48 50 20 56 65 -------------------+.//.|.PHP.Ve
22a0 72 73 69 6f 6e 20 34 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 rsion.4.........................
22c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c ...............................|
22e0 0a 2f 2f 20 2b 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d .//.+---------------------------
2300 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
2320 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2b 0a 2f 2f 20 7c 20 43 6f 70 79 72 69 67 68 74 20 28 63 29 20 -----------+.//.|.Copyright.(c).
2340 31 39 39 37 2d 32 30 30 33 20 54 68 65 20 50 48 50 20 47 72 6f 75 70 20 20 20 20 20 20 20 20 20 1997-2003.The.PHP.Group.........
2360 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 2f 2f 20 2b 2d 2d 2d .......................|.//.+---
2380 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
23a0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
23c0 2d 2d 2d 2b 0a 2f 2f 20 7c 20 54 68 69 73 20 73 6f 75 72 63 65 20 66 69 6c 65 20 69 73 20 73 75 ---+.//.|.This.source.file.is.su
23e0 62 6a 65 63 74 20 74 6f 20 76 65 72 73 69 6f 6e 20 32 2e 30 32 20 6f 66 20 74 68 65 20 50 48 50 bject.to.version.2.02.of.the.PHP
2400 20 6c 69 63 65 6e 73 65 2c 20 20 20 20 20 20 7c 0a 2f 2f 20 7c 20 74 68 61 74 20 69 73 20 62 75 .license,......|.//.|.that.is.bu
2420 6e 64 6c 65 64 20 77 69 74 68 20 74 68 69 73 20 70 61 63 6b 61 67 65 20 69 6e 20 74 68 65 20 66 ndled.with.this.package.in.the.f
2440 69 6c 65 20 4c 49 43 45 4e 53 45 2c 20 61 6e 64 20 69 73 20 20 20 20 20 20 20 20 7c 0a 2f 2f 20 ile.LICENSE,.and.is........|.//.
2460 7c 20 61 76 61 69 6c 61 62 6c 65 20 61 74 20 74 68 72 6f 75 67 68 20 74 68 65 20 77 6f 72 6c 64 |.available.at.through.the.world
2480 2d 77 69 64 65 2d 77 65 62 20 61 74 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -wide-web.at....................
24a0 20 20 20 20 20 20 20 7c 0a 2f 2f 20 7c 20 68 74 74 70 3a 2f 2f 77 77 77 2e 70 68 70 2e 6e 65 74 .......|.//.|.http://www.php.net
24c0 2f 6c 69 63 65 6e 73 65 2f 32 5f 30 32 2e 74 78 74 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 /license/2_02.txt...............
24e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 2f 2f 20 7c 20 49 66 20 79 6f 75 ...................|.//.|.If.you
2500 20 64 69 64 20 6e 6f 74 20 72 65 63 65 69 76 65 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 50 .did.not.receive.a.copy.of.the.P
2520 48 50 20 6c 69 63 65 6e 73 65 20 61 6e 64 20 61 72 65 20 75 6e 61 62 6c 65 20 74 6f 20 20 20 7c HP.license.and.are.unable.to...|
2540 0a 2f 2f 20 7c 20 6f 62 74 61 69 6e 20 69 74 20 74 68 72 6f 75 67 68 20 74 68 65 20 77 6f 72 6c .//.|.obtain.it.through.the.worl
2560 64 2d 77 69 64 65 2d 77 65 62 2c 20 70 6c 65 61 73 65 20 73 65 6e 64 20 61 20 6e 6f 74 65 20 74 d-wide-web,.please.send.a.note.t
2580 6f 20 20 20 20 20 20 20 20 20 20 7c 0a 2f 2f 20 7c 20 6c 69 63 65 6e 73 65 40 70 68 70 2e 6e 65 o..........|.//.|.license@php.ne
25a0 74 20 73 6f 20 77 65 20 63 61 6e 20 6d 61 69 6c 20 79 6f 75 20 61 20 63 6f 70 79 20 69 6d 6d 65 t.so.we.can.mail.you.a.copy.imme
25c0 64 69 61 74 65 6c 79 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 2f 2f 20 2b 2d 2d 2d diately................|.//.+---
25e0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
2600 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
2620 2d 2d 2d 2b 0a 2f 2f 20 7c 20 41 75 74 68 6f 72 73 3a 20 53 74 69 67 20 42 61 6b 6b 65 6e 20 3c ---+.//.|.Authors:.Stig.Bakken.<
2640 73 73 62 40 70 68 70 2e 6e 65 74 3e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ssb@php.net>....................
2660 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 2f 2f 20 7c 20 20 20 20 20 20 20 20 20 20 54 ...............|.//.|..........T
2680 6f 6d 61 73 20 56 2e 56 2e 43 6f 78 20 3c 63 6f 78 40 69 64 65 63 6e 65 74 2e 63 6f 6d 3e 20 20 omas.V.V.Cox.<cox@idecnet.com>..
26a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 2f 2f 20 ...........................|.//.
26c0 2b 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d +-------------------------------
26e0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
2700 2d 2d 2d 2d 2d 2d 2d 2b 0a 2f 2f 0a 2f 2f 20 24 49 64 3a 20 44 42 2e 70 68 70 2c 76 20 31 2e 32 -------+.//.//.$Id:.DB.php,v.1.2
2720 32 20 32 30 30 33 2f 30 36 2f 31 31 20 31 39 3a 30 36 3a 31 39 20 63 6f 78 20 45 78 70 20 24 0a 2.2003/06/11.19:06:19.cox.Exp.$.
2740 2f 2f 0a 2f 2f 20 44 61 74 61 62 61 73 65 20 69 6e 64 65 70 65 6e 64 65 6e 74 20 71 75 65 72 79 //.//.Database.independent.query
2760 20 69 6e 74 65 72 66 61 63 65 2e 0a 2f 2f 0a 0a 72 65 71 75 69 72 65 5f 6f 6e 63 65 20 22 50 45 .interface..//..require_once."PE
2780 41 52 2e 70 68 70 22 3b 0a 0a 2f 2f 20 7b 7b 7b 20 63 6f 6e 73 74 61 6e 74 73 0a 2f 2f 20 7b 7b AR.php";..//.{{{.constants.//.{{
27a0 7b 20 65 72 72 6f 72 20 63 6f 64 65 73 0a 2f 2a 0a 20 2a 20 54 68 65 20 6d 65 74 68 6f 64 20 6d {.error.codes./*..*.The.method.m
27c0 61 70 45 72 72 6f 72 43 6f 64 65 20 69 6e 20 65 61 63 68 20 44 42 5f 64 62 74 79 70 65 20 69 6d apErrorCode.in.each.DB_dbtype.im
27e0 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 20 6d 61 70 73 0a 20 2a 20 6e 61 74 69 76 65 20 65 72 72 6f plementation.maps..*.native.erro
2800 72 20 63 6f 64 65 73 20 74 6f 20 6f 6e 65 20 6f 66 20 74 68 65 73 65 2e 0a 20 2a 0a 20 2a 20 49 r.codes.to.one.of.these...*..*.I
2820 66 20 79 6f 75 20 61 64 64 20 61 6e 20 65 72 72 6f 72 20 63 6f 64 65 20 68 65 72 65 2c 20 6d 61 f.you.add.an.error.code.here,.ma
2840 6b 65 20 73 75 72 65 20 79 6f 75 20 61 6c 73 6f 20 61 64 64 20 61 20 74 65 78 74 75 61 6c 0a 20 ke.sure.you.also.add.a.textual..
2860 2a 20 76 65 72 73 69 6f 6e 20 6f 66 20 69 74 20 69 6e 20 44 42 3a 3a 65 72 72 6f 72 4d 65 73 73 *.version.of.it.in.DB::errorMess
2880 61 67 65 28 29 2e 0a 20 2a 2f 0a 0a 64 65 66 69 6e 65 28 22 44 42 5f 4f 4b 22 2c 20 20 20 20 20 age()...*/..define("DB_OK",.....
28a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 31 29 3b 0a 64 65 66 69 6e 65 28 22 ....................1);.define("
28c0 44 42 5f 45 52 52 4f 52 22 2c 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2d DB_ERROR",.....................-
28e0 31 29 3b 0a 64 65 66 69 6e 65 28 22 44 42 5f 45 52 52 4f 52 5f 53 59 4e 54 41 58 22 2c 20 20 20 1);.define("DB_ERROR_SYNTAX",...
2900 20 20 20 20 20 20 20 20 20 20 20 2d 32 29 3b 0a 64 65 66 69 6e 65 28 22 44 42 5f 45 52 52 4f 52 ...........-2);.define("DB_ERROR
2920 5f 43 4f 4e 53 54 52 41 49 4e 54 22 2c 20 20 20 20 20 20 20 20 20 20 2d 33 29 3b 0a 64 65 66 69 _CONSTRAINT",..........-3);.defi
2940 6e 65 28 22 44 42 5f 45 52 52 4f 52 5f 4e 4f 54 5f 46 4f 55 4e 44 22 2c 20 20 20 20 20 20 20 20 ne("DB_ERROR_NOT_FOUND",........
2960 20 20 20 2d 34 29 3b 0a 64 65 66 69 6e 65 28 22 44 42 5f 45 52 52 4f 52 5f 41 4c 52 45 41 44 59 ...-4);.define("DB_ERROR_ALREADY
2980 5f 45 58 49 53 54 53 22 2c 20 20 20 20 20 20 2d 35 29 3b 0a 64 65 66 69 6e 65 28 22 44 42 5f 45 _EXISTS",......-5);.define("DB_E
29a0 52 52 4f 52 5f 55 4e 53 55 50 50 4f 52 54 45 44 22 2c 20 20 20 20 20 20 20 20 20 2d 36 29 3b 0a RROR_UNSUPPORTED",.........-6);.
29c0 64 65 66 69 6e 65 28 22 44 42 5f 45 52 52 4f 52 5f 4d 49 53 4d 41 54 43 48 22 2c 20 20 20 20 20 define("DB_ERROR_MISMATCH",.....
29e0 20 20 20 20 20 20 20 2d 37 29 3b 0a 64 65 66 69 6e 65 28 22 44 42 5f 45 52 52 4f 52 5f 49 4e 56 .......-7);.define("DB_ERROR_INV
2a00 41 4c 49 44 22 2c 20 20 20 20 20 20 20 20 20 20 20 20 20 2d 38 29 3b 0a 64 65 66 69 6e 65 28 22 ALID",.............-8);.define("
2a20 44 42 5f 45 52 52 4f 52 5f 4e 4f 54 5f 43 41 50 41 42 4c 45 22 2c 20 20 20 20 20 20 20 20 20 2d DB_ERROR_NOT_CAPABLE",.........-
2a40 39 29 3b 0a 64 65 66 69 6e 65 28 22 44 42 5f 45 52 52 4f 52 5f 54 52 55 4e 43 41 54 45 44 22 2c 9);.define("DB_ERROR_TRUNCATED",
2a60 20 20 20 20 20 20 20 20 20 20 2d 31 30 29 3b 0a 64 65 66 69 6e 65 28 22 44 42 5f 45 52 52 4f 52 ..........-10);.define("DB_ERROR
2a80 5f 49 4e 56 41 4c 49 44 5f 4e 55 4d 42 45 52 22 2c 20 20 20 20 20 2d 31 31 29 3b 0a 64 65 66 69 _INVALID_NUMBER",.....-11);.defi
2aa0 6e 65 28 22 44 42 5f 45 52 52 4f 52 5f 49 4e 56 41 4c 49 44 5f 44 41 54 45 22 2c 20 20 20 20 20 ne("DB_ERROR_INVALID_DATE",.....
2ac0 20 20 2d 31 32 29 3b 0a 64 65 66 69 6e 65 28 22 44 42 5f 45 52 52 4f 52 5f 44 49 56 5a 45 52 4f ..-12);.define("DB_ERROR_DIVZERO
2ae0 22 2c 20 20 20 20 20 20 20 20 20 20 20 20 2d 31 33 29 3b 0a 64 65 66 69 6e 65 28 22 44 42 5f 45 ",............-13);.define("DB_E
2b00 52 52 4f 52 5f 4e 4f 44 42 53 45 4c 45 43 54 45 44 22 2c 20 20 20 20 20 20 20 2d 31 34 29 3b 0a RROR_NODBSELECTED",.......-14);.
2b20 64 65 66 69 6e 65 28 22 44 42 5f 45 52 52 4f 52 5f 43 41 4e 4e 4f 54 5f 43 52 45 41 54 45 22 2c define("DB_ERROR_CANNOT_CREATE",
2b40 20 20 20 20 20 20 2d 31 35 29 3b 0a 64 65 66 69 6e 65 28 22 44 42 5f 45 52 52 4f 52 5f 43 41 4e ......-15);.define("DB_ERROR_CAN
2b60 4e 4f 54 5f 44 45 4c 45 54 45 22 2c 20 20 20 20 20 20 2d 31 36 29 3b 0a 64 65 66 69 6e 65 28 22 NOT_DELETE",......-16);.define("
2b80 44 42 5f 45 52 52 4f 52 5f 43 41 4e 4e 4f 54 5f 44 52 4f 50 22 2c 20 20 20 20 20 20 20 20 2d 31 DB_ERROR_CANNOT_DROP",........-1
2ba0 37 29 3b 0a 64 65 66 69 6e 65 28 22 44 42 5f 45 52 52 4f 52 5f 4e 4f 53 55 43 48 54 41 42 4c 45 7);.define("DB_ERROR_NOSUCHTABLE
2bc0 22 2c 20 20 20 20 20 20 20 20 2d 31 38 29 3b 0a 64 65 66 69 6e 65 28 22 44 42 5f 45 52 52 4f 52 ",........-18);.define("DB_ERROR
2be0 5f 4e 4f 53 55 43 48 46 49 45 4c 44 22 2c 20 20 20 20 20 20 20 20 2d 31 39 29 3b 0a 64 65 66 69 _NOSUCHFIELD",........-19);.defi
2c00 6e 65 28 22 44 42 5f 45 52 52 4f 52 5f 4e 45 45 44 5f 4d 4f 52 45 5f 44 41 54 41 22 2c 20 20 20 ne("DB_ERROR_NEED_MORE_DATA",...
2c20 20 20 2d 32 30 29 3b 0a 64 65 66 69 6e 65 28 22 44 42 5f 45 52 52 4f 52 5f 4e 4f 54 5f 4c 4f 43 ..-20);.define("DB_ERROR_NOT_LOC
2c40 4b 45 44 22 2c 20 20 20 20 20 20 20 20 20 2d 32 31 29 3b 0a 64 65 66 69 6e 65 28 22 44 42 5f 45 KED",.........-21);.define("DB_E
2c60 52 52 4f 52 5f 56 41 4c 55 45 5f 43 4f 55 4e 54 5f 4f 4e 5f 52 4f 57 22 2c 20 2d 32 32 29 3b 0a RROR_VALUE_COUNT_ON_ROW",.-22);.
2c80 64 65 66 69 6e 65 28 22 44 42 5f 45 52 52 4f 52 5f 49 4e 56 41 4c 49 44 5f 44 53 4e 22 2c 20 20 define("DB_ERROR_INVALID_DSN",..
2ca0 20 20 20 20 20 20 2d 32 33 29 3b 0a 64 65 66 69 6e 65 28 22 44 42 5f 45 52 52 4f 52 5f 43 4f 4e ......-23);.define("DB_ERROR_CON
2cc0 4e 45 43 54 5f 46 41 49 4c 45 44 22 2c 20 20 20 20 20 2d 32 34 29 3b 0a 64 65 66 69 6e 65 28 22 NECT_FAILED",.....-24);.define("
2ce0 44 42 5f 45 52 52 4f 52 5f 45 58 54 45 4e 53 49 4f 4e 5f 4e 4f 54 5f 46 4f 55 4e 44 22 2c 2d 32 DB_ERROR_EXTENSION_NOT_FOUND",-2
2d00 35 29 3b 0a 64 65 66 69 6e 65 28 22 44 42 5f 45 52 52 4f 52 5f 41 43 43 45 53 53 5f 56 49 4f 4c 5);.define("DB_ERROR_ACCESS_VIOL
2d20 41 54 49 4f 4e 22 2c 20 20 20 2d 32 36 29 3b 0a 64 65 66 69 6e 65 28 22 44 42 5f 45 52 52 4f 52 ATION",...-26);.define("DB_ERROR
2d40 5f 4e 4f 53 55 43 48 44 42 22 2c 20 20 20 20 20 20 20 20 20 20 20 2d 32 37 29 3b 0a 0a 2f 2f 20 _NOSUCHDB",...........-27);..//.
2d60 7d 7d 7d 0a 2f 2f 20 7b 7b 7b 20 77 61 72 6e 69 6e 67 20 63 6f 64 65 73 0a 2f 2a 0a 20 2a 20 57 }}}.//.{{{.warning.codes./*..*.W
2d80 61 72 6e 69 6e 67 73 20 61 72 65 20 6e 6f 74 20 64 65 74 65 63 74 65 64 20 61 73 20 65 72 72 6f arnings.are.not.detected.as.erro
2da0 72 73 20 62 79 20 44 42 3a 3a 69 73 45 72 72 6f 72 28 29 2c 20 61 6e 64 20 61 72 65 20 6e 6f 74 rs.by.DB::isError(),.and.are.not
2dc0 0a 20 2a 20 66 61 74 61 6c 2e 20 20 59 6f 75 20 63 61 6e 20 64 65 74 65 63 74 20 77 68 65 74 68 ..*.fatal...You.can.detect.wheth
2de0 65 72 20 61 6e 20 65 72 72 6f 72 20 69 73 20 69 6e 20 66 61 63 74 20 61 20 77 61 72 6e 69 6e 67 er.an.error.is.in.fact.a.warning
2e00 20 77 69 74 68 0a 20 2a 20 44 42 3a 3a 69 73 57 61 72 6e 69 6e 67 28 29 2e 0a 20 2a 0a 20 2a 20 .with..*.DB::isWarning()...*..*.
2e20 40 64 65 70 72 65 63 61 74 65 64 0a 20 2a 2f 0a 0a 64 65 66 69 6e 65 28 27 44 42 5f 57 41 52 4e @deprecated..*/..define('DB_WARN
2e40 49 4e 47 27 2c 20 20 20 20 20 20 20 20 20 20 20 2d 31 30 30 30 29 3b 0a 64 65 66 69 6e 65 28 27 ING',...........-1000);.define('
2e60 44 42 5f 57 41 52 4e 49 4e 47 5f 52 45 41 44 5f 4f 4e 4c 59 27 2c 20 2d 31 30 30 31 29 3b 0a 0a DB_WARNING_READ_ONLY',.-1001);..
2e80 2f 2f 20 7d 7d 7d 0a 2f 2f 20 7b 7b 7b 20 70 72 65 70 61 72 65 64 20 73 74 61 74 65 6d 65 6e 74 //.}}}.//.{{{.prepared.statement
2ea0 2d 72 65 6c 61 74 65 64 0a 2f 2a 0a 20 2a 20 54 68 65 73 65 20 63 6f 6e 73 74 61 6e 74 73 20 61 -related./*..*.These.constants.a
2ec0 72 65 20 75 73 65 64 20 77 68 65 6e 20 73 74 6f 72 69 6e 67 20 69 6e 66 6f 72 6d 61 74 69 6f 6e re.used.when.storing.information
2ee0 20 61 62 6f 75 74 20 70 72 65 70 61 72 65 64 0a 20 2a 20 73 74 61 74 65 6d 65 6e 74 73 20 28 75 .about.prepared..*.statements.(u
2f00 73 69 6e 67 20 74 68 65 20 22 70 72 65 70 61 72 65 22 20 6d 65 74 68 6f 64 20 69 6e 20 44 42 5f sing.the."prepare".method.in.DB_
2f20 64 62 74 79 70 65 29 2e 0a 20 2a 0a 20 2a 20 54 68 65 20 70 72 65 70 61 72 65 2f 65 78 65 63 75 dbtype)...*..*.The.prepare/execu
2f40 74 65 20 6d 6f 64 65 6c 20 69 6e 20 44 42 20 69 73 20 6d 6f 73 74 6c 79 20 62 6f 72 72 6f 77 65 te.model.in.DB.is.mostly.borrowe
2f60 64 20 66 72 6f 6d 20 74 68 65 20 4f 44 42 43 0a 20 2a 20 65 78 74 65 6e 73 69 6f 6e 2c 20 69 6e d.from.the.ODBC..*.extension,.in
2f80 20 61 20 71 75 65 72 79 20 74 68 65 20 22 3f 22 20 63 68 61 72 61 63 74 65 72 20 6d 65 61 6e 73 .a.query.the."?".character.means
2fa0 20 61 20 73 63 61 6c 61 72 20 70 61 72 61 6d 65 74 65 72 2e 0a 20 2a 20 54 68 65 72 65 20 61 72 .a.scalar.parameter...*.There.ar
2fc0 65 20 74 77 6f 20 65 78 74 65 6e 73 69 6f 6e 73 20 74 68 6f 75 67 68 2c 20 61 20 22 26 22 20 63 e.two.extensions.though,.a."&".c
2fe0 68 61 72 61 63 74 65 72 20 6d 65 61 6e 73 20 61 6e 20 6f 70 61 71 75 65 0a 20 2a 20 70 61 72 61 haracter.means.an.opaque..*.para
3000 6d 65 74 65 72 2e 20 20 41 6e 20 6f 70 61 71 75 65 20 70 61 72 61 6d 65 74 65 72 20 69 73 20 73 meter...An.opaque.parameter.is.s
3020 69 6d 70 6c 79 20 61 20 66 69 6c 65 20 6e 61 6d 65 2c 20 74 68 65 20 72 65 61 6c 0a 20 2a 20 64 imply.a.file.name,.the.real..*.d
3040 61 74 61 20 61 72 65 20 69 6e 20 74 68 61 74 20 66 69 6c 65 20 28 75 73 65 66 75 6c 20 66 6f 72 ata.are.in.that.file.(useful.for
3060 20 70 75 74 74 69 6e 67 20 75 70 6c 6f 61 64 65 64 20 66 69 6c 65 73 20 69 6e 74 6f 20 79 6f 75 .putting.uploaded.files.into.you
3080 72 0a 20 2a 20 64 61 74 61 62 61 73 65 20 61 6e 64 20 73 75 63 68 29 2e 20 54 68 65 20 22 21 22 r..*.database.and.such)..The."!"
30a0 20 63 68 61 72 20 6d 65 61 6e 73 20 61 20 70 61 72 61 6d 65 74 65 72 20 74 68 61 74 20 6d 75 73 .char.means.a.parameter.that.mus
30c0 74 20 62 65 0a 20 2a 20 6c 65 66 74 20 61 73 20 69 74 20 69 73 2e 0a 20 2a 20 54 68 65 79 20 6d t.be..*.left.as.it.is...*.They.m
30e0 6f 64 69 66 79 20 74 68 65 20 71 75 6f 74 65 20 62 65 68 61 76 6f 69 72 3a 0a 20 2a 20 44 42 5f odify.the.quote.behavoir:..*.DB_
3100 50 41 52 41 4d 5f 53 43 41 4c 41 52 20 28 3f 29 20 3d 3e 20 27 6f 72 69 67 69 6e 61 6c 20 73 74 PARAM_SCALAR.(?).=>.'original.st
3120 72 69 6e 67 20 71 75 6f 74 65 64 27 0a 20 2a 20 44 42 5f 50 41 52 41 4d 5f 4f 50 41 51 55 45 20 ring.quoted'..*.DB_PARAM_OPAQUE.
3140 28 26 29 20 3d 3e 20 27 73 74 72 69 6e 67 20 66 72 6f 6d 20 66 69 6c 65 20 71 75 6f 74 65 64 27 (&).=>.'string.from.file.quoted'
3160 0a 20 2a 20 44 42 5f 50 41 52 41 4d 5f 4d 49 53 43 20 20 20 28 21 29 20 3d 3e 20 6f 72 69 67 69 ..*.DB_PARAM_MISC...(!).=>.origi
3180 6e 61 6c 20 73 74 72 69 6e 67 0a 20 2a 2f 0a 0a 64 65 66 69 6e 65 28 27 44 42 5f 50 41 52 41 4d nal.string..*/..define('DB_PARAM
31a0 5f 53 43 41 4c 41 52 27 2c 20 31 29 3b 0a 64 65 66 69 6e 65 28 27 44 42 5f 50 41 52 41 4d 5f 4f _SCALAR',.1);.define('DB_PARAM_O
31c0 50 41 51 55 45 27 2c 20 32 29 3b 0a 64 65 66 69 6e 65 28 27 44 42 5f 50 41 52 41 4d 5f 4d 49 53 PAQUE',.2);.define('DB_PARAM_MIS
31e0 43 27 2c 20 20 20 33 29 3b 0a 0a 2f 2f 20 7d 7d 7d 0a 2f 2f 20 7b 7b 7b 20 62 69 6e 61 72 79 20 C',...3);..//.}}}.//.{{{.binary.
3200 64 61 74 61 2d 72 65 6c 61 74 65 64 0a 2f 2a 0a 20 2a 20 54 68 65 73 65 20 63 6f 6e 73 74 61 6e data-related./*..*.These.constan
3220 74 73 20 64 65 66 69 6e 65 20 64 69 66 66 65 72 65 6e 74 20 77 61 79 73 20 6f 66 20 72 65 74 75 ts.define.different.ways.of.retu
3240 72 6e 69 6e 67 20 62 69 6e 61 72 79 20 64 61 74 61 0a 20 2a 20 66 72 6f 6d 20 71 75 65 72 69 65 rning.binary.data..*.from.querie
3260 73 2e 20 20 41 67 61 69 6e 2c 20 74 68 69 73 20 6d 6f 64 65 6c 20 68 61 73 20 62 65 65 6e 20 62 s...Again,.this.model.has.been.b
3280 6f 72 72 6f 77 65 64 20 66 72 6f 6d 20 74 68 65 20 4f 44 42 43 0a 20 2a 20 65 78 74 65 6e 73 69 orrowed.from.the.ODBC..*.extensi
32a0 6f 6e 2e 0a 20 2a 0a 20 2a 20 44 42 5f 42 49 4e 4d 4f 44 45 5f 50 41 53 53 54 48 52 55 20 73 65 on...*..*.DB_BINMODE_PASSTHRU.se
32c0 6e 64 73 20 74 68 65 20 64 61 74 61 20 64 69 72 65 63 74 6c 79 20 74 68 72 6f 75 67 68 20 74 6f nds.the.data.directly.through.to
32e0 20 74 68 65 20 62 72 6f 77 73 65 72 0a 20 2a 20 77 68 65 6e 20 64 61 74 61 20 69 73 20 66 65 74 .the.browser..*.when.data.is.fet
3300 63 68 65 64 20 66 72 6f 6d 20 74 68 65 20 64 61 74 61 62 61 73 65 2e 0a 20 2a 20 44 42 5f 42 49 ched.from.the.database...*.DB_BI
3320 4e 4d 4f 44 45 5f 52 45 54 55 52 4e 20 6c 65 74 73 20 79 6f 75 20 72 65 74 75 72 6e 20 64 61 74 NMODE_RETURN.lets.you.return.dat
3340 61 20 61 73 20 75 73 75 61 6c 2e 0a 20 2a 20 44 42 5f 42 49 4e 4d 4f 44 45 5f 43 4f 4e 56 45 52 a.as.usual...*.DB_BINMODE_CONVER
3360 54 20 72 65 74 75 72 6e 73 20 64 61 74 61 20 61 73 20 77 65 6c 6c 2c 20 6f 6e 6c 79 20 69 74 20 T.returns.data.as.well,.only.it.
3380 69 73 20 63 6f 6e 76 65 72 74 65 64 20 74 6f 0a 20 2a 20 68 65 78 20 66 6f 72 6d 61 74 2c 20 66 is.converted.to..*.hex.format,.f
33a0 6f 72 20 65 78 61 6d 70 6c 65 20 74 68 65 20 73 74 72 69 6e 67 20 22 31 32 33 22 20 77 6f 75 6c or.example.the.string."123".woul
33c0 64 20 62 65 63 6f 6d 65 20 22 33 31 33 32 33 33 22 2e 0a 20 2a 2f 0a 0a 64 65 66 69 6e 65 28 27 d.become."313233"...*/..define('
33e0 44 42 5f 42 49 4e 4d 4f 44 45 5f 50 41 53 53 54 48 52 55 27 2c 20 31 29 3b 0a 64 65 66 69 6e 65 DB_BINMODE_PASSTHRU',.1);.define
3400 28 27 44 42 5f 42 49 4e 4d 4f 44 45 5f 52 45 54 55 52 4e 27 2c 20 20 20 32 29 3b 0a 64 65 66 69 ('DB_BINMODE_RETURN',...2);.defi
3420 6e 65 28 27 44 42 5f 42 49 4e 4d 4f 44 45 5f 43 4f 4e 56 45 52 54 27 2c 20 20 33 29 3b 0a 0a 2f ne('DB_BINMODE_CONVERT',..3);../
3440 2f 20 7d 7d 7d 0a 2f 2f 20 7b 7b 7b 20 66 65 74 63 68 20 6d 6f 64 65 73 0a 2f 2a 2a 0a 20 2a 20 /.}}}.//.{{{.fetch.modes./**..*.
3460 54 68 69 73 20 69 73 20 61 20 73 70 65 63 69 61 6c 20 63 6f 6e 73 74 61 6e 74 20 74 68 61 74 20 This.is.a.special.constant.that.
3480 74 65 6c 6c 73 20 44 42 20 74 68 65 20 75 73 65 72 20 68 61 73 6e 27 74 20 73 70 65 63 69 66 69 tells.DB.the.user.hasn't.specifi
34a0 65 64 0a 20 2a 20 61 6e 79 20 70 61 72 74 69 63 75 6c 61 72 20 67 65 74 20 6d 6f 64 65 2c 20 73 ed..*.any.particular.get.mode,.s
34c0 6f 20 74 68 65 20 64 65 66 61 75 6c 74 20 73 68 6f 75 6c 64 20 62 65 20 75 73 65 64 2e 0a 20 2a o.the.default.should.be.used...*
34e0 2f 0a 0a 64 65 66 69 6e 65 28 27 44 42 5f 46 45 54 43 48 4d 4f 44 45 5f 44 45 46 41 55 4c 54 27 /..define('DB_FETCHMODE_DEFAULT'
3500 2c 20 30 29 3b 0a 0a 2f 2a 2a 0a 20 2a 20 43 6f 6c 75 6d 6e 20 64 61 74 61 20 69 6e 64 65 78 65 ,.0);../**..*.Column.data.indexe
3520 64 20 62 79 20 6e 75 6d 62 65 72 73 2c 20 6f 72 64 65 72 65 64 20 66 72 6f 6d 20 30 20 61 6e 64 d.by.numbers,.ordered.from.0.and
3540 20 75 70 0a 20 2a 2f 0a 0a 64 65 66 69 6e 65 28 27 44 42 5f 46 45 54 43 48 4d 4f 44 45 5f 4f 52 .up..*/..define('DB_FETCHMODE_OR
3560 44 45 52 45 44 27 2c 20 31 29 3b 0a 0a 2f 2a 2a 0a 20 2a 20 43 6f 6c 75 6d 6e 20 64 61 74 61 20 DERED',.1);../**..*.Column.data.
3580 69 6e 64 65 78 65 64 20 62 79 20 63 6f 6c 75 6d 6e 20 6e 61 6d 65 73 0a 20 2a 2f 0a 0a 64 65 66 indexed.by.column.names..*/..def
35a0 69 6e 65 28 27 44 42 5f 46 45 54 43 48 4d 4f 44 45 5f 41 53 53 4f 43 27 2c 20 32 29 3b 0a 0a 2f ine('DB_FETCHMODE_ASSOC',.2);../
35c0 2a 2a 0a 20 2a 20 43 6f 6c 75 6d 6e 20 64 61 74 61 20 61 73 20 6f 62 6a 65 63 74 20 70 72 6f 70 **..*.Column.data.as.object.prop
35e0 65 72 74 69 65 73 0a 20 2a 2f 0a 0a 64 65 66 69 6e 65 28 27 44 42 5f 46 45 54 43 48 4d 4f 44 45 erties..*/..define('DB_FETCHMODE
3600 5f 4f 42 4a 45 43 54 27 2c 20 33 29 3b 0a 0a 2f 2a 2a 0a 20 2a 20 46 6f 72 20 6d 75 6c 74 69 2d _OBJECT',.3);../**..*.For.multi-
3620 64 69 6d 65 6e 73 69 6f 6e 61 6c 20 72 65 73 75 6c 74 73 3a 20 6e 6f 72 6d 61 6c 6c 79 20 74 68 dimensional.results:.normally.th
3640 65 20 66 69 72 73 74 20 6c 65 76 65 6c 20 6f 66 20 61 72 72 61 79 73 0a 20 2a 20 69 73 20 74 68 e.first.level.of.arrays..*.is.th
3660 65 20 72 6f 77 20 6e 75 6d 62 65 72 2c 20 61 6e 64 20 74 68 65 20 73 65 63 6f 6e 64 20 6c 65 76 e.row.number,.and.the.second.lev
3680 65 6c 20 69 6e 64 65 78 65 64 20 62 79 20 63 6f 6c 75 6d 6e 20 6e 75 6d 62 65 72 20 6f 72 20 6e el.indexed.by.column.number.or.n
36a0 61 6d 65 2e 0a 20 2a 20 44 42 5f 46 45 54 43 48 4d 4f 44 45 5f 46 4c 49 50 50 45 44 20 73 77 69 ame...*.DB_FETCHMODE_FLIPPED.swi
36c0 74 63 68 65 73 20 74 68 69 73 20 6f 72 64 65 72 2c 20 73 6f 20 74 68 65 20 66 69 72 73 74 20 6c tches.this.order,.so.the.first.l
36e0 65 76 65 6c 20 6f 66 20 61 72 72 61 79 73 0a 20 2a 20 69 73 20 74 68 65 20 63 6f 6c 75 6d 6e 20 evel.of.arrays..*.is.the.column.
3700 6e 61 6d 65 2c 20 61 6e 64 20 74 68 65 20 73 65 63 6f 6e 64 20 6c 65 76 65 6c 20 74 68 65 20 72 name,.and.the.second.level.the.r
3720 6f 77 20 6e 75 6d 62 65 72 2e 0a 20 2a 2f 0a 0a 64 65 66 69 6e 65 28 27 44 42 5f 46 45 54 43 48 ow.number...*/..define('DB_FETCH
3740 4d 4f 44 45 5f 46 4c 49 50 50 45 44 27 2c 20 34 29 3b 0a 0a 2f 2a 20 66 6f 72 20 63 6f 6d 70 61 MODE_FLIPPED',.4);../*.for.compa
3760 74 69 62 69 6c 69 74 79 20 2a 2f 0a 0a 64 65 66 69 6e 65 28 27 44 42 5f 47 45 54 4d 4f 44 45 5f tibility.*/..define('DB_GETMODE_
3780 4f 52 44 45 52 45 44 27 2c 20 44 42 5f 46 45 54 43 48 4d 4f 44 45 5f 4f 52 44 45 52 45 44 29 3b ORDERED',.DB_FETCHMODE_ORDERED);
37a0 0a 64 65 66 69 6e 65 28 27 44 42 5f 47 45 54 4d 4f 44 45 5f 41 53 53 4f 43 27 2c 20 20 20 44 42 .define('DB_GETMODE_ASSOC',...DB
37c0 5f 46 45 54 43 48 4d 4f 44 45 5f 41 53 53 4f 43 29 3b 0a 64 65 66 69 6e 65 28 27 44 42 5f 47 45 _FETCHMODE_ASSOC);.define('DB_GE
37e0 54 4d 4f 44 45 5f 46 4c 49 50 50 45 44 27 2c 20 44 42 5f 46 45 54 43 48 4d 4f 44 45 5f 46 4c 49 TMODE_FLIPPED',.DB_FETCHMODE_FLI
3800 50 50 45 44 29 3b 0a 0a 2f 2f 20 7d 7d 7d 0a 2f 2f 20 7b 7b 7b 20 74 61 62 6c 65 49 6e 66 6f 28 PPED);..//.}}}.//.{{{.tableInfo(
3820 29 20 26 26 20 61 75 74 6f 50 72 65 70 61 72 65 28 29 2d 72 65 6c 61 74 65 64 0a 2f 2a 2a 0a 20 ).&&.autoPrepare()-related./**..
3840 2a 20 74 68 65 73 65 20 61 72 65 20 63 6f 6e 73 74 61 6e 74 73 20 66 6f 72 20 74 68 65 20 74 61 *.these.are.constants.for.the.ta
3860 62 6c 65 49 6e 66 6f 2d 66 75 6e 63 74 69 6f 6e 0a 20 2a 20 74 68 65 79 20 61 72 65 20 62 69 74 bleInfo-function..*.they.are.bit
3880 77 69 73 65 64 20 6f 72 27 65 64 2e 20 73 6f 20 69 66 20 74 68 65 72 65 20 61 72 65 20 6d 6f 72 wised.or'ed..so.if.there.are.mor
38a0 65 20 63 6f 6e 73 74 61 6e 74 73 20 74 6f 20 62 65 20 64 65 66 69 6e 65 64 0a 20 2a 20 69 6e 20 e.constants.to.be.defined..*.in.
38c0 74 68 65 20 66 75 74 75 72 65 2c 20 61 64 6a 75 73 74 20 44 42 5f 54 41 42 4c 45 49 4e 46 4f 5f the.future,.adjust.DB_TABLEINFO_
38e0 46 55 4c 4c 20 61 63 63 6f 72 64 69 6e 67 6c 79 0a 20 2a 2f 0a 0a 64 65 66 69 6e 65 28 27 44 42 FULL.accordingly..*/..define('DB
3900 5f 54 41 42 4c 45 49 4e 46 4f 5f 4f 52 44 45 52 27 2c 20 31 29 3b 0a 64 65 66 69 6e 65 28 27 44 _TABLEINFO_ORDER',.1);.define('D
3920 42 5f 54 41 42 4c 45 49 4e 46 4f 5f 4f 52 44 45 52 54 41 42 4c 45 27 2c 20 32 29 3b 0a 64 65 66 B_TABLEINFO_ORDERTABLE',.2);.def
3940 69 6e 65 28 27 44 42 5f 54 41 42 4c 45 49 4e 46 4f 5f 46 55 4c 4c 27 2c 20 33 29 3b 0a 0a 2f 2a ine('DB_TABLEINFO_FULL',.3);../*
3960 0a 20 2a 20 55 73 65 64 20 62 79 20 61 75 74 6f 50 72 65 70 61 72 65 28 29 0a 20 2a 2f 0a 64 65 ..*.Used.by.autoPrepare()..*/.de
3980 66 69 6e 65 28 27 44 42 5f 41 55 54 4f 51 55 45 52 59 5f 49 4e 53 45 52 54 27 2c 20 31 29 3b 0a fine('DB_AUTOQUERY_INSERT',.1);.
39a0 64 65 66 69 6e 65 28 27 44 42 5f 41 55 54 4f 51 55 45 52 59 5f 55 50 44 41 54 45 27 2c 20 32 29 define('DB_AUTOQUERY_UPDATE',.2)
39c0 3b 0a 0a 2f 2f 20 7d 7d 7d 0a 2f 2f 20 7d 7d 7d 0a 0a 2f 2f 20 7b 7b 7b 20 63 6c 61 73 73 20 44 ;..//.}}}.//.}}}..//.{{{.class.D
39e0 42 0a 2f 2a 2a 0a 20 2a 20 54 68 65 20 6d 61 69 6e 20 22 44 42 22 20 63 6c 61 73 73 20 69 73 20 B./**..*.The.main."DB".class.is.
3a00 73 69 6d 70 6c 79 20 61 20 63 6f 6e 74 61 69 6e 65 72 20 63 6c 61 73 73 20 77 69 74 68 20 73 6f simply.a.container.class.with.so
3a20 6d 65 20 73 74 61 74 69 63 0a 20 2a 20 6d 65 74 68 6f 64 73 20 66 6f 72 20 63 72 65 61 74 69 6e me.static..*.methods.for.creatin
3a40 67 20 44 42 20 6f 62 6a 65 63 74 73 20 61 73 20 77 65 6c 6c 20 61 73 20 73 6f 6d 65 20 75 74 69 g.DB.objects.as.well.as.some.uti
3a60 6c 69 74 79 20 66 75 6e 63 74 69 6f 6e 73 0a 20 2a 20 63 6f 6d 6d 6f 6e 20 74 6f 20 61 6c 6c 20 lity.functions..*.common.to.all.
3a80 70 61 72 74 73 20 6f 66 20 44 42 2e 0a 20 2a 0a 20 2a 20 54 68 65 20 6f 62 6a 65 63 74 20 6d 6f parts.of.DB...*..*.The.object.mo
3aa0 64 65 6c 20 6f 66 20 44 42 20 69 73 20 61 73 20 66 6f 6c 6c 6f 77 73 20 28 69 6e 64 65 6e 74 61 del.of.DB.is.as.follows.(indenta
3ac0 74 69 6f 6e 20 6d 65 61 6e 73 20 69 6e 68 65 72 69 74 61 6e 63 65 29 3a 0a 20 2a 0a 20 2a 20 44 tion.means.inheritance):..*..*.D
3ae0 42 20 20 20 20 20 20 20 20 20 20 20 54 68 65 20 6d 61 69 6e 20 44 42 20 63 6c 61 73 73 2e 20 20 B...........The.main.DB.class...
3b00 54 68 69 73 20 69 73 20 73 69 6d 70 6c 79 20 61 20 75 74 69 6c 69 74 79 20 63 6c 61 73 73 0a 20 This.is.simply.a.utility.class..
3b20 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 77 69 74 68 20 73 6f 6d 65 20 22 73 74 61 74 69 63 *..............with.some."static
3b40 22 20 6d 65 74 68 6f 64 73 20 66 6f 72 20 63 72 65 61 74 69 6e 67 20 44 42 20 6f 62 6a 65 63 74 ".methods.for.creating.DB.object
3b60 73 20 61 73 0a 20 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 77 65 6c 6c 20 61 73 20 63 6f 6d s.as..*..............well.as.com
3b80 6d 6f 6e 20 75 74 69 6c 69 74 79 20 66 75 6e 63 74 69 6f 6e 73 20 66 6f 72 20 6f 74 68 65 72 20 mon.utility.functions.for.other.
3ba0 44 42 20 63 6c 61 73 73 65 73 2e 0a 20 2a 0a 20 2a 20 44 42 5f 63 6f 6d 6d 6f 6e 20 20 20 20 54 DB.classes...*..*.DB_common....T
3bc0 68 65 20 62 61 73 65 20 66 6f 72 20 65 61 63 68 20 44 42 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 he.base.for.each.DB.implementati
3be0 6f 6e 2e 20 20 50 72 6f 76 69 64 65 73 20 64 65 66 61 75 6c 74 0a 20 2a 20 7c 20 20 20 20 20 20 on...Provides.default..*.|......
3c00 20 20 20 20 20 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 73 20 28 69 6e 20 4f 4f 20 6c 69 6e ......implementations.(in.OO.lin
3c20 67 6f 20 76 69 72 74 75 61 6c 20 6d 65 74 68 6f 64 73 29 20 66 6f 72 0a 20 2a 20 7c 20 20 20 20 go.virtual.methods).for..*.|....
3c40 20 20 20 20 20 20 20 20 74 68 65 20 61 63 74 75 61 6c 20 44 42 20 69 6d 70 6c 65 6d 65 6e 74 61 ........the.actual.DB.implementa
3c60 74 69 6f 6e 73 20 61 73 20 77 65 6c 6c 20 61 73 20 61 20 62 75 6e 63 68 20 6f 66 0a 20 2a 20 7c tions.as.well.as.a.bunch.of..*.|
3c80 20 20 20 20 20 20 20 20 20 20 20 20 71 75 65 72 79 20 75 74 69 6c 69 74 79 20 66 75 6e 63 74 69 ............query.utility.functi
3ca0 6f 6e 73 2e 0a 20 2a 20 7c 0a 20 2a 20 2b 2d 44 42 5f 6d 79 73 71 6c 20 20 20 54 68 65 20 44 42 ons...*.|..*.+-DB_mysql...The.DB
3cc0 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 20 66 6f 72 20 4d 79 53 51 4c 2e 20 20 49 6e 68 65 .implementation.for.MySQL...Inhe
3ce0 72 69 74 73 20 44 42 5f 63 6f 6d 6d 6f 6e 2e 0a 20 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 rits.DB_common...*..............
3d00 57 68 65 6e 20 63 61 6c 6c 69 6e 67 20 44 42 3a 3a 66 61 63 74 6f 72 79 20 6f 72 20 44 42 3a 3a When.calling.DB::factory.or.DB::
3d20 63 6f 6e 6e 65 63 74 20 66 6f 72 20 4d 79 53 51 4c 0a 20 2a 20 20 20 20 20 20 20 20 20 20 20 20 connect.for.MySQL..*............
3d40 20 20 63 6f 6e 6e 65 63 74 69 6f 6e 73 2c 20 74 68 65 20 6f 62 6a 65 63 74 20 72 65 74 75 72 6e ..connections,.the.object.return
3d60 65 64 20 69 73 20 61 6e 20 69 6e 73 74 61 6e 63 65 20 6f 66 20 74 68 69 73 0a 20 2a 20 20 20 20 ed.is.an.instance.of.this..*....
3d80 20 20 20 20 20 20 20 20 20 20 63 6c 61 73 73 2e 0a 20 2a 0a 20 2a 20 40 70 61 63 6b 61 67 65 20 ..........class...*..*.@package.
3da0 20 44 42 0a 20 2a 20 40 61 75 74 68 6f 72 20 20 20 53 74 69 67 20 42 61 6b 6b 65 6e 20 3c 73 73 .DB..*.@author...Stig.Bakken.<ss
3dc0 62 40 70 68 70 2e 6e 65 74 3e 0a 20 2a 20 40 73 69 6e 63 65 20 20 20 20 50 48 50 20 34 2e 30 0a b@php.net>..*.@since....PHP.4.0.
3de0 20 2a 2f 0a 0a 63 6c 61 73 73 20 44 42 0a 7b 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 26 66 61 63 74 .*/..class.DB.{.....//.{{{.&fact
3e00 6f 72 79 28 29 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 43 72 65 61 74 65 20 61 20 6e 65 ory()...../**......*.Create.a.ne
3e20 77 20 44 42 20 63 6f 6e 6e 65 63 74 69 6f 6e 20 6f 62 6a 65 63 74 20 66 6f 72 20 74 68 65 20 73 w.DB.connection.object.for.the.s
3e40 70 65 63 69 66 69 65 64 20 64 61 74 61 62 61 73 65 0a 20 20 20 20 20 2a 20 74 79 70 65 0a 20 20 pecified.database......*.type...
3e60 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 73 74 72 69 6e 67 20 24 74 79 70 65 20 ...*......*.@param.string.$type.
3e80 64 61 74 61 62 61 73 65 20 74 79 70 65 2c 20 66 6f 72 20 65 78 61 6d 70 6c 65 20 22 6d 79 73 71 database.type,.for.example."mysq
3ea0 6c 22 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 72 65 74 75 72 6e 20 6d 69 78 65 64 20 61 l"......*......*.@return.mixed.a
3ec0 20 6e 65 77 6c 79 20 63 72 65 61 74 65 64 20 44 42 20 6f 62 6a 65 63 74 2c 20 6f 72 20 61 20 44 .newly.created.DB.object,.or.a.D
3ee0 42 20 65 72 72 6f 72 20 63 6f 64 65 20 6f 6e 0a 20 20 20 20 20 2a 20 65 72 72 6f 72 0a 20 20 20 B.error.code.on......*.error....
3f00 20 20 2a 0a 20 20 20 20 20 2a 20 61 63 63 65 73 73 20 70 75 62 6c 69 63 0a 20 20 20 20 20 2a 2f ..*......*.access.public......*/
3f20 0a 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 26 66 61 63 74 6f 72 79 28 24 74 79 70 65 29 0a 20 ......function.&factory($type)..
3f40 20 20 20 7b 0a 20 20 20 20 20 20 20 20 40 69 6e 63 6c 75 64 65 5f 6f 6e 63 65 28 22 44 42 2f 24 ...{.........@include_once("DB/$
3f60 7b 74 79 70 65 7d 2e 70 68 70 22 29 3b 0a 0a 20 20 20 20 20 20 20 20 24 63 6c 61 73 73 6e 61 6d {type}.php");..........$classnam
3f80 65 20 3d 20 22 44 42 5f 24 7b 74 79 70 65 7d 22 3b 0a 0a 20 20 20 20 20 20 20 20 69 66 20 28 21 e.=."DB_${type}";..........if.(!
3fa0 63 6c 61 73 73 5f 65 78 69 73 74 73 28 24 63 6c 61 73 73 6e 61 6d 65 29 29 20 7b 0a 20 20 20 20 class_exists($classname)).{.....
3fc0 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 50 45 41 52 3a 3a 72 61 69 73 65 45 72 72 6f 72 28 ........return.PEAR::raiseError(
3fe0 6e 75 6c 6c 2c 20 44 42 5f 45 52 52 4f 52 5f 4e 4f 54 5f 46 4f 55 4e 44 2c 0a 20 20 20 20 20 20 null,.DB_ERROR_NOT_FOUND,.......
4000 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 75 ..............................nu
4020 6c 6c 2c 20 6e 75 6c 6c 2c 20 6e 75 6c 6c 2c 20 27 44 42 5f 45 72 72 6f 72 27 2c 20 74 72 75 65 ll,.null,.null,.'DB_Error',.true
4040 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 40 24 6f 62 6a 20 3d 26 20 6e );.........}..........@$obj.=&.n
4060 65 77 20 24 63 6c 61 73 73 6e 61 6d 65 3b 0a 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 ew.$classname;..........return.$
4080 6f 62 6a 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b obj;.....}......//.}}}.....//.{{
40a0 7b 20 26 63 6f 6e 6e 65 63 74 28 29 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 43 72 65 61 {.&connect()...../**......*.Crea
40c0 74 65 20 61 20 6e 65 77 20 44 42 20 63 6f 6e 6e 65 63 74 69 6f 6e 20 6f 62 6a 65 63 74 20 61 6e te.a.new.DB.connection.object.an
40e0 64 20 63 6f 6e 6e 65 63 74 20 74 6f 20 74 68 65 20 73 70 65 63 69 66 69 65 64 0a 20 20 20 20 20 d.connect.to.the.specified......
4100 2a 20 64 61 74 61 62 61 73 65 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 *.database......*......*.@param.
4120 6d 69 78 65 64 20 24 64 73 6e 20 22 64 61 74 61 20 73 6f 75 72 63 65 20 6e 61 6d 65 22 2c 20 73 mixed.$dsn."data.source.name",.s
4140 65 65 20 74 68 65 20 44 42 3a 3a 70 61 72 73 65 44 53 4e 0a 20 20 20 20 20 2a 20 6d 65 74 68 6f ee.the.DB::parseDSN......*.metho
4160 64 20 66 6f 72 20 61 20 64 65 73 63 72 69 70 74 69 6f 6e 20 6f 66 20 74 68 65 20 64 73 6e 20 66 d.for.a.description.of.the.dsn.f
4180 6f 72 6d 61 74 2e 20 20 43 61 6e 20 61 6c 73 6f 20 62 65 0a 20 20 20 20 20 2a 20 73 70 65 63 69 ormat...Can.also.be......*.speci
41a0 66 69 65 64 20 61 73 20 61 6e 20 61 72 72 61 79 20 6f 66 20 74 68 65 20 66 6f 72 6d 61 74 20 72 fied.as.an.array.of.the.format.r
41c0 65 74 75 72 6e 65 64 20 62 79 20 44 42 3a 3a 70 61 72 73 65 44 53 4e 2e 0a 20 20 20 20 20 2a 0a eturned.by.DB::parseDSN.......*.
41e0 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 6d 69 78 65 64 20 24 6f 70 74 69 6f 6e 73 20 41 6e 20 .....*.@param.mixed.$options.An.
4200 61 73 73 6f 63 69 61 74 69 76 65 20 61 72 72 61 79 20 6f 66 20 6f 70 74 69 6f 6e 20 6e 61 6d 65 associative.array.of.option.name
4220 73 20 61 6e 64 0a 20 20 20 20 20 2a 20 74 68 65 69 72 20 76 61 6c 75 65 73 2e 20 20 46 6f 72 20 s.and......*.their.values...For.
4240 62 61 63 6b 77 61 72 64 73 20 63 6f 6d 70 61 74 69 62 69 6c 69 74 79 2c 20 74 68 69 73 20 70 61 backwards.compatibility,.this.pa
4260 72 61 6d 65 74 65 72 20 6d 61 79 0a 20 20 20 20 20 2a 20 61 6c 73 6f 20 62 65 20 61 20 62 6f 6f rameter.may......*.also.be.a.boo
4280 6c 65 61 6e 20 74 68 61 74 20 74 65 6c 6c 73 20 77 68 65 74 68 65 72 20 74 68 65 20 63 6f 6e 6e lean.that.tells.whether.the.conn
42a0 65 63 74 69 6f 6e 20 73 68 6f 75 6c 64 20 62 65 0a 20 20 20 20 20 2a 20 70 65 72 73 69 73 74 65 ection.should.be......*.persiste
42c0 6e 74 2e 20 20 53 65 65 20 44 42 5f 63 6f 6d 6d 6f 6e 3a 3a 73 65 74 4f 70 74 69 6f 6e 20 66 6f nt...See.DB_common::setOption.fo
42e0 72 20 6d 6f 72 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 6f 6e 0a 20 20 20 20 20 2a 20 63 6f 6e r.more.information.on......*.con
4300 6e 65 63 74 69 6f 6e 20 6f 70 74 69 6f 6e 73 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 nection.options.......*......*.@
4320 72 65 74 75 72 6e 20 6d 69 78 65 64 20 61 20 6e 65 77 6c 79 20 63 72 65 61 74 65 64 20 44 42 20 return.mixed.a.newly.created.DB.
4340 63 6f 6e 6e 65 63 74 69 6f 6e 20 6f 62 6a 65 63 74 2c 20 6f 72 20 61 20 44 42 0a 20 20 20 20 20 connection.object,.or.a.DB......
4360 2a 20 65 72 72 6f 72 20 6f 62 6a 65 63 74 20 6f 6e 20 65 72 72 6f 72 0a 20 20 20 20 20 2a 0a 20 *.error.object.on.error......*..
4380 20 20 20 20 2a 20 40 73 65 65 20 44 42 3a 3a 70 61 72 73 65 44 53 4e 0a 20 20 20 20 20 2a 20 40 ....*.@see.DB::parseDSN......*.@
43a0 73 65 65 20 44 42 3a 3a 69 73 45 72 72 6f 72 0a 20 20 20 20 20 2a 20 40 73 65 65 20 44 42 5f 63 see.DB::isError......*.@see.DB_c
43c0 6f 6d 6d 6f 6e 3a 3a 73 65 74 4f 70 74 69 6f 6e 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 66 75 6e ommon::setOption......*/.....fun
43e0 63 74 69 6f 6e 20 26 63 6f 6e 6e 65 63 74 28 24 64 73 6e 2c 20 24 6f 70 74 69 6f 6e 73 20 3d 20 ction.&connect($dsn,.$options.=.
4400 66 61 6c 73 65 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 69 66 20 28 69 73 5f 61 72 72 61 false).....{.........if.(is_arra
4420 79 28 24 64 73 6e 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 64 73 6e 69 6e 66 6f 20 y($dsn)).{.............$dsninfo.
4440 3d 20 24 64 73 6e 3b 0a 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 =.$dsn;.........}.else.{........
4460 20 20 20 20 20 24 64 73 6e 69 6e 66 6f 20 3d 20 44 42 3a 3a 70 61 72 73 65 44 53 4e 28 24 64 73 .....$dsninfo.=.DB::parseDSN($ds
4480 6e 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 24 74 79 70 65 20 3d 20 24 64 n);.........}.........$type.=.$d
44a0 73 6e 69 6e 66 6f 5b 22 70 68 70 74 79 70 65 22 5d 3b 0a 0a 20 20 20 20 20 20 20 20 69 66 20 28 sninfo["phptype"];..........if.(
44c0 69 73 5f 61 72 72 61 79 28 24 6f 70 74 69 6f 6e 73 29 20 26 26 20 69 73 73 65 74 28 24 6f 70 74 is_array($options).&&.isset($opt
44e0 69 6f 6e 73 5b 22 64 65 62 75 67 22 5d 29 20 26 26 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 6f ions["debug"]).&&.............$o
4500 70 74 69 6f 6e 73 5b 22 64 65 62 75 67 22 5d 20 3e 3d 20 32 29 20 7b 0a 20 20 20 20 20 20 20 20 ptions["debug"].>=.2).{.........
4520 20 20 20 20 2f 2f 20 65 78 70 6f 73 65 20 70 68 70 20 65 72 72 6f 72 73 20 77 69 74 68 20 73 75 ....//.expose.php.errors.with.su
4540 66 66 69 63 69 65 6e 74 20 64 65 62 75 67 20 6c 65 76 65 6c 0a 20 20 20 20 20 20 20 20 20 20 20 fficient.debug.level............
4560 20 69 6e 63 6c 75 64 65 5f 6f 6e 63 65 20 22 44 42 2f 24 7b 74 79 70 65 7d 2e 70 68 70 22 3b 0a .include_once."DB/${type}.php";.
4580 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 40 69 6e ........}.else.{.............@in
45a0 63 6c 75 64 65 5f 6f 6e 63 65 20 22 44 42 2f 24 7b 74 79 70 65 7d 2e 70 68 70 22 3b 0a 20 20 20 clude_once."DB/${type}.php";....
45c0 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 24 63 6c 61 73 73 6e 61 6d 65 20 3d 20 22 44 42 .....}..........$classname.=."DB
45e0 5f 24 7b 74 79 70 65 7d 22 3b 0a 20 20 20 20 20 20 20 20 69 66 20 28 21 63 6c 61 73 73 5f 65 78 _${type}";.........if.(!class_ex
4600 69 73 74 73 28 24 63 6c 61 73 73 6e 61 6d 65 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 ists($classname)).{.............
4620 72 65 74 75 72 6e 20 50 45 41 52 3a 3a 72 61 69 73 65 45 72 72 6f 72 28 6e 75 6c 6c 2c 20 44 42 return.PEAR::raiseError(null,.DB
4640 5f 45 52 52 4f 52 5f 4e 4f 54 5f 46 4f 55 4e 44 2c 20 6e 75 6c 6c 2c 20 6e 75 6c 6c 2c 0a 20 20 _ERROR_NOT_FOUND,.null,.null,...
4660 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
4680 20 20 22 55 6e 61 62 6c 65 20 74 6f 20 69 6e 63 6c 75 64 65 20 74 68 65 20 44 42 2f 7b 24 74 79 .."Unable.to.include.the.DB/{$ty
46a0 70 65 7d 2e 70 68 70 20 66 69 6c 65 20 66 6f 72 20 60 24 64 73 6e 27 22 2c 0a 20 20 20 20 20 20 pe}.php.file.for.`$dsn'",.......
46c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 44 ..............................'D
46e0 42 5f 45 72 72 6f 72 27 2c 20 74 72 75 65 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 B_Error',.true);.........}......
4700 20 20 20 20 40 24 6f 62 6a 20 3d 26 20 6e 65 77 20 24 63 6c 61 73 73 6e 61 6d 65 3b 0a 0a 20 20 ....@$obj.=&.new.$classname;....
4720 20 20 20 20 20 20 69 66 20 28 69 73 5f 61 72 72 61 79 28 24 6f 70 74 69 6f 6e 73 29 29 20 7b 0a ......if.(is_array($options)).{.
4740 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 65 61 63 68 20 28 24 6f 70 74 69 6f 6e 73 20 61 73 ............foreach.($options.as
4760 20 24 6f 70 74 69 6f 6e 20 3d 3e 20 24 76 61 6c 75 65 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 .$option.=>.$value).{...........
4780 20 20 20 20 20 20 24 74 65 73 74 20 3d 20 24 6f 62 6a 2d 3e 73 65 74 4f 70 74 69 6f 6e 28 24 6f ......$test.=.$obj->setOption($o
47a0 70 74 69 6f 6e 2c 20 24 76 61 6c 75 65 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ption,.$value);.................
47c0 69 66 20 28 44 42 3a 3a 69 73 45 72 72 6f 72 28 24 74 65 73 74 29 29 20 7b 0a 20 20 20 20 20 20 if.(DB::isError($test)).{.......
47e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 65 73 74 3b 0a 20 20 20 20 ..............return.$test;.....
4800 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 ............}.............}.....
4820 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 6f 62 6a 2d 3e 73 ....}.else.{.............$obj->s
4840 65 74 4f 70 74 69 6f 6e 28 27 70 65 72 73 69 73 74 65 6e 74 27 2c 20 24 6f 70 74 69 6f 6e 73 29 etOption('persistent',.$options)
4860 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 24 65 72 72 20 3d 20 24 6f 62 6a 2d ;.........}.........$err.=.$obj-
4880 3e 63 6f 6e 6e 65 63 74 28 24 64 73 6e 69 6e 66 6f 2c 20 24 6f 62 6a 2d 3e 67 65 74 4f 70 74 69 >connect($dsninfo,.$obj->getOpti
48a0 6f 6e 28 27 70 65 72 73 69 73 74 65 6e 74 27 29 29 3b 0a 20 20 20 20 20 20 20 20 69 66 20 28 44 on('persistent'));.........if.(D
48c0 42 3a 3a 69 73 45 72 72 6f 72 28 24 65 72 72 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 B::isError($err)).{.............
48e0 24 65 72 72 2d 3e 61 64 64 55 73 65 72 49 6e 66 6f 28 24 64 73 6e 29 3b 0a 20 20 20 20 20 20 20 $err->addUserInfo($dsn);........
4900 20 20 20 20 20 72 65 74 75 72 6e 20 24 65 72 72 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 .....return.$err;.........}.....
4920 20 20 20 20 20 72 65 74 75 72 6e 20 24 6f 62 6a 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 .....return.$obj;.....}......//.
4940 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 61 70 69 56 65 72 73 69 6f 6e 28 29 0a 20 20 20 20 }}}.....//.{{{.apiVersion().....
4960 2f 2a 2a 0a 20 20 20 20 20 2a 20 52 65 74 75 72 6e 20 74 68 65 20 44 42 20 41 50 49 20 76 65 72 /**......*.Return.the.DB.API.ver
4980 73 69 6f 6e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 72 65 74 75 72 6e 20 69 6e 74 20 74 sion......*......*.@return.int.t
49a0 68 65 20 44 42 20 41 50 49 20 76 65 72 73 69 6f 6e 20 6e 75 6d 62 65 72 0a 20 20 20 20 20 2a 0a he.DB.API.version.number......*.
49c0 20 20 20 20 20 2a 20 40 61 63 63 65 73 73 20 70 75 62 6c 69 63 0a 20 20 20 20 20 2a 2f 0a 20 20 .....*.@access.public......*/...
49e0 20 20 66 75 6e 63 74 69 6f 6e 20 61 70 69 56 65 72 73 69 6f 6e 28 29 0a 20 20 20 20 7b 0a 20 20 ..function.apiVersion().....{...
4a00 20 20 20 20 20 20 72 65 74 75 72 6e 20 32 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d ......return.2;.....}......//.}}
4a20 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 69 73 45 72 72 6f 72 28 29 0a 20 20 20 20 2f 2a 2a 0a 20 }.....//.{{{.isError()...../**..
4a40 20 20 20 20 2a 20 54 65 6c 6c 20 77 68 65 74 68 65 72 20 61 20 72 65 73 75 6c 74 20 63 6f 64 65 ....*.Tell.whether.a.result.code
4a60 20 66 72 6f 6d 20 61 20 44 42 20 6d 65 74 68 6f 64 20 69 73 20 61 6e 20 65 72 72 6f 72 0a 20 20 .from.a.DB.method.is.an.error...
4a80 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 69 6e 74 20 24 76 61 6c 75 65 20 72 65 ...*......*.@param.int.$value.re
4aa0 73 75 6c 74 20 63 6f 64 65 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 72 65 74 75 72 6e 20 sult.code......*......*.@return.
4ac0 62 6f 6f 6c 20 77 68 65 74 68 65 72 20 24 76 61 6c 75 65 20 69 73 20 61 6e 20 65 72 72 6f 72 0a bool.whether.$value.is.an.error.
4ae0 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 61 63 63 65 73 73 20 70 75 62 6c 69 63 0a 20 20 20 .....*......*.@access.public....
4b00 20 20 2a 2f 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 69 73 45 72 72 6f 72 28 24 76 61 6c 75 65 ..*/.....function.isError($value
4b20 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 28 69 73 5f 6f 62 6a 65 63 ).....{.........return.(is_objec
4b40 74 28 24 76 61 6c 75 65 29 20 26 26 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 65 t($value).&&.................(ge
4b60 74 5f 63 6c 61 73 73 28 24 76 61 6c 75 65 29 20 3d 3d 20 27 64 62 5f 65 72 72 6f 72 27 20 7c 7c t_class($value).==.'db_error'.||
4b80 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 73 5f 73 75 62 63 6c 61 73 73 5f 6f 66 ..................is_subclass_of
4ba0 28 24 76 61 6c 75 65 2c 20 27 64 62 5f 65 72 72 6f 72 27 29 29 29 3b 0a 20 20 20 20 7d 0a 0a 20 ($value,.'db_error')));.....}...
4bc0 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 69 73 43 6f 6e 6e 65 63 74 69 6f ...//.}}}.....//.{{{.isConnectio
4be0 6e 28 29 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 54 65 6c 6c 20 77 68 65 74 68 65 72 20 n()...../**......*.Tell.whether.
4c00 61 20 76 61 6c 75 65 20 69 73 20 61 20 44 42 20 63 6f 6e 6e 65 63 74 69 6f 6e 0a 20 20 20 20 20 a.value.is.a.DB.connection......
4c20 2a 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 6d 69 78 65 64 20 24 76 61 6c 75 65 20 76 61 6c *......*.@param.mixed.$value.val
4c40 75 65 20 74 6f 20 74 65 73 74 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 72 65 74 75 72 6e ue.to.test......*......*.@return
4c60 20 62 6f 6f 6c 20 77 68 65 74 68 65 72 20 24 76 61 6c 75 65 20 69 73 20 61 20 44 42 20 63 6f 6e .bool.whether.$value.is.a.DB.con
4c80 6e 65 63 74 69 6f 6e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 61 63 63 65 73 73 20 70 75 nection......*......*.@access.pu
4ca0 62 6c 69 63 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 69 73 43 6f 6e 6e blic......*/.....function.isConn
4cc0 65 63 74 69 6f 6e 28 24 76 61 6c 75 65 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 72 65 74 ection($value).....{.........ret
4ce0 75 72 6e 20 28 69 73 5f 6f 62 6a 65 63 74 28 24 76 61 6c 75 65 29 20 26 26 0a 20 20 20 20 20 20 urn.(is_object($value).&&.......
4d00 20 20 20 20 20 20 20 20 20 20 69 73 5f 73 75 62 63 6c 61 73 73 5f 6f 66 28 24 76 61 6c 75 65 2c ..........is_subclass_of($value,
4d20 20 27 64 62 5f 63 6f 6d 6d 6f 6e 27 29 20 26 26 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .'db_common').&&................
4d40 20 6d 65 74 68 6f 64 5f 65 78 69 73 74 73 28 24 76 61 6c 75 65 2c 20 27 73 69 6d 70 6c 65 51 75 .method_exists($value,.'simpleQu
4d60 65 72 79 27 29 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f ery'));.....}......//.}}}.....//
4d80 20 7b 7b 7b 20 69 73 4d 61 6e 69 70 28 29 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 54 65 .{{{.isManip()...../**......*.Te
4da0 6c 6c 20 77 68 65 74 68 65 72 20 61 20 71 75 65 72 79 20 69 73 20 61 20 64 61 74 61 20 6d 61 6e ll.whether.a.query.is.a.data.man
4dc0 69 70 75 6c 61 74 69 6f 6e 20 71 75 65 72 79 20 28 69 6e 73 65 72 74 2c 0a 20 20 20 20 20 2a 20 ipulation.query.(insert,......*.
4de0 75 70 64 61 74 65 20 6f 72 20 64 65 6c 65 74 65 29 20 6f 72 20 61 20 64 61 74 61 20 64 65 66 69 update.or.delete).or.a.data.defi
4e00 6e 69 74 69 6f 6e 20 71 75 65 72 79 20 28 63 72 65 61 74 65 2c 20 64 72 6f 70 2c 0a 20 20 20 20 nition.query.(create,.drop,.....
4e20 20 2a 20 61 6c 74 65 72 2c 20 67 72 61 6e 74 2c 20 72 65 76 6f 6b 65 29 2e 0a 20 20 20 20 20 2a .*.alter,.grant,.revoke).......*
4e40 0a 20 20 20 20 20 2a 20 40 61 63 63 65 73 73 20 70 75 62 6c 69 63 0a 20 20 20 20 20 2a 0a 20 20 ......*.@access.public......*...
4e60 20 20 20 2a 20 40 70 61 72 61 6d 20 73 74 72 69 6e 67 20 24 71 75 65 72 79 20 74 68 65 20 71 75 ...*.@param.string.$query.the.qu
4e80 65 72 79 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 72 65 74 75 72 6e 20 62 6f 6f 6c 65 61 ery......*......*.@return.boolea
4ea0 6e 20 77 68 65 74 68 65 72 20 24 71 75 65 72 79 20 69 73 20 61 20 64 61 74 61 20 6d 61 6e 69 70 n.whether.$query.is.a.data.manip
4ec0 75 6c 61 74 69 6f 6e 20 71 75 65 72 79 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 66 75 6e 63 74 69 ulation.query......*/.....functi
4ee0 6f 6e 20 69 73 4d 61 6e 69 70 28 24 71 75 65 72 79 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 on.isManip($query).....{........
4f00 20 24 6d 61 6e 69 70 73 20 3d 20 27 49 4e 53 45 52 54 7c 55 50 44 41 54 45 7c 44 45 4c 45 54 45 .$manips.=.'INSERT|UPDATE|DELETE
4f20 7c 27 2e 27 52 45 50 4c 41 43 45 7c 43 52 45 41 54 45 7c 44 52 4f 50 7c 27 2e 0a 20 20 20 20 20 |'.'REPLACE|CREATE|DROP|'.......
4f40 20 20 20 20 20 20 20 20 20 20 20 20 20 27 41 4c 54 45 52 7c 47 52 41 4e 54 7c 52 45 56 4f 4b 45 .............'ALTER|GRANT|REVOKE
4f60 7c 27 2e 27 4c 4f 43 4b 7c 55 4e 4c 4f 43 4b 27 3b 0a 20 20 20 20 20 20 20 20 69 66 20 28 70 72 |'.'LOCK|UNLOCK';.........if.(pr
4f80 65 67 5f 6d 61 74 63 68 28 27 2f 5e 5c 73 2a 22 3f 28 27 2e 24 6d 61 6e 69 70 73 2e 27 29 5c 73 eg_match('/^\s*"?('.$manips.')\s
4fa0 2b 2f 69 27 2c 20 24 71 75 65 72 79 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 +/i',.$query)).{.............ret
4fc0 75 72 6e 20 74 72 75 65 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 72 65 74 75 urn.true;.........}.........retu
4fe0 72 6e 20 66 61 6c 73 65 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 rn.false;.....}......//.}}}.....
5000 2f 2f 20 7b 7b 7b 20 65 72 72 6f 72 4d 65 73 73 61 67 65 28 29 0a 20 20 20 20 2f 2a 2a 0a 20 20 //.{{{.errorMessage()...../**...
5020 20 20 20 2a 20 52 65 74 75 72 6e 20 61 20 74 65 78 74 75 61 6c 20 65 72 72 6f 72 20 6d 65 73 73 ...*.Return.a.textual.error.mess
5040 61 67 65 20 66 6f 72 20 61 20 44 42 20 65 72 72 6f 72 20 63 6f 64 65 0a 20 20 20 20 20 2a 0a 20 age.for.a.DB.error.code......*..
5060 20 20 20 20 2a 20 40 70 61 72 61 6d 20 69 6e 74 65 67 65 72 20 24 76 61 6c 75 65 20 65 72 72 6f ....*.@param.integer.$value.erro
5080 72 20 63 6f 64 65 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 72 65 74 75 72 6e 20 73 74 72 r.code......*......*.@return.str
50a0 69 6e 67 20 65 72 72 6f 72 20 6d 65 73 73 61 67 65 2c 20 6f 72 20 66 61 6c 73 65 20 69 66 20 74 ing.error.message,.or.false.if.t
50c0 68 65 20 65 72 72 6f 72 20 63 6f 64 65 20 77 61 73 0a 20 20 20 20 20 2a 20 6e 6f 74 20 72 65 63 he.error.code.was......*.not.rec
50e0 6f 67 6e 69 7a 65 64 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 65 72 72 ognized......*/.....function.err
5100 6f 72 4d 65 73 73 61 67 65 28 24 76 61 6c 75 65 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 orMessage($value).....{.........
5120 73 74 61 74 69 63 20 24 65 72 72 6f 72 4d 65 73 73 61 67 65 73 3b 0a 20 20 20 20 20 20 20 20 69 static.$errorMessages;.........i
5140 66 20 28 21 69 73 73 65 74 28 24 65 72 72 6f 72 4d 65 73 73 61 67 65 73 29 29 20 7b 0a 20 20 20 f.(!isset($errorMessages)).{....
5160 20 20 20 20 20 20 20 20 20 24 65 72 72 6f 72 4d 65 73 73 61 67 65 73 20 3d 20 61 72 72 61 79 28 .........$errorMessages.=.array(
5180 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 44 42 5f 45 52 52 4f 52 20 20 20 20 20 20 20 .................DB_ERROR.......
51a0 20 20 20 20 20 20 20 20 20 20 20 20 20 3d 3e 20 27 75 6e 6b 6e 6f 77 6e 20 65 72 72 6f 72 27 2c .............=>.'unknown.error',
51c0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 44 42 5f 45 52 52 4f 52 5f 41 4c 52 45 41 44 .................DB_ERROR_ALREAD
51e0 59 5f 45 58 49 53 54 53 20 20 20 20 20 3d 3e 20 27 61 6c 72 65 61 64 79 20 65 78 69 73 74 73 27 Y_EXISTS.....=>.'already.exists'
5200 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 44 42 5f 45 52 52 4f 52 5f 43 41 4e 4e 4f ,.................DB_ERROR_CANNO
5220 54 5f 43 52 45 41 54 45 20 20 20 20 20 20 3d 3e 20 27 63 61 6e 20 6e 6f 74 20 63 72 65 61 74 65 T_CREATE......=>.'can.not.create
5240 27 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 44 42 5f 45 52 52 4f 52 5f 43 41 4e 4e ',.................DB_ERROR_CANN
5260 4f 54 5f 44 45 4c 45 54 45 20 20 20 20 20 20 3d 3e 20 27 63 61 6e 20 6e 6f 74 20 64 65 6c 65 74 OT_DELETE......=>.'can.not.delet
5280 65 27 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 44 42 5f 45 52 52 4f 52 5f 43 41 4e e',.................DB_ERROR_CAN
52a0 4e 4f 54 5f 44 52 4f 50 20 20 20 20 20 20 20 20 3d 3e 20 27 63 61 6e 20 6e 6f 74 20 64 72 6f 70 NOT_DROP........=>.'can.not.drop
52c0 27 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 44 42 5f 45 52 52 4f 52 5f 43 4f 4e 53 ',.................DB_ERROR_CONS
52e0 54 52 41 49 4e 54 20 20 20 20 20 20 20 20 20 3d 3e 20 27 63 6f 6e 73 74 72 61 69 6e 74 20 76 69 TRAINT.........=>.'constraint.vi
5300 6f 6c 61 74 69 6f 6e 27 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 44 42 5f 45 52 52 olation',.................DB_ERR
5320 4f 52 5f 44 49 56 5a 45 52 4f 20 20 20 20 20 20 20 20 20 20 20 20 3d 3e 20 27 64 69 76 69 73 69 OR_DIVZERO............=>.'divisi
5340 6f 6e 20 62 79 20 7a 65 72 6f 27 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 44 42 5f on.by.zero',.................DB_
5360 45 52 52 4f 52 5f 49 4e 56 41 4c 49 44 20 20 20 20 20 20 20 20 20 20 20 20 3d 3e 20 27 69 6e 76 ERROR_INVALID............=>.'inv
5380 61 6c 69 64 27 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 44 42 5f 45 52 52 4f 52 5f alid',.................DB_ERROR_
53a0 49 4e 56 41 4c 49 44 5f 44 41 54 45 20 20 20 20 20 20 20 3d 3e 20 27 69 6e 76 61 6c 69 64 20 64 INVALID_DATE.......=>.'invalid.d
53c0 61 74 65 20 6f 72 20 74 69 6d 65 27 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 44 42 ate.or.time',.................DB
53e0 5f 45 52 52 4f 52 5f 49 4e 56 41 4c 49 44 5f 4e 55 4d 42 45 52 20 20 20 20 20 3d 3e 20 27 69 6e _ERROR_INVALID_NUMBER.....=>.'in
5400 76 61 6c 69 64 20 6e 75 6d 62 65 72 27 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 44 valid.number',.................D
5420 42 5f 45 52 52 4f 52 5f 4d 49 53 4d 41 54 43 48 20 20 20 20 20 20 20 20 20 20 20 3d 3e 20 27 6d B_ERROR_MISMATCH...........=>.'m
5440 69 73 6d 61 74 63 68 27 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 44 42 5f 45 52 52 ismatch',.................DB_ERR
5460 4f 52 5f 4e 4f 44 42 53 45 4c 45 43 54 45 44 20 20 20 20 20 20 20 3d 3e 20 27 6e 6f 20 64 61 74 OR_NODBSELECTED.......=>.'no.dat
5480 61 62 61 73 65 20 73 65 6c 65 63 74 65 64 27 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 abase.selected',................
54a0 20 44 42 5f 45 52 52 4f 52 5f 4e 4f 53 55 43 48 46 49 45 4c 44 20 20 20 20 20 20 20 20 3d 3e 20 .DB_ERROR_NOSUCHFIELD........=>.
54c0 27 6e 6f 20 73 75 63 68 20 66 69 65 6c 64 27 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 'no.such.field',................
54e0 20 44 42 5f 45 52 52 4f 52 5f 4e 4f 53 55 43 48 54 41 42 4c 45 20 20 20 20 20 20 20 20 3d 3e 20 .DB_ERROR_NOSUCHTABLE........=>.
5500 27 6e 6f 20 73 75 63 68 20 74 61 62 6c 65 27 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 'no.such.table',................
5520 20 44 42 5f 45 52 52 4f 52 5f 4e 4f 54 5f 43 41 50 41 42 4c 45 20 20 20 20 20 20 20 20 3d 3e 20 .DB_ERROR_NOT_CAPABLE........=>.
5540 27 44 42 20 62 61 63 6b 65 6e 64 20 6e 6f 74 20 63 61 70 61 62 6c 65 27 2c 0a 20 20 20 20 20 20 'DB.backend.not.capable',.......
5560 20 20 20 20 20 20 20 20 20 20 44 42 5f 45 52 52 4f 52 5f 4e 4f 54 5f 46 4f 55 4e 44 20 20 20 20 ..........DB_ERROR_NOT_FOUND....
5580 20 20 20 20 20 20 3d 3e 20 27 6e 6f 74 20 66 6f 75 6e 64 27 2c 0a 20 20 20 20 20 20 20 20 20 20 ......=>.'not.found',...........
55a0 20 20 20 20 20 20 44 42 5f 45 52 52 4f 52 5f 4e 4f 54 5f 4c 4f 43 4b 45 44 20 20 20 20 20 20 20 ......DB_ERROR_NOT_LOCKED.......
55c0 20 20 3d 3e 20 27 6e 6f 74 20 6c 6f 63 6b 65 64 27 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ..=>.'not.locked',..............
55e0 20 20 20 44 42 5f 45 52 52 4f 52 5f 53 59 4e 54 41 58 20 20 20 20 20 20 20 20 20 20 20 20 20 3d ...DB_ERROR_SYNTAX.............=
5600 3e 20 27 73 79 6e 74 61 78 20 65 72 72 6f 72 27 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 >.'syntax.error',...............
5620 20 20 44 42 5f 45 52 52 4f 52 5f 55 4e 53 55 50 50 4f 52 54 45 44 20 20 20 20 20 20 20 20 3d 3e ..DB_ERROR_UNSUPPORTED........=>
5640 20 27 6e 6f 74 20 73 75 70 70 6f 72 74 65 64 27 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .'not.supported',...............
5660 20 20 44 42 5f 45 52 52 4f 52 5f 56 41 4c 55 45 5f 43 4f 55 4e 54 5f 4f 4e 5f 52 4f 57 20 3d 3e ..DB_ERROR_VALUE_COUNT_ON_ROW.=>
5680 20 27 76 61 6c 75 65 20 63 6f 75 6e 74 20 6f 6e 20 72 6f 77 27 2c 0a 20 20 20 20 20 20 20 20 20 .'value.count.on.row',..........
56a0 20 20 20 20 20 20 20 44 42 5f 45 52 52 4f 52 5f 49 4e 56 41 4c 49 44 5f 44 53 4e 20 20 20 20 20 .......DB_ERROR_INVALID_DSN.....
56c0 20 20 20 3d 3e 20 27 69 6e 76 61 6c 69 64 20 44 53 4e 27 2c 0a 20 20 20 20 20 20 20 20 20 20 20 ...=>.'invalid.DSN',............
56e0 20 20 20 20 20 44 42 5f 45 52 52 4f 52 5f 43 4f 4e 4e 45 43 54 5f 46 41 49 4c 45 44 20 20 20 20 .....DB_ERROR_CONNECT_FAILED....
5700 20 3d 3e 20 27 63 6f 6e 6e 65 63 74 20 66 61 69 6c 65 64 27 2c 0a 20 20 20 20 20 20 20 20 20 20 .=>.'connect.failed',...........
5720 20 20 20 20 20 20 44 42 5f 4f 4b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ......DB_OK.....................
5740 20 20 3d 3e 20 27 6e 6f 20 65 72 72 6f 72 27 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..=>.'no.error',................
5760 20 44 42 5f 57 41 52 4e 49 4e 47 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3d 3e 20 .DB_WARNING..................=>.
5780 27 75 6e 6b 6e 6f 77 6e 20 77 61 72 6e 69 6e 67 27 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 'unknown.warning',..............
57a0 20 20 20 44 42 5f 57 41 52 4e 49 4e 47 5f 52 45 41 44 5f 4f 4e 4c 59 20 20 20 20 20 20 20 20 3d ...DB_WARNING_READ_ONLY........=
57c0 3e 20 27 72 65 61 64 20 6f 6e 6c 79 27 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 44 >.'read.only',.................D
57e0 42 5f 45 52 52 4f 52 5f 4e 45 45 44 5f 4d 4f 52 45 5f 44 41 54 41 20 20 20 20 20 3d 3e 20 27 69 B_ERROR_NEED_MORE_DATA.....=>.'i
5800 6e 73 75 66 66 69 63 69 65 6e 74 20 64 61 74 61 20 73 75 70 70 6c 69 65 64 27 2c 0a 20 20 20 20 nsufficient.data.supplied',.....
5820 20 20 20 20 20 20 20 20 20 20 20 20 44 42 5f 45 52 52 4f 52 5f 45 58 54 45 4e 53 49 4f 4e 5f 4e ............DB_ERROR_EXTENSION_N
5840 4f 54 5f 46 4f 55 4e 44 3d 3e 20 27 65 78 74 65 6e 73 69 6f 6e 20 6e 6f 74 20 66 6f 75 6e 64 27 OT_FOUND=>.'extension.not.found'
5860 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 44 42 5f 45 52 52 4f 52 5f 4e 4f 53 55 43 ,.................DB_ERROR_NOSUC
5880 48 44 42 20 20 20 20 20 20 20 20 20 20 20 3d 3e 20 27 6e 6f 20 73 75 63 68 20 64 61 74 61 62 61 HDB...........=>.'no.such.databa
58a0 73 65 27 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 44 42 5f 45 52 52 4f 52 5f 41 43 se',.................DB_ERROR_AC
58c0 43 45 53 53 5f 56 49 4f 4c 41 54 49 4f 4e 20 20 20 3d 3e 20 27 69 6e 73 75 66 66 69 63 69 65 6e CESS_VIOLATION...=>.'insufficien
58e0 74 20 70 65 72 6d 69 73 73 69 6f 6e 73 27 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 t.permissions',.................
5900 44 42 5f 45 52 52 4f 52 5f 54 52 55 4e 43 41 54 45 44 20 20 20 20 20 20 20 20 20 20 3d 3e 20 27 DB_ERROR_TRUNCATED..........=>.'
5920 74 72 75 6e 63 61 74 65 64 27 0a 20 20 20 20 20 20 20 20 20 20 20 20 29 3b 0a 20 20 20 20 20 20 truncated'.............);.......
5940 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 69 66 20 28 44 42 3a 3a 69 73 45 72 72 6f 72 28 24 76 61 ..}..........if.(DB::isError($va
5960 6c 75 65 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 76 61 6c 75 65 20 3d 20 24 76 61 lue)).{.............$value.=.$va
5980 6c 75 65 2d 3e 67 65 74 43 6f 64 65 28 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 lue->getCode();.........}.......
59a0 20 20 20 72 65 74 75 72 6e 20 69 73 73 65 74 28 24 65 72 72 6f 72 4d 65 73 73 61 67 65 73 5b 24 ...return.isset($errorMessages[$
59c0 76 61 6c 75 65 5d 29 20 3f 20 24 65 72 72 6f 72 4d 65 73 73 61 67 65 73 5b 24 76 61 6c 75 65 5d value]).?.$errorMessages[$value]
59e0 20 3a 20 24 65 72 72 6f 72 4d 65 73 73 61 67 65 73 5b 44 42 5f 45 52 52 4f 52 5d 3b 0a 20 20 20 .:.$errorMessages[DB_ERROR];....
5a00 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 70 61 72 73 65 44 .}......//.}}}.....//.{{{.parseD
5a20 53 4e 28 29 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 50 61 72 73 65 20 61 20 64 61 74 61 SN()...../**......*.Parse.a.data
5a40 20 73 6f 75 72 63 65 20 6e 61 6d 65 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 41 20 61 72 72 .source.name......*......*.A.arr
5a60 61 79 20 77 69 74 68 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 6b 65 79 73 20 77 69 6c 6c 20 ay.with.the.following.keys.will.
5a80 62 65 20 72 65 74 75 72 6e 65 64 3a 0a 20 20 20 20 20 2a 20 20 70 68 70 74 79 70 65 3a 20 44 61 be.returned:......*..phptype:.Da
5aa0 74 61 62 61 73 65 20 62 61 63 6b 65 6e 64 20 75 73 65 64 20 69 6e 20 50 48 50 20 28 6d 79 73 71 tabase.backend.used.in.PHP.(mysq
5ac0 6c 2c 20 6f 64 62 63 20 65 74 63 2e 29 0a 20 20 20 20 20 2a 20 20 64 62 73 79 6e 74 61 78 3a 20 l,.odbc.etc.)......*..dbsyntax:.
5ae0 44 61 74 61 62 61 73 65 20 75 73 65 64 20 77 69 74 68 20 72 65 67 61 72 64 73 20 74 6f 20 53 51 Database.used.with.regards.to.SQ
5b00 4c 20 73 79 6e 74 61 78 20 65 74 63 2e 0a 20 20 20 20 20 2a 20 20 70 72 6f 74 6f 63 6f 6c 3a 20 L.syntax.etc.......*..protocol:.
5b20 43 6f 6d 6d 75 6e 69 63 61 74 69 6f 6e 20 70 72 6f 74 6f 63 6f 6c 20 74 6f 20 75 73 65 20 28 74 Communication.protocol.to.use.(t
5b40 63 70 2c 20 75 6e 69 78 20 65 74 63 2e 29 0a 20 20 20 20 20 2a 20 20 68 6f 73 74 73 70 65 63 3a cp,.unix.etc.)......*..hostspec:
5b60 20 48 6f 73 74 20 73 70 65 63 69 66 69 63 61 74 69 6f 6e 20 28 68 6f 73 74 6e 61 6d 65 5b 3a 70 .Host.specification.(hostname[:p
5b80 6f 72 74 5d 29 0a 20 20 20 20 20 2a 20 20 64 61 74 61 62 61 73 65 3a 20 44 61 74 61 62 61 73 65 ort])......*..database:.Database
5ba0 20 74 6f 20 75 73 65 20 6f 6e 20 74 68 65 20 44 42 4d 53 20 73 65 72 76 65 72 0a 20 20 20 20 20 .to.use.on.the.DBMS.server......
5bc0 2a 20 20 75 73 65 72 6e 61 6d 65 3a 20 55 73 65 72 20 6e 61 6d 65 20 66 6f 72 20 6c 6f 67 69 6e *..username:.User.name.for.login
5be0 0a 20 20 20 20 20 2a 20 20 70 61 73 73 77 6f 72 64 3a 20 50 61 73 73 77 6f 72 64 20 66 6f 72 20 ......*..password:.Password.for.
5c00 6c 6f 67 69 6e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 54 68 65 20 66 6f 72 6d 61 74 20 6f login......*......*.The.format.o
5c20 66 20 74 68 65 20 73 75 70 70 6c 69 65 64 20 44 53 4e 20 69 73 20 69 6e 20 69 74 73 20 66 75 6c f.the.supplied.DSN.is.in.its.ful
5c40 6c 65 73 74 20 66 6f 72 6d 3a 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 20 70 68 70 74 79 70 lest.form:......*......*..phptyp
5c60 65 28 64 62 73 79 6e 74 61 78 29 3a 2f 2f 75 73 65 72 6e 61 6d 65 3a 70 61 73 73 77 6f 72 64 40 e(dbsyntax)://username:password@
5c80 70 72 6f 74 6f 63 6f 6c 2b 68 6f 73 74 73 70 65 63 2f 64 61 74 61 62 61 73 65 0a 20 20 20 20 20 protocol+hostspec/database......
5ca0 2a 0a 20 20 20 20 20 2a 20 4d 6f 73 74 20 76 61 72 69 61 74 69 6f 6e 73 20 61 72 65 20 61 6c 6c *......*.Most.variations.are.all
5cc0 6f 77 65 64 3a 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 20 70 68 70 74 79 70 65 3a 2f 2f 75 owed:......*......*..phptype://u
5ce0 73 65 72 6e 61 6d 65 3a 70 61 73 73 77 6f 72 64 40 70 72 6f 74 6f 63 6f 6c 2b 68 6f 73 74 73 70 sername:password@protocol+hostsp
5d00 65 63 3a 31 31 30 2f 2f 75 73 72 2f 64 62 5f 66 69 6c 65 2e 64 62 0a 20 20 20 20 20 2a 20 20 70 ec:110//usr/db_file.db......*..p
5d20 68 70 74 79 70 65 3a 2f 2f 75 73 65 72 6e 61 6d 65 3a 70 61 73 73 77 6f 72 64 40 68 6f 73 74 73 hptype://username:password@hosts
5d40 70 65 63 2f 64 61 74 61 62 61 73 65 5f 6e 61 6d 65 0a 20 20 20 20 20 2a 20 20 70 68 70 74 79 70 pec/database_name......*..phptyp
5d60 65 3a 2f 2f 75 73 65 72 6e 61 6d 65 3a 70 61 73 73 77 6f 72 64 40 68 6f 73 74 73 70 65 63 0a 20 e://username:password@hostspec..
5d80 20 20 20 20 2a 20 20 70 68 70 74 79 70 65 3a 2f 2f 75 73 65 72 6e 61 6d 65 40 68 6f 73 74 73 70 ....*..phptype://username@hostsp
5da0 65 63 0a 20 20 20 20 20 2a 20 20 70 68 70 74 79 70 65 3a 2f 2f 68 6f 73 74 73 70 65 63 2f 64 61 ec......*..phptype://hostspec/da
5dc0 74 61 62 61 73 65 0a 20 20 20 20 20 2a 20 20 70 68 70 74 79 70 65 3a 2f 2f 68 6f 73 74 73 70 65 tabase......*..phptype://hostspe
5de0 63 0a 20 20 20 20 20 2a 20 20 70 68 70 74 79 70 65 28 64 62 73 79 6e 74 61 78 29 0a 20 20 20 20 c......*..phptype(dbsyntax).....
5e00 20 2a 20 20 70 68 70 74 79 70 65 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d .*..phptype......*......*.@param
5e20 20 73 74 72 69 6e 67 20 24 64 73 6e 20 44 61 74 61 20 53 6f 75 72 63 65 20 4e 61 6d 65 20 74 6f .string.$dsn.Data.Source.Name.to
5e40 20 62 65 20 70 61 72 73 65 64 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 72 65 74 75 72 6e .be.parsed......*......*.@return
5e60 20 61 72 72 61 79 20 61 6e 20 61 73 73 6f 63 69 61 74 69 76 65 20 61 72 72 61 79 0a 20 20 20 20 .array.an.associative.array.....
5e80 20 2a 0a 20 20 20 20 20 2a 20 40 61 75 74 68 6f 72 20 54 6f 6d 61 73 20 56 2e 56 2e 43 6f 78 20 .*......*.@author.Tomas.V.V.Cox.
5ea0 3c 63 6f 78 40 69 64 65 63 6e 65 74 2e 63 6f 6d 3e 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 66 75 <cox@idecnet.com>......*/.....fu
5ec0 6e 63 74 69 6f 6e 20 70 61 72 73 65 44 53 4e 28 24 64 73 6e 29 0a 20 20 20 20 7b 0a 20 20 20 20 nction.parseDSN($dsn).....{.....
5ee0 20 20 20 20 69 66 20 28 69 73 5f 61 72 72 61 79 28 24 64 73 6e 29 29 20 7b 0a 20 20 20 20 20 20 ....if.(is_array($dsn)).{.......
5f00 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 64 73 6e 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 ......return.$dsn;.........}....
5f20 20 20 20 20 20 20 24 70 61 72 73 65 64 20 3d 20 61 72 72 61 79 28 0a 20 20 20 20 20 20 20 20 20 ......$parsed.=.array(..........
5f40 20 20 20 27 70 68 70 74 79 70 65 27 20 20 3d 3e 20 66 61 6c 73 65 2c 0a 20 20 20 20 20 20 20 20 ...'phptype'..=>.false,.........
5f60 20 20 20 20 27 64 62 73 79 6e 74 61 78 27 20 3d 3e 20 66 61 6c 73 65 2c 0a 20 20 20 20 20 20 20 ....'dbsyntax'.=>.false,........
5f80 20 20 20 20 20 27 75 73 65 72 6e 61 6d 65 27 20 3d 3e 20 66 61 6c 73 65 2c 0a 20 20 20 20 20 20 .....'username'.=>.false,.......
5fa0 20 20 20 20 20 20 27 70 61 73 73 77 6f 72 64 27 20 3d 3e 20 66 61 6c 73 65 2c 0a 20 20 20 20 20 ......'password'.=>.false,......
5fc0 20 20 20 20 20 20 20 27 70 72 6f 74 6f 63 6f 6c 27 20 3d 3e 20 66 61 6c 73 65 2c 0a 20 20 20 20 .......'protocol'.=>.false,.....
5fe0 20 20 20 20 20 20 20 20 27 68 6f 73 74 73 70 65 63 27 20 3d 3e 20 66 61 6c 73 65 2c 0a 20 20 20 ........'hostspec'.=>.false,....
6000 20 20 20 20 20 20 20 20 20 27 70 6f 72 74 27 20 20 20 20 20 3d 3e 20 66 61 6c 73 65 2c 0a 20 20 .........'port'.....=>.false,...
6020 20 20 20 20 20 20 20 20 20 20 27 73 6f 63 6b 65 74 27 20 20 20 3d 3e 20 66 61 6c 73 65 2c 0a 20 ..........'socket'...=>.false,..
6040 20 20 20 20 20 20 20 20 20 20 20 27 64 61 74 61 62 61 73 65 27 20 3d 3e 20 66 61 6c 73 65 0a 20 ...........'database'.=>.false..
6060 20 20 20 20 20 20 20 29 3b 0a 0a 20 20 20 20 20 20 20 20 2f 2f 20 46 69 6e 64 20 70 68 70 74 79 .......);..........//.Find.phpty
6080 70 65 20 61 6e 64 20 64 62 73 79 6e 74 61 78 0a 20 20 20 20 20 20 20 20 69 66 20 28 28 24 70 6f pe.and.dbsyntax.........if.(($po
60a0 73 20 3d 20 73 74 72 70 6f 73 28 24 64 73 6e 2c 20 27 3a 2f 2f 27 29 29 20 21 3d 3d 20 66 61 6c s.=.strpos($dsn,.'://')).!==.fal
60c0 73 65 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 73 74 72 20 3d 20 73 75 62 73 74 72 28 se).{.............$str.=.substr(
60e0 24 64 73 6e 2c 20 30 2c 20 24 70 6f 73 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 64 73 6e $dsn,.0,.$pos);.............$dsn
6100 20 3d 20 73 75 62 73 74 72 28 24 64 73 6e 2c 20 24 70 6f 73 20 2b 20 33 29 3b 0a 20 20 20 20 20 .=.substr($dsn,.$pos.+.3);......
6120 20 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 73 74 72 20 3d 20 24 ...}.else.{.............$str.=.$
6140 64 73 6e 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 64 73 6e 20 3d 20 4e 55 4c 4c 3b 0a 20 20 dsn;.............$dsn.=.NULL;...
6160 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 2f 2f 20 47 65 74 20 70 68 70 74 79 70 65 20 ......}..........//.Get.phptype.
6180 61 6e 64 20 64 62 73 79 6e 74 61 78 0a 20 20 20 20 20 20 20 20 2f 2f 20 24 73 74 72 20 3d 3e 20 and.dbsyntax.........//.$str.=>.
61a0 70 68 70 74 79 70 65 28 64 62 73 79 6e 74 61 78 29 0a 20 20 20 20 20 20 20 20 69 66 20 28 70 72 phptype(dbsyntax).........if.(pr
61c0 65 67 5f 6d 61 74 63 68 28 27 7c 5e 28 2e 2b 3f 29 5c 28 28 2e 2a 3f 29 5c 29 24 7c 27 2c 20 24 eg_match('|^(.+?)\((.*?)\)$|',.$
61e0 73 74 72 2c 20 24 61 72 72 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 70 61 72 73 65 str,.$arr)).{.............$parse
6200 64 5b 27 70 68 70 74 79 70 65 27 5d 20 20 3d 20 24 61 72 72 5b 31 5d 3b 0a 20 20 20 20 20 20 20 d['phptype']..=.$arr[1];........
6220 20 20 20 20 20 24 70 61 72 73 65 64 5b 27 64 62 73 79 6e 74 61 78 27 5d 20 3d 20 28 65 6d 70 74 .....$parsed['dbsyntax'].=.(empt
6240 79 28 24 61 72 72 5b 32 5d 29 29 20 3f 20 24 61 72 72 5b 31 5d 20 3a 20 24 61 72 72 5b 32 5d 3b y($arr[2])).?.$arr[1].:.$arr[2];
6260 0a 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 70 .........}.else.{.............$p
6280 61 72 73 65 64 5b 27 70 68 70 74 79 70 65 27 5d 20 20 3d 20 24 73 74 72 3b 0a 20 20 20 20 20 20 arsed['phptype']..=.$str;.......
62a0 20 20 20 20 20 20 24 70 61 72 73 65 64 5b 27 64 62 73 79 6e 74 61 78 27 5d 20 3d 20 24 73 74 72 ......$parsed['dbsyntax'].=.$str
62c0 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 69 66 20 28 65 6d 70 74 79 28 24 ;.........}..........if.(empty($
62e0 64 73 6e 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 70 61 72 73 dsn)).{.............return.$pars
6300 65 64 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 2f 2f 20 47 65 74 20 28 69 ed;.........}..........//.Get.(i
6320 66 20 66 6f 75 6e 64 29 3a 20 75 73 65 72 6e 61 6d 65 20 61 6e 64 20 70 61 73 73 77 6f 72 64 0a f.found):.username.and.password.
6340 20 20 20 20 20 20 20 20 2f 2f 20 24 64 73 6e 20 3d 3e 20 75 73 65 72 6e 61 6d 65 3a 70 61 73 73 ........//.$dsn.=>.username:pass
6360 77 6f 72 64 40 70 72 6f 74 6f 63 6f 6c 2b 68 6f 73 74 73 70 65 63 2f 64 61 74 61 62 61 73 65 0a word@protocol+hostspec/database.
6380 20 20 20 20 20 20 20 20 69 66 20 28 28 24 61 74 20 3d 20 73 74 72 72 70 6f 73 28 24 64 73 6e 2c ........if.(($at.=.strrpos($dsn,
63a0 27 40 27 29 29 20 21 3d 3d 20 66 61 6c 73 65 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 '@')).!==.false).{.............$
63c0 73 74 72 20 3d 20 73 75 62 73 74 72 28 24 64 73 6e 2c 20 30 2c 20 24 61 74 29 3b 0a 20 20 20 20 str.=.substr($dsn,.0,.$at);.....
63e0 20 20 20 20 20 20 20 20 24 64 73 6e 20 3d 20 73 75 62 73 74 72 28 24 64 73 6e 2c 20 24 61 74 20 ........$dsn.=.substr($dsn,.$at.
6400 2b 20 31 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 28 24 70 6f 73 20 3d 20 73 74 +.1);.............if.(($pos.=.st
6420 72 70 6f 73 28 24 73 74 72 2c 20 27 3a 27 29 29 20 21 3d 3d 20 66 61 6c 73 65 29 20 7b 0a 20 20 rpos($str,.':')).!==.false).{...
6440 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 70 61 72 73 65 64 5b 27 75 73 65 72 6e 61 6d 65 27 ..............$parsed['username'
6460 5d 20 3d 20 72 61 77 75 72 6c 64 65 63 6f 64 65 28 73 75 62 73 74 72 28 24 73 74 72 2c 20 30 2c ].=.rawurldecode(substr($str,.0,
6480 20 24 70 6f 73 29 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 70 61 72 73 65 64 .$pos));.................$parsed
64a0 5b 27 70 61 73 73 77 6f 72 64 27 5d 20 3d 20 72 61 77 75 72 6c 64 65 63 6f 64 65 28 73 75 62 73 ['password'].=.rawurldecode(subs
64c0 74 72 28 24 73 74 72 2c 20 24 70 6f 73 20 2b 20 31 29 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 tr($str,.$pos.+.1));............
64e0 20 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 70 61 72 73 65 .}.else.{.................$parse
6500 64 5b 27 75 73 65 72 6e 61 6d 65 27 5d 20 3d 20 72 61 77 75 72 6c 64 65 63 6f 64 65 28 24 73 74 d['username'].=.rawurldecode($st
6520 72 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 r);.............}.........}.....
6540 20 20 20 20 20 2f 2f 20 46 69 6e 64 20 70 72 6f 74 6f 63 6f 6c 20 61 6e 64 20 68 6f 73 74 73 70 .....//.Find.protocol.and.hostsp
6560 65 63 0a 0a 20 20 20 20 20 20 20 20 2f 2f 20 24 64 73 6e 20 3d 3e 20 70 72 6f 74 6f 28 70 72 6f ec..........//.$dsn.=>.proto(pro
6580 74 6f 5f 6f 70 74 73 29 2f 64 61 74 61 62 61 73 65 0a 20 20 20 20 20 20 20 20 69 66 20 28 70 72 to_opts)/database.........if.(pr
65a0 65 67 5f 6d 61 74 63 68 28 27 7c 5e 28 5b 5e 28 5d 2b 29 5c 28 28 2e 2a 3f 29 5c 29 2f 3f 28 2e eg_match('|^([^(]+)\((.*?)\)/?(.
65c0 2a 3f 29 24 7c 27 2c 20 24 64 73 6e 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 20 20 20 20 20 20 20 *?)$|',.$dsn,.$match)).{........
65e0 20 20 20 20 20 24 70 72 6f 74 6f 20 20 20 20 20 20 20 3d 20 24 6d 61 74 63 68 5b 31 5d 3b 0a 20 .....$proto.......=.$match[1];..
6600 20 20 20 20 20 20 20 20 20 20 20 24 70 72 6f 74 6f 5f 6f 70 74 73 20 20 3d 20 28 21 65 6d 70 74 ...........$proto_opts..=.(!empt
6620 79 28 24 6d 61 74 63 68 5b 32 5d 29 29 20 3f 20 24 6d 61 74 63 68 5b 32 5d 20 3a 20 66 61 6c 73 y($match[2])).?.$match[2].:.fals
6640 65 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 64 73 6e 20 20 20 20 20 20 20 20 20 3d 20 24 6d e;.............$dsn.........=.$m
6660 61 74 63 68 5b 33 5d 3b 0a 0a 20 20 20 20 20 20 20 20 2f 2f 20 24 64 73 6e 20 3d 3e 20 70 72 6f atch[3];..........//.$dsn.=>.pro
6680 74 6f 63 6f 6c 2b 68 6f 73 74 73 70 65 63 2f 64 61 74 61 62 61 73 65 20 28 6f 6c 64 20 66 6f 72 tocol+hostspec/database.(old.for
66a0 6d 61 74 29 0a 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 20 20 20 mat).........}.else.{...........
66c0 20 20 69 66 20 28 73 74 72 70 6f 73 28 24 64 73 6e 2c 20 27 2b 27 29 20 21 3d 3d 20 66 61 6c 73 ..if.(strpos($dsn,.'+').!==.fals
66e0 65 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 69 73 74 28 24 70 72 6f 74 6f e).{.................list($proto
6700 2c 20 24 64 73 6e 29 20 3d 20 65 78 70 6c 6f 64 65 28 27 2b 27 2c 20 24 64 73 6e 2c 20 32 29 3b ,.$dsn).=.explode('+',.$dsn,.2);
6720 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 73 .............}.............if.(s
6740 74 72 70 6f 73 28 24 64 73 6e 2c 20 27 2f 27 29 20 21 3d 3d 20 66 61 6c 73 65 29 20 7b 0a 20 20 trpos($dsn,.'/').!==.false).{...
6760 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 69 73 74 28 24 70 72 6f 74 6f 5f 6f 70 74 73 2c 20 ..............list($proto_opts,.
6780 24 64 73 6e 29 20 3d 20 65 78 70 6c 6f 64 65 28 27 2f 27 2c 20 24 64 73 6e 2c 20 32 29 3b 0a 20 $dsn).=.explode('/',.$dsn,.2);..
67a0 20 20 20 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 ...........}.else.{.............
67c0 20 20 20 20 24 70 72 6f 74 6f 5f 6f 70 74 73 20 3d 20 24 64 73 6e 3b 0a 20 20 20 20 20 20 20 20 ....$proto_opts.=.$dsn;.........
67e0 20 20 20 20 20 20 20 20 24 64 73 6e 20 3d 20 6e 75 6c 6c 3b 0a 20 20 20 20 20 20 20 20 20 20 20 ........$dsn.=.null;............
6800 20 7d 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 2f 2f 20 70 72 6f 63 65 73 73 .}.........}..........//.process
6820 20 74 68 65 20 64 69 66 66 65 72 65 6e 74 20 70 72 6f 74 6f 63 6f 6c 20 6f 70 74 69 6f 6e 73 0a .the.different.protocol.options.
6840 20 20 20 20 20 20 20 20 24 70 61 72 73 65 64 5b 27 70 72 6f 74 6f 63 6f 6c 27 5d 20 3d 20 28 21 ........$parsed['protocol'].=.(!
6860 65 6d 70 74 79 28 24 70 72 6f 74 6f 29 29 20 3f 20 24 70 72 6f 74 6f 20 3a 20 27 74 63 70 27 3b empty($proto)).?.$proto.:.'tcp';
6880 0a 20 20 20 20 20 20 20 20 24 70 72 6f 74 6f 5f 6f 70 74 73 20 3d 20 72 61 77 75 72 6c 64 65 63 .........$proto_opts.=.rawurldec
68a0 6f 64 65 28 24 70 72 6f 74 6f 5f 6f 70 74 73 29 3b 0a 20 20 20 20 20 20 20 20 69 66 20 28 24 70 ode($proto_opts);.........if.($p
68c0 61 72 73 65 64 5b 27 70 72 6f 74 6f 63 6f 6c 27 5d 20 3d 3d 20 27 74 63 70 27 29 20 7b 0a 20 20 arsed['protocol'].==.'tcp').{...
68e0 20 20 20 20 20 20 20 20 20 20 69 66 20 28 73 74 72 70 6f 73 28 24 70 72 6f 74 6f 5f 6f 70 74 73 ..........if.(strpos($proto_opts
6900 2c 20 27 3a 27 29 20 21 3d 3d 20 66 61 6c 73 65 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 ,.':').!==.false).{.............
6920 20 20 20 20 6c 69 73 74 28 24 70 61 72 73 65 64 5b 27 68 6f 73 74 73 70 65 63 27 5d 2c 20 24 70 ....list($parsed['hostspec'],.$p
6940 61 72 73 65 64 5b 27 70 6f 72 74 27 5d 29 20 3d 20 65 78 70 6c 6f 64 65 28 27 3a 27 2c 20 24 70 arsed['port']).=.explode(':',.$p
6960 72 6f 74 6f 5f 6f 70 74 73 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b roto_opts);.............}.else.{
6980 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 70 61 72 73 65 64 5b 27 68 6f 73 74 73 70 .................$parsed['hostsp
69a0 65 63 27 5d 20 3d 20 24 70 72 6f 74 6f 5f 6f 70 74 73 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 ec'].=.$proto_opts;.............
69c0 7d 0a 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 69 66 20 28 24 70 61 72 73 65 64 5b 27 70 72 6f }.........}.elseif.($parsed['pro
69e0 74 6f 63 6f 6c 27 5d 20 3d 3d 20 27 75 6e 69 78 27 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 tocol'].==.'unix').{............
6a00 20 24 70 61 72 73 65 64 5b 27 73 6f 63 6b 65 74 27 5d 20 3d 20 24 70 72 6f 74 6f 5f 6f 70 74 73 .$parsed['socket'].=.$proto_opts
6a20 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 2f 2f 20 47 65 74 20 64 61 62 61 ;.........}..........//.Get.daba
6a40 73 65 20 69 66 20 61 6e 79 0a 20 20 20 20 20 20 20 20 2f 2f 20 24 64 73 6e 20 3d 3e 20 64 61 74 se.if.any.........//.$dsn.=>.dat
6a60 61 62 61 73 65 0a 20 20 20 20 20 20 20 20 69 66 20 28 21 65 6d 70 74 79 28 24 64 73 6e 29 29 20 abase.........if.(!empty($dsn)).
6a80 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 2f 64 61 74 61 62 61 73 65 0a 20 20 20 20 20 {.............//./database......
6aa0 20 20 20 20 20 20 20 69 66 20 28 28 24 70 6f 73 20 3d 20 73 74 72 70 6f 73 28 24 64 73 6e 2c 20 .......if.(($pos.=.strpos($dsn,.
6ac0 27 3f 27 29 29 20 3d 3d 3d 20 66 61 6c 73 65 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 '?')).===.false).{..............
6ae0 20 20 20 24 70 61 72 73 65 64 5b 27 64 61 74 61 62 61 73 65 27 5d 20 3d 20 24 64 73 6e 3b 0a 20 ...$parsed['database'].=.$dsn;..
6b00 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 2f 64 61 74 61 62 61 73 65 3f 70 61 72 61 6d 31 3d 76 ...........//./database?param1=v
6b20 61 6c 75 65 31 26 70 61 72 61 6d 32 3d 76 61 6c 75 65 32 0a 20 20 20 20 20 20 20 20 20 20 20 20 alue1&param2=value2.............
6b40 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 70 61 72 73 65 64 }.else.{.................$parsed
6b60 5b 27 64 61 74 61 62 61 73 65 27 5d 20 3d 20 73 75 62 73 74 72 28 24 64 73 6e 2c 20 30 2c 20 24 ['database'].=.substr($dsn,.0,.$
6b80 70 6f 73 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 64 73 6e 20 3d 20 73 75 62 pos);.................$dsn.=.sub
6ba0 73 74 72 28 24 64 73 6e 2c 20 24 70 6f 73 20 2b 20 31 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 str($dsn,.$pos.+.1);............
6bc0 20 20 20 20 20 69 66 20 28 73 74 72 70 6f 73 28 24 64 73 6e 2c 20 27 26 27 29 20 21 3d 3d 20 66 .....if.(strpos($dsn,.'&').!==.f
6be0 61 6c 73 65 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 6f 70 74 alse).{.....................$opt
6c00 73 20 3d 20 65 78 70 6c 6f 64 65 28 27 26 27 2c 20 24 64 73 6e 29 3b 0a 20 20 20 20 20 20 20 20 s.=.explode('&',.$dsn);.........
6c20 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 20 2f 2f 20 64 61 74 61 62 61 73 65 3f 70 61 72 ........}.else.{.//.database?par
6c40 61 6d 31 3d 76 61 6c 75 65 31 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 am1=value1.....................$
6c60 6f 70 74 73 20 3d 20 61 72 72 61 79 28 24 64 73 6e 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 opts.=.array($dsn);.............
6c80 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 65 61 63 68 20 28 24 ....}.................foreach.($
6ca0 6f 70 74 73 20 61 73 20 24 6f 70 74 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 opts.as.$opt).{.................
6cc0 20 20 20 20 6c 69 73 74 28 24 6b 65 79 2c 20 24 76 61 6c 75 65 29 20 3d 20 65 78 70 6c 6f 64 65 ....list($key,.$value).=.explode
6ce0 28 27 3d 27 2c 20 24 6f 70 74 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ('=',.$opt);....................
6d00 20 69 66 20 28 21 69 73 73 65 74 28 24 70 61 72 73 65 64 5b 24 6b 65 79 5d 29 29 20 7b 20 2f 2f .if.(!isset($parsed[$key])).{.//
6d20 20 64 6f 6e 27 74 20 61 6c 6c 6f 77 20 70 61 72 61 6d 73 20 6f 76 65 72 77 72 69 74 65 0a 20 20 .don't.allow.params.overwrite...
6d40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 70 61 72 73 65 64 5b 24 6b ......................$parsed[$k
6d60 65 79 5d 20 3d 20 72 61 77 75 72 6c 64 65 63 6f 64 65 28 24 76 61 6c 75 65 29 3b 0a 20 20 20 20 ey].=.rawurldecode($value);.....
6d80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................}...............
6da0 20 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 ..}.............}.........}.....
6dc0 20 20 20 20 20 72 65 74 75 72 6e 20 24 70 61 72 73 65 64 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 .....return.$parsed;.....}......
6de0 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 61 73 73 65 72 74 45 78 74 65 6e 73 69 6f //.}}}.....//.{{{.assertExtensio
6e00 6e 28 29 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 4c 6f 61 64 20 61 20 50 48 50 20 64 61 n()...../**......*.Load.a.PHP.da
6e20 74 61 62 61 73 65 20 65 78 74 65 6e 73 69 6f 6e 20 69 66 20 69 74 20 69 73 20 6e 6f 74 20 6c 6f tabase.extension.if.it.is.not.lo
6e40 61 64 65 64 20 61 6c 72 65 61 64 79 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 61 63 63 aded.already.......*......*.@acc
6e60 65 73 73 20 70 75 62 6c 69 63 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 ess.public......*......*.@param.
6e80 73 74 72 69 6e 67 20 24 6e 61 6d 65 20 74 68 65 20 62 61 73 65 20 6e 61 6d 65 20 6f 66 20 74 68 string.$name.the.base.name.of.th
6ea0 65 20 65 78 74 65 6e 73 69 6f 6e 20 28 77 69 74 68 6f 75 74 20 74 68 65 20 2e 73 6f 20 6f 72 0a e.extension.(without.the..so.or.
6ec0 20 20 20 20 20 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2e 64 6c 6c 20 .....*......................dll.
6ee0 73 75 66 66 69 78 29 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 72 65 74 75 72 6e 20 62 6f suffix)......*......*.@return.bo
6f00 6f 6c 65 61 6e 20 74 72 75 65 20 69 66 20 74 68 65 20 65 78 74 65 6e 73 69 6f 6e 20 77 61 73 20 olean.true.if.the.extension.was.
6f20 61 6c 72 65 61 64 79 20 6f 72 20 73 75 63 63 65 73 73 66 75 6c 6c 79 0a 20 20 20 20 20 2a 20 20 already.or.successfully......*..
6f40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 6f 61 64 65 64 2c 20 66 61 6c 73 65 20 69 66 20 ...............loaded,.false.if.
6f60 69 74 20 63 6f 75 6c 64 20 6e 6f 74 20 62 65 20 6c 6f 61 64 65 64 0a 20 20 20 20 20 2a 2f 0a 20 it.could.not.be.loaded......*/..
6f80 20 20 20 66 75 6e 63 74 69 6f 6e 20 61 73 73 65 72 74 45 78 74 65 6e 73 69 6f 6e 28 24 6e 61 6d ...function.assertExtension($nam
6fa0 65 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 69 66 20 28 21 65 78 74 65 6e 73 69 6f 6e 5f e).....{.........if.(!extension_
6fc0 6c 6f 61 64 65 64 28 24 6e 61 6d 65 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 64 6c loaded($name)).{.............$dl
6fe0 65 78 74 20 3d 20 4f 53 5f 57 49 4e 44 4f 57 53 20 3f 20 27 2e 64 6c 6c 27 20 3a 20 27 2e 73 6f ext.=.OS_WINDOWS.?.'.dll'.:.'.so
7000 27 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 64 6c 70 72 65 66 69 78 20 3d 20 4f 53 5f 57 49 ';.............$dlprefix.=.OS_WI
7020 4e 44 4f 57 53 20 3f 20 27 70 68 70 5f 27 20 3a 20 27 27 3b 0a 20 20 20 20 20 20 20 20 20 20 20 NDOWS.?.'php_'.:.'';............
7040 20 40 64 6c 28 24 64 6c 70 72 65 66 69 78 20 2e 20 24 6e 61 6d 65 20 2e 20 24 64 6c 65 78 74 29 .@dl($dlprefix...$name...$dlext)
7060 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 65 78 74 65 6e 73 69 6f 6e 5f 6c ;.............return.extension_l
7080 6f 61 64 65 64 28 24 6e 61 6d 65 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 oaded($name);.........}.........
70a0 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 20 20 20 20 7d 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 7d 0a return.true;.....}.....//.}}}.}.
70c0 2f 2f 20 7d 7d 7d 0a 0a 2f 2f 20 7b 7b 7b 20 63 6c 61 73 73 20 44 42 5f 45 72 72 6f 72 0a 2f 2a //.}}}..//.{{{.class.DB_Error./*
70e0 2a 0a 20 2a 20 44 42 5f 45 72 72 6f 72 20 69 6d 70 6c 65 6d 65 6e 74 73 20 61 20 63 6c 61 73 73 *..*.DB_Error.implements.a.class
7100 20 66 6f 72 20 72 65 70 6f 72 74 69 6e 67 20 70 6f 72 74 61 62 6c 65 20 64 61 74 61 62 61 73 65 .for.reporting.portable.database
7120 20 65 72 72 6f 72 0a 20 2a 20 6d 65 73 73 61 67 65 73 2e 0a 20 2a 0a 20 2a 20 40 70 61 63 6b 61 .error..*.messages...*..*.@packa
7140 67 65 20 20 44 42 0a 20 2a 20 40 61 75 74 68 6f 72 20 53 74 69 67 20 42 61 6b 6b 65 6e 20 3c 73 ge..DB..*.@author.Stig.Bakken.<s
7160 73 62 40 70 68 70 2e 6e 65 74 3e 0a 20 2a 2f 0a 63 6c 61 73 73 20 44 42 5f 45 72 72 6f 72 20 65 sb@php.net>..*/.class.DB_Error.e
7180 78 74 65 6e 64 73 20 50 45 41 52 5f 45 72 72 6f 72 0a 7b 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 63 xtends.PEAR_Error.{.....//.{{{.c
71a0 6f 6e 73 74 72 75 63 74 6f 72 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 44 42 5f 45 72 72 onstructor...../**......*.DB_Err
71c0 6f 72 20 63 6f 6e 73 74 72 75 63 74 6f 72 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 70 or.constructor.......*......*.@p
71e0 61 72 61 6d 20 6d 69 78 65 64 20 20 20 24 63 6f 64 65 20 20 20 44 42 20 65 72 72 6f 72 20 63 6f aram.mixed...$code...DB.error.co
7200 64 65 2c 20 6f 72 20 73 74 72 69 6e 67 20 77 69 74 68 20 65 72 72 6f 72 20 6d 65 73 73 61 67 65 de,.or.string.with.error.message
7220 2e 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 69 6e 74 65 67 65 72 20 24 6d 6f 64 65 20 20 20 .......*.@param.integer.$mode...
7240 77 68 61 74 20 22 65 72 72 6f 72 20 6d 6f 64 65 22 20 74 6f 20 6f 70 65 72 61 74 65 20 69 6e 0a what."error.mode".to.operate.in.
7260 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 69 6e 74 65 67 65 72 20 24 6c 65 76 65 6c 20 20 77 68 .....*.@param.integer.$level..wh
7280 61 74 20 65 72 72 6f 72 20 6c 65 76 65 6c 20 74 6f 20 75 73 65 20 66 6f 72 20 24 6d 6f 64 65 20 at.error.level.to.use.for.$mode.
72a0 26 20 50 45 41 52 5f 45 52 52 4f 52 5f 54 52 49 47 47 45 52 0a 20 20 20 20 20 2a 20 40 70 61 72 &.PEAR_ERROR_TRIGGER......*.@par
72c0 61 6d 20 6d 69 78 65 64 20 20 20 24 64 65 62 75 67 69 6e 66 6f 20 20 61 64 64 69 74 69 6f 6e 61 am.mixed...$debuginfo..additiona
72e0 6c 20 64 65 62 75 67 20 69 6e 66 6f 2c 20 73 75 63 68 20 61 73 20 74 68 65 20 6c 61 73 74 20 71 l.debug.info,.such.as.the.last.q
7300 75 65 72 79 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 61 63 63 65 73 73 20 70 75 62 6c 69 uery......*......*.@access.publi
7320 63 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 73 65 65 20 50 45 41 52 5f 45 72 72 6f 72 0a c......*......*.@see.PEAR_Error.
7340 20 20 20 20 20 2a 2f 0a 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 44 42 5f 45 72 72 6f 72 28 24 .....*/......function.DB_Error($
7360 63 6f 64 65 20 3d 20 44 42 5f 45 52 52 4f 52 2c 20 24 6d 6f 64 65 20 3d 20 50 45 41 52 5f 45 52 code.=.DB_ERROR,.$mode.=.PEAR_ER
7380 52 4f 52 5f 52 45 54 55 52 4e 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 6c 65 76 65 6c ROR_RETURN,...............$level
73a0 20 3d 20 45 5f 55 53 45 52 5f 4e 4f 54 49 43 45 2c 20 24 64 65 62 75 67 69 6e 66 6f 20 3d 20 6e .=.E_USER_NOTICE,.$debuginfo.=.n
73c0 75 6c 6c 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 69 66 20 28 69 73 5f 69 6e 74 28 24 63 ull).....{.........if.(is_int($c
73e0 6f 64 65 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 50 45 41 52 5f ode)).{.............$this->PEAR_
7400 45 72 72 6f 72 28 27 44 42 20 45 72 72 6f 72 3a 20 27 20 2e 20 44 42 3a 3a 65 72 72 6f 72 4d 65 Error('DB.Error:.'...DB::errorMe
7420 73 73 61 67 65 28 24 63 6f 64 65 29 2c 20 24 63 6f 64 65 2c 20 24 6d 6f 64 65 2c 20 24 6c 65 76 ssage($code),.$code,.$mode,.$lev
7440 65 6c 2c 20 24 64 65 62 75 67 69 6e 66 6f 29 3b 0a 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 el,.$debuginfo);.........}.else.
7460 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 50 45 41 52 5f 45 72 72 6f 72 28 {.............$this->PEAR_Error(
7480 22 44 42 20 45 72 72 6f 72 3a 20 24 63 6f 64 65 22 2c 20 44 42 5f 45 52 52 4f 52 2c 20 24 6d 6f "DB.Error:.$code",.DB_ERROR,.$mo
74a0 64 65 2c 20 24 6c 65 76 65 6c 2c 20 24 64 65 62 75 67 69 6e 66 6f 29 3b 0a 20 20 20 20 20 20 20 de,.$level,.$debuginfo);........
74c0 20 7d 0a 20 20 20 20 7d 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 7d 0a 2f 2f 20 7d 7d 7d 0a 0a 2f 2f .}.....}.....//.}}}.}.//.}}}..//
74e0 20 7b 7b 7b 20 63 6c 61 73 73 20 44 42 5f 52 65 73 75 6c 74 0a 2f 2a 2a 0a 20 2a 20 54 68 69 73 .{{{.class.DB_Result./**..*.This
7500 20 63 6c 61 73 73 20 69 6d 70 6c 65 6d 65 6e 74 73 20 61 20 77 72 61 70 70 65 72 20 66 6f 72 20 .class.implements.a.wrapper.for.
7520 61 20 44 42 20 72 65 73 75 6c 74 20 73 65 74 2e 0a 20 2a 20 41 20 6e 65 77 20 69 6e 73 74 61 6e a.DB.result.set...*.A.new.instan
7540 63 65 20 6f 66 20 74 68 69 73 20 63 6c 61 73 73 20 77 69 6c 6c 20 62 65 20 72 65 74 75 72 6e 65 ce.of.this.class.will.be.returne
7560 64 20 62 79 20 74 68 65 20 44 42 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 0a 20 2a 20 61 66 d.by.the.DB.implementation..*.af
7580 74 65 72 20 70 72 6f 63 65 73 73 69 6e 67 20 61 20 71 75 65 72 79 20 74 68 61 74 20 72 65 74 75 ter.processing.a.query.that.retu
75a0 72 6e 73 20 64 61 74 61 2e 0a 20 2a 0a 20 2a 20 40 70 61 63 6b 61 67 65 20 20 44 42 0a 20 2a 20 rns.data...*..*.@package..DB..*.
75c0 40 61 75 74 68 6f 72 20 53 74 69 67 20 42 61 6b 6b 65 6e 20 3c 73 73 62 40 70 68 70 2e 6e 65 74 @author.Stig.Bakken.<ssb@php.net
75e0 3e 0a 20 2a 2f 0a 0a 63 6c 61 73 73 20 44 42 5f 72 65 73 75 6c 74 0a 7b 0a 20 20 20 20 2f 2f 20 >..*/..class.DB_result.{.....//.
7600 7b 7b 7b 20 70 72 6f 70 65 72 74 69 65 73 0a 0a 20 20 20 20 76 61 72 20 24 64 62 68 3b 0a 20 20 {{{.properties......var.$dbh;...
7620 20 20 76 61 72 20 24 72 65 73 75 6c 74 3b 0a 20 20 20 20 76 61 72 20 24 72 6f 77 5f 63 6f 75 6e ..var.$result;.....var.$row_coun
7640 74 65 72 20 3d 20 6e 75 6c 6c 3b 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 2a 20 66 6f 72 20 6c 69 ter.=.null;...../**.....*.for.li
7660 6d 69 74 20 71 75 65 72 69 65 73 2c 20 74 68 65 20 72 6f 77 20 74 6f 20 73 74 61 72 74 20 66 65 mit.queries,.the.row.to.start.fe
7680 74 63 68 69 6e 67 0a 20 20 20 20 2a 20 40 76 61 72 20 69 6e 74 65 67 65 72 0a 20 20 20 20 2a 2f tching.....*.@var.integer.....*/
76a0 0a 20 20 20 20 76 61 72 20 24 6c 69 6d 69 74 5f 66 72 6f 6d 20 20 3d 20 6e 75 6c 6c 3b 0a 0a 20 .....var.$limit_from..=.null;...
76c0 20 20 20 2f 2a 2a 0a 20 20 20 20 2a 20 66 6f 72 20 6c 69 6d 69 74 20 71 75 65 72 69 65 73 2c 20 .../**.....*.for.limit.queries,.
76e0 74 68 65 20 6e 75 6d 62 65 72 20 6f 66 20 72 6f 77 73 20 74 6f 20 66 65 74 63 68 0a 20 20 20 20 the.number.of.rows.to.fetch.....
7700 2a 20 40 76 61 72 20 69 6e 74 65 67 65 72 0a 20 20 20 20 2a 2f 0a 20 20 20 20 76 61 72 20 24 6c *.@var.integer.....*/.....var.$l
7720 69 6d 69 74 5f 63 6f 75 6e 74 20 3d 20 6e 75 6c 6c 3b 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 imit_count.=.null;......//.}}}..
7740 20 20 20 2f 2f 20 7b 7b 7b 20 63 6f 6e 73 74 72 75 63 74 6f 72 0a 20 20 20 20 2f 2a 2a 0a 20 20 ...//.{{{.constructor...../**...
7760 20 20 20 2a 20 44 42 5f 72 65 73 75 6c 74 20 63 6f 6e 73 74 72 75 63 74 6f 72 2e 0a 20 20 20 20 ...*.DB_result.constructor......
7780 20 2a 20 40 70 61 72 61 6d 20 72 65 73 6f 75 72 63 65 20 26 24 64 62 68 20 20 20 44 42 20 6f 62 .*.@param.resource.&$dbh...DB.ob
77a0 6a 65 63 74 20 72 65 66 65 72 65 6e 63 65 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 72 65 73 ject.reference......*.@param.res
77c0 6f 75 72 63 65 20 24 72 65 73 75 6c 74 20 20 72 65 73 75 6c 74 20 72 65 73 6f 75 72 63 65 20 69 ource.$result..result.resource.i
77e0 64 0d 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 61 72 72 61 79 20 20 20 20 24 6f 70 74 69 6f d.......*.@param.array....$optio
7800 6e 73 20 61 73 73 6f 63 20 61 72 72 61 79 20 77 69 74 68 20 6f 70 74 69 6f 6e 61 6c 20 72 65 73 ns.assoc.array.with.optional.res
7820 75 6c 74 20 6f 70 74 69 6f 6e 73 0a 20 20 20 20 20 2a 2f 0a 0a 20 20 20 20 66 75 6e 63 74 69 6f ult.options......*/......functio
7840 6e 20 44 42 5f 72 65 73 75 6c 74 28 26 24 64 62 68 2c 20 24 72 65 73 75 6c 74 2c 20 24 6f 70 74 n.DB_result(&$dbh,.$result,.$opt
7860 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 29 0a 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 20 24 ions.=.array()).....{..........$
7880 74 68 69 73 2d 3e 64 62 68 20 3d 20 26 24 64 62 68 3b 0a 20 20 20 20 20 20 20 20 24 74 68 69 73 this->dbh.=.&$dbh;.........$this
78a0 2d 3e 72 65 73 75 6c 74 20 3d 20 24 72 65 73 75 6c 74 3b 0d 0a 20 20 20 20 20 20 20 20 66 6f 72 ->result.=.$result;..........for
78c0 65 61 63 68 20 28 24 6f 70 74 69 6f 6e 73 20 61 73 20 24 6b 65 79 20 3d 3e 20 24 76 61 6c 75 65 each.($options.as.$key.=>.$value
78e0 29 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 73 65 74 4f 70 74 69 6f ).{..............$this->setOptio
7900 6e 28 24 6b 65 79 2c 20 24 76 61 6c 75 65 29 3b 0d 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 n($key,.$value);..........}.....
7920 20 20 20 20 24 74 68 69 73 2d 3e 6c 69 6d 69 74 5f 74 79 70 65 20 20 3d 20 24 64 62 68 2d 3e 66 ....$this->limit_type..=.$dbh->f
7940 65 61 74 75 72 65 73 5b 27 6c 69 6d 69 74 27 5d 3b 0a 20 20 20 20 20 20 20 20 24 74 68 69 73 2d eatures['limit'];.........$this-
7960 3e 61 75 74 6f 66 72 65 65 20 20 20 20 3d 20 24 64 62 68 2d 3e 6f 70 74 69 6f 6e 73 5b 27 61 75 >autofree....=.$dbh->options['au
7980 74 6f 66 72 65 65 27 5d 3b 0a 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 66 65 74 63 68 6d 6f tofree'];.........$this->fetchmo
79a0 64 65 20 20 20 3d 20 24 64 62 68 2d 3e 66 65 74 63 68 6d 6f 64 65 3b 0a 20 20 20 20 20 20 20 20 de...=.$dbh->fetchmode;.........
79c0 24 74 68 69 73 2d 3e 66 65 74 63 68 6d 6f 64 65 5f 6f 62 6a 65 63 74 5f 63 6c 61 73 73 20 3d 20 $this->fetchmode_object_class.=.
79e0 24 64 62 68 2d 3e 66 65 74 63 68 6d 6f 64 65 5f 6f 62 6a 65 63 74 5f 63 6c 61 73 73 3b 0a 20 20 $dbh->fetchmode_object_class;...
7a00 20 20 7d 0a 0d 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 4f 70 74 69 6f 6e 28 24 6b 65 ..}.......function.setOption($ke
7a20 79 2c 20 24 76 61 6c 75 65 20 3d 20 6e 75 6c 6c 29 0d 0a 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 y,.$value.=.null)......{........
7a40 20 20 73 77 69 74 63 68 20 28 24 6b 65 79 29 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 63 ..switch.($key).{..............c
7a60 61 73 65 20 27 6c 69 6d 69 74 5f 66 72 6f 6d 27 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ase.'limit_from':...............
7a80 20 20 20 24 74 68 69 73 2d 3e 6c 69 6d 69 74 5f 66 72 6f 6d 20 3d 20 24 76 61 6c 75 65 3b 20 62 ...$this->limit_from.=.$value;.b
7aa0 72 65 61 6b 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 63 61 73 65 20 27 6c 69 6d 69 74 5f 63 reak;..............case.'limit_c
7ac0 6f 75 6e 74 27 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 6c ount';..................$this->l
7ae0 69 6d 69 74 5f 63 6f 75 6e 74 20 3d 20 24 76 61 6c 75 65 3b 20 62 72 65 61 6b 3b 0d 0a 20 20 20 imit_count.=.$value;.break;.....
7b00 20 20 20 20 20 7d 0d 0a 20 20 20 20 7d 0d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f .....}......}.......//.}}}...../
7b20 2f 20 7b 7b 7b 20 66 65 74 63 68 52 6f 77 28 29 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 /.{{{.fetchRow()...../**......*.
7b40 46 65 74 63 68 20 61 6e 64 20 72 65 74 75 72 6e 20 61 20 72 6f 77 20 6f 66 20 64 61 74 61 20 28 Fetch.and.return.a.row.of.data.(
7b60 69 74 20 75 73 65 73 20 64 72 69 76 65 72 2d 3e 66 65 74 63 68 49 6e 74 6f 20 66 6f 72 20 74 68 it.uses.driver->fetchInto.for.th
7b80 61 74 29 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 69 6e 74 20 24 66 65 74 63 68 6d 6f 64 65 at)......*.@param.int.$fetchmode
7ba0 20 66 6f 72 6d 61 74 20 6f 66 20 66 65 74 63 68 65 64 20 72 6f 77 0a 20 20 20 20 20 2a 20 40 70 .format.of.fetched.row......*.@p
7bc0 61 72 61 6d 20 69 6e 74 20 24 72 6f 77 6e 75 6d 20 20 20 20 74 68 65 20 72 6f 77 20 6e 75 6d 62 aram.int.$rownum....the.row.numb
7be0 65 72 20 74 6f 20 66 65 74 63 68 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 72 65 74 75 72 er.to.fetch......*......*.@retur
7c00 6e 20 20 61 72 72 61 79 20 61 20 72 6f 77 20 6f 66 20 64 61 74 61 2c 20 4e 55 4c 4c 20 6f 6e 20 n..array.a.row.of.data,.NULL.on.
7c20 6e 6f 20 6d 6f 72 65 20 72 6f 77 73 20 6f 72 20 50 45 41 52 5f 45 72 72 6f 72 20 6f 6e 20 65 72 no.more.rows.or.PEAR_Error.on.er
7c40 72 6f 72 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 61 63 63 65 73 73 20 70 75 62 6c 69 63 ror......*......*.@access.public
7c60 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 26 66 65 74 63 68 52 6f 77 28 ......*/.....function.&fetchRow(
7c80 24 66 65 74 63 68 6d 6f 64 65 20 3d 20 44 42 5f 46 45 54 43 48 4d 4f 44 45 5f 44 45 46 41 55 4c $fetchmode.=.DB_FETCHMODE_DEFAUL
7ca0 54 2c 20 24 72 6f 77 6e 75 6d 3d 6e 75 6c 6c 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 69 T,.$rownum=null).....{.........i
7cc0 66 20 28 24 66 65 74 63 68 6d 6f 64 65 20 3d 3d 3d 20 44 42 5f 46 45 54 43 48 4d 4f 44 45 5f 44 f.($fetchmode.===.DB_FETCHMODE_D
7ce0 45 46 41 55 4c 54 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 66 65 74 63 68 6d 6f 64 65 EFAULT).{.............$fetchmode
7d00 20 3d 20 24 74 68 69 73 2d 3e 66 65 74 63 68 6d 6f 64 65 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 .=.$this->fetchmode;.........}..
7d20 20 20 20 20 20 20 20 69 66 20 28 24 66 65 74 63 68 6d 6f 64 65 20 3d 3d 3d 20 44 42 5f 46 45 54 .......if.($fetchmode.===.DB_FET
7d40 43 48 4d 4f 44 45 5f 4f 42 4a 45 43 54 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 66 65 CHMODE_OBJECT).{.............$fe
7d60 74 63 68 6d 6f 64 65 20 3d 20 44 42 5f 46 45 54 43 48 4d 4f 44 45 5f 41 53 53 4f 43 3b 0a 20 20 tchmode.=.DB_FETCHMODE_ASSOC;...
7d80 20 20 20 20 20 20 20 20 20 20 24 6f 62 6a 65 63 74 5f 63 6c 61 73 73 20 3d 20 24 74 68 69 73 2d ..........$object_class.=.$this-
7da0 3e 66 65 74 63 68 6d 6f 64 65 5f 6f 62 6a 65 63 74 5f 63 6c 61 73 73 3b 0a 20 20 20 20 20 20 20 >fetchmode_object_class;........
7dc0 20 7d 0d 0a 20 20 20 20 20 20 20 20 69 66 20 28 24 74 68 69 73 2d 3e 6c 69 6d 69 74 5f 66 72 6f .}..........if.($this->limit_fro
7de0 6d 20 21 3d 3d 20 6e 75 6c 6c 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 24 74 m.!==.null).{.............if.($t
7e00 68 69 73 2d 3e 72 6f 77 5f 63 6f 75 6e 74 65 72 20 3d 3d 3d 20 6e 75 6c 6c 29 20 7b 0a 20 20 20 his->row_counter.===.null).{....
7e20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 72 6f 77 5f 63 6f 75 6e 74 65 72 20 .............$this->row_counter.
7e40 3d 20 24 74 68 69 73 2d 3e 6c 69 6d 69 74 5f 66 72 6f 6d 3b 0a 20 20 20 20 20 20 20 20 20 20 20 =.$this->limit_from;............
7e60 20 20 20 20 20 2f 2f 20 53 6b 69 70 20 72 6f 77 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .....//.Skip.rows...............
7e80 20 20 69 66 20 28 24 74 68 69 73 2d 3e 6c 69 6d 69 74 5f 74 79 70 65 20 3d 3d 20 66 61 6c 73 65 ..if.($this->limit_type.==.false
7ea0 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 69 20 3d 20 30 3b 0a ).{.....................$i.=.0;.
7ec0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 77 68 69 6c 65 20 28 24 69 2b 2b 20 ....................while.($i++.
7ee0 3c 20 24 74 68 69 73 2d 3e 6c 69 6d 69 74 5f 66 72 6f 6d 29 20 7b 0a 20 20 20 20 20 20 20 20 20 <.$this->limit_from).{..........
7f00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 64 62 68 2d 3e 66 65 74 63 68 ...............$this->dbh->fetch
7f20 49 6e 74 6f 28 24 74 68 69 73 2d 3e 72 65 73 75 6c 74 2c 20 24 61 72 72 2c 20 24 66 65 74 63 68 Into($this->result,.$arr,.$fetch
7f40 6d 6f 64 65 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 mode);.....................}....
7f60 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 .............}.............}....
7f80 20 20 20 20 20 20 20 20 20 69 66 20 28 24 74 68 69 73 2d 3e 72 6f 77 5f 63 6f 75 6e 74 65 72 20 .........if.($this->row_counter.
7fa0 3e 3d 20 28 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e >=.(.....................$this->
7fc0 6c 69 6d 69 74 5f 66 72 6f 6d 20 2b 20 24 74 68 69 73 2d 3e 6c 69 6d 69 74 5f 63 6f 75 6e 74 29 limit_from.+.$this->limit_count)
7fe0 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ).............{.................
8000 20 69 66 20 28 24 74 68 69 73 2d 3e 61 75 74 6f 66 72 65 65 29 20 7b 0a 20 20 20 20 20 20 20 20 .if.($this->autofree).{.........
8020 20 20 20 20 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 66 72 65 65 28 29 3b 0a 20 20 20 20 20 ............$this->free();......
8040 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 ...........}.................ret
8060 75 72 6e 20 6e 75 6c 6c 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 urn.null;.............}.........
8080 20 20 20 20 69 66 20 28 24 74 68 69 73 2d 3e 6c 69 6d 69 74 5f 74 79 70 65 20 3d 3d 20 27 65 6d ....if.($this->limit_type.==.'em
80a0 75 6c 61 74 65 27 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 72 6f 77 6e 75 ulate').{.................$rownu
80c0 6d 20 3d 20 24 74 68 69 73 2d 3e 72 6f 77 5f 63 6f 75 6e 74 65 72 3b 0a 20 20 20 20 20 20 20 20 m.=.$this->row_counter;.........
80e0 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 72 6f 77 5f 63 6f 75 ....}.............$this->row_cou
8100 6e 74 65 72 2b 2b 3b 0a 20 20 20 20 20 20 20 20 7d 0d 0a 20 20 20 20 20 20 20 20 24 72 65 73 20 nter++;.........}..........$res.
8120 3d 20 24 74 68 69 73 2d 3e 64 62 68 2d 3e 66 65 74 63 68 49 6e 74 6f 28 24 74 68 69 73 2d 3e 72 =.$this->dbh->fetchInto($this->r
8140 65 73 75 6c 74 2c 20 24 61 72 72 2c 20 24 66 65 74 63 68 6d 6f 64 65 2c 20 24 72 6f 77 6e 75 6d esult,.$arr,.$fetchmode,.$rownum
8160 29 3b 0d 0a 20 20 20 20 20 20 20 20 69 66 20 28 24 72 65 73 20 3d 3d 3d 20 44 42 5f 4f 4b 29 20 );..........if.($res.===.DB_OK).
8180 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 69 73 73 65 74 28 24 6f 62 6a 65 63 74 {..............if.(isset($object
81a0 5f 63 6c 61 73 73 29 29 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 64 _class)).{..................//.d
81c0 65 66 61 75 6c 74 20 6d 6f 64 65 20 73 70 65 63 69 66 69 65 64 20 69 6e 20 44 42 5f 63 6f 6d 6d efault.mode.specified.in.DB_comm
81e0 6f 6e 3a 3a 66 65 74 63 68 6d 6f 64 65 5f 6f 62 6a 65 63 74 5f 63 6c 61 73 73 20 70 72 6f 70 65 on::fetchmode_object_class.prope
8200 72 74 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 24 6f 62 6a 65 63 74 5f rty.................if.($object_
8220 63 6c 61 73 73 20 3d 3d 20 27 73 74 64 43 6c 61 73 73 27 29 20 7b 0a 20 20 20 20 20 20 20 20 20 class.==.'stdClass').{..........
8240 20 20 20 20 20 20 20 20 20 20 20 24 61 72 72 20 3d 20 28 6f 62 6a 65 63 74 29 20 24 61 72 72 3b ...........$arr.=.(object).$arr;
8260 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 .................}.else.{.......
8280 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 61 72 72 20 3d 20 26 6e 65 77 20 24 6f 62 6a 65 63 ..............$arr.=.&new.$objec
82a0 74 5f 63 6c 61 73 73 28 24 61 72 72 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d t_class($arr);.................}
82c0 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 ..............}..............ret
82e0 75 72 6e 20 24 61 72 72 3b 0d 0a 20 20 20 20 20 20 20 20 7d 0d 0a 20 20 20 20 20 20 20 20 69 66 urn.$arr;..........}..........if
8300 20 28 24 72 65 73 20 3d 3d 20 6e 75 6c 6c 20 26 26 20 24 74 68 69 73 2d 3e 61 75 74 6f 66 72 65 .($res.==.null.&&.$this->autofre
8320 65 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 66 72 65 65 28 29 3b 0a e).{.............$this->free();.
8340 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 72 65 73 3b 0d 0a ........}.........return.$res;..
8360 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 66 65 74 ....}......//.}}}.....//.{{{.fet
8380 63 68 49 6e 74 6f 28 29 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 46 65 74 63 68 20 61 20 chInto()...../**......*.Fetch.a.
83a0 72 6f 77 20 6f 66 20 64 61 74 61 20 69 6e 74 6f 20 61 6e 20 65 78 69 73 74 69 6e 67 20 76 61 72 row.of.data.into.an.existing.var
83c0 69 61 62 6c 65 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 20 6d 69 78 iable.......*......*.@param..mix
83e0 65 64 20 20 20 26 24 61 72 72 20 20 20 20 20 72 65 66 65 72 65 6e 63 65 20 74 6f 20 64 61 74 61 ed...&$arr.....reference.to.data
8400 20 63 6f 6e 74 61 69 6e 69 6e 67 20 74 68 65 20 72 6f 77 0a 20 20 20 20 20 2a 20 40 70 61 72 61 .containing.the.row......*.@para
8420 6d 20 20 69 6e 74 65 67 65 72 20 24 66 65 74 63 68 6d 6f 64 20 66 6f 72 6d 61 74 20 6f 66 20 66 m..integer.$fetchmod.format.of.f
8440 65 74 63 68 65 64 20 72 6f 77 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 20 69 6e 74 65 67 65 etched.row......*.@param..intege
8460 72 20 24 72 6f 77 6e 75 6d 20 20 20 74 68 65 20 72 6f 77 20 6e 75 6d 62 65 72 20 74 6f 20 66 65 r.$rownum...the.row.number.to.fe
8480 74 63 68 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 72 65 74 75 72 6e 20 20 6d 69 78 65 64 tch......*......*.@return..mixed
84a0 20 20 44 42 5f 4f 4b 20 6f 6e 20 73 75 63 63 65 73 73 2c 20 4e 55 4c 4c 20 6f 6e 20 6e 6f 20 6d ..DB_OK.on.success,.NULL.on.no.m
84c0 6f 72 65 20 72 6f 77 73 20 6f 72 0a 20 20 20 20 20 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ore.rows.or......*..............
84e0 20 20 20 61 20 44 42 5f 45 72 72 6f 72 20 6f 62 6a 65 63 74 20 6f 6e 20 65 72 72 6f 72 0a 20 20 ...a.DB_Error.object.on.error...
8500 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 61 63 63 65 73 73 20 70 75 62 6c 69 63 0a 20 20 20 20 20 ...*......*.@access.public......
8520 2a 2f 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 66 65 74 63 68 49 6e 74 6f 28 26 24 61 72 72 2c */.....function.fetchInto(&$arr,
8540 20 24 66 65 74 63 68 6d 6f 64 65 20 3d 20 44 42 5f 46 45 54 43 48 4d 4f 44 45 5f 44 45 46 41 55 .$fetchmode.=.DB_FETCHMODE_DEFAU
8560 4c 54 2c 20 24 72 6f 77 6e 75 6d 3d 6e 75 6c 6c 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 LT,.$rownum=null).....{.........
8580 69 66 20 28 24 66 65 74 63 68 6d 6f 64 65 20 3d 3d 3d 20 44 42 5f 46 45 54 43 48 4d 4f 44 45 5f if.($fetchmode.===.DB_FETCHMODE_
85a0 44 45 46 41 55 4c 54 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 66 65 74 63 68 6d 6f 64 DEFAULT).{.............$fetchmod
85c0 65 20 3d 20 24 74 68 69 73 2d 3e 66 65 74 63 68 6d 6f 64 65 3b 0a 20 20 20 20 20 20 20 20 7d 0a e.=.$this->fetchmode;.........}.
85e0 20 20 20 20 20 20 20 20 69 66 20 28 24 66 65 74 63 68 6d 6f 64 65 20 3d 3d 3d 20 44 42 5f 46 45 ........if.($fetchmode.===.DB_FE
8600 54 43 48 4d 4f 44 45 5f 4f 42 4a 45 43 54 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 66 TCHMODE_OBJECT).{.............$f
8620 65 74 63 68 6d 6f 64 65 20 3d 20 44 42 5f 46 45 54 43 48 4d 4f 44 45 5f 41 53 53 4f 43 3b 0a 20 etchmode.=.DB_FETCHMODE_ASSOC;..
8640 20 20 20 20 20 20 20 20 20 20 20 24 6f 62 6a 65 63 74 5f 63 6c 61 73 73 20 3d 20 24 74 68 69 73 ...........$object_class.=.$this
8660 2d 3e 66 65 74 63 68 6d 6f 64 65 5f 6f 62 6a 65 63 74 5f 63 6c 61 73 73 3b 0a 20 20 20 20 20 20 ->fetchmode_object_class;.......
8680 20 20 7d 0a 20 20 20 20 20 20 20 20 69 66 20 28 24 74 68 69 73 2d 3e 6c 69 6d 69 74 5f 66 72 6f ..}.........if.($this->limit_fro
86a0 6d 20 21 3d 3d 20 6e 75 6c 6c 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 24 74 m.!==.null).{.............if.($t
86c0 68 69 73 2d 3e 72 6f 77 5f 63 6f 75 6e 74 65 72 20 3d 3d 3d 20 6e 75 6c 6c 29 20 7b 0a 20 20 20 his->row_counter.===.null).{....
86e0 20 20 20 20 20 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 72 6f 77 5f 63 6f 75 6e 74 65 72 20 .............$this->row_counter.
8700 3d 20 24 74 68 69 73 2d 3e 6c 69 6d 69 74 5f 66 72 6f 6d 3b 0a 20 20 20 20 20 20 20 20 20 20 20 =.$this->limit_from;............
8720 20 20 20 20 20 2f 2f 20 53 6b 69 70 20 72 6f 77 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .....//.Skip.rows...............
8740 20 20 69 66 20 28 24 74 68 69 73 2d 3e 6c 69 6d 69 74 5f 74 79 70 65 20 3d 3d 20 66 61 6c 73 65 ..if.($this->limit_type.==.false
8760 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 69 20 3d 20 30 3b 0a ).{.....................$i.=.0;.
8780 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 77 68 69 6c 65 20 28 24 69 2b 2b 20 ....................while.($i++.
87a0 3c 20 24 74 68 69 73 2d 3e 6c 69 6d 69 74 5f 66 72 6f 6d 29 20 7b 0a 20 20 20 20 20 20 20 20 20 <.$this->limit_from).{..........
87c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 64 62 68 2d 3e 66 65 74 63 68 ...............$this->dbh->fetch
87e0 49 6e 74 6f 28 24 74 68 69 73 2d 3e 72 65 73 75 6c 74 2c 20 24 61 72 72 2c 20 24 66 65 74 63 68 Into($this->result,.$arr,.$fetch
8800 6d 6f 64 65 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 mode);.....................}....
8820 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 .............}.............}....
8840 20 20 20 20 20 20 20 20 20 69 66 20 28 24 74 68 69 73 2d 3e 72 6f 77 5f 63 6f 75 6e 74 65 72 20 .........if.($this->row_counter.
8860 3e 3d 20 28 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e >=.(.....................$this->
8880 6c 69 6d 69 74 5f 66 72 6f 6d 20 2b 20 24 74 68 69 73 2d 3e 6c 69 6d 69 74 5f 63 6f 75 6e 74 29 limit_from.+.$this->limit_count)
88a0 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ).............{.................
88c0 20 69 66 20 28 24 74 68 69 73 2d 3e 61 75 74 6f 66 72 65 65 29 20 7b 0a 20 20 20 20 20 20 20 20 .if.($this->autofree).{.........
88e0 20 20 20 20 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 66 72 65 65 28 29 3b 0a 20 20 20 20 20 ............$this->free();......
8900 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 ...........}.................ret
8920 75 72 6e 20 6e 75 6c 6c 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 urn.null;.............}.........
8940 20 20 20 20 69 66 20 28 24 74 68 69 73 2d 3e 6c 69 6d 69 74 5f 74 79 70 65 20 3d 3d 20 27 65 6d ....if.($this->limit_type.==.'em
8960 75 6c 61 74 65 27 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 72 6f 77 6e 75 ulate').{.................$rownu
8980 6d 20 3d 20 24 74 68 69 73 2d 3e 72 6f 77 5f 63 6f 75 6e 74 65 72 3b 0a 20 20 20 20 20 20 20 20 m.=.$this->row_counter;.........
89a0 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 72 6f 77 5f 63 6f ....}..............$this->row_co
89c0 75 6e 74 65 72 2b 2b 3b 0a 20 20 20 20 20 20 20 20 7d 0d 0a 20 20 20 20 20 20 20 20 24 72 65 73 unter++;.........}..........$res
89e0 20 3d 20 24 74 68 69 73 2d 3e 64 62 68 2d 3e 66 65 74 63 68 49 6e 74 6f 28 24 74 68 69 73 2d 3e .=.$this->dbh->fetchInto($this->
8a00 72 65 73 75 6c 74 2c 20 24 61 72 72 2c 20 24 66 65 74 63 68 6d 6f 64 65 2c 20 24 72 6f 77 6e 75 result,.$arr,.$fetchmode,.$rownu
8a20 6d 29 3b 0d 0a 20 20 20 20 20 20 20 20 69 66 20 28 24 72 65 73 20 3d 3d 3d 20 44 42 5f 4f 4b 29 m);..........if.($res.===.DB_OK)
8a40 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 69 73 73 65 74 28 24 6f 62 6a 65 63 .{..............if.(isset($objec
8a60 74 5f 63 6c 61 73 73 29 29 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 t_class)).{..................//.
8a80 64 65 66 61 75 6c 74 20 6d 6f 64 65 20 73 70 65 63 69 66 69 65 64 20 69 6e 20 44 42 5f 63 6f 6d default.mode.specified.in.DB_com
8aa0 6d 6f 6e 3a 3a 66 65 74 63 68 6d 6f 64 65 5f 6f 62 6a 65 63 74 5f 63 6c 61 73 73 20 70 72 6f 70 mon::fetchmode_object_class.prop
8ac0 65 72 74 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 24 6f 62 6a 65 63 74 erty.................if.($object
8ae0 5f 63 6c 61 73 73 20 3d 3d 20 27 73 74 64 43 6c 61 73 73 27 29 20 7b 0a 20 20 20 20 20 20 20 20 _class.==.'stdClass').{.........
8b00 20 20 20 20 20 20 20 20 20 20 20 20 24 61 72 72 20 3d 20 28 6f 62 6a 65 63 74 29 20 24 61 72 72 ............$arr.=.(object).$arr
8b20 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 ;.................}.else.{......
8b40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 61 72 72 20 3d 20 6e 65 77 20 24 6f 62 6a 65 63 ...............$arr.=.new.$objec
8b60 74 5f 63 6c 61 73 73 28 24 61 72 72 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d t_class($arr);.................}
8b80 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 ..............}..............ret
8ba0 75 72 6e 20 44 42 5f 4f 4b 3b 0d 0a 20 20 20 20 20 20 20 20 7d 0d 0a 20 20 20 20 20 20 20 20 69 urn.DB_OK;..........}..........i
8bc0 66 20 28 24 72 65 73 20 3d 3d 20 6e 75 6c 6c 20 26 26 20 24 74 68 69 73 2d 3e 61 75 74 6f 66 72 f.($res.==.null.&&.$this->autofr
8be0 65 65 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 66 72 65 65 28 29 3b ee).{.............$this->free();
8c00 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 72 65 73 3b 0d .........}.........return.$res;.
8c20 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 6e 75 .....}......//.}}}.....//.{{{.nu
8c40 6d 43 6f 6c 73 28 29 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 47 65 74 20 74 68 65 20 74 mCols()...../**......*.Get.the.t
8c60 68 65 20 6e 75 6d 62 65 72 20 6f 66 20 63 6f 6c 75 6d 6e 73 20 69 6e 20 61 20 72 65 73 75 6c 74 he.number.of.columns.in.a.result
8c80 20 73 65 74 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 72 65 74 75 72 6e 20 69 6e 74 20 .set.......*......*.@return.int.
8ca0 74 68 65 20 6e 75 6d 62 65 72 20 6f 66 20 63 6f 6c 75 6d 6e 73 2c 20 6f 72 20 61 20 44 42 20 65 the.number.of.columns,.or.a.DB.e
8cc0 72 72 6f 72 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 61 63 63 65 73 73 20 70 75 62 6c 69 rror......*......*.@access.publi
8ce0 63 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 6e 75 6d 43 6f 6c 73 28 29 c......*/.....function.numCols()
8d00 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 62 68 .....{.........return.$this->dbh
8d20 2d 3e 6e 75 6d 43 6f 6c 73 28 24 74 68 69 73 2d 3e 72 65 73 75 6c 74 29 3b 0a 20 20 20 20 7d 0a ->numCols($this->result);.....}.
8d40 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 6e 75 6d 52 6f 77 73 28 29 .....//.}}}.....//.{{{.numRows()
8d60 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 47 65 74 20 74 68 65 20 6e 75 6d 62 65 72 20 6f ...../**......*.Get.the.number.o
8d80 66 20 72 6f 77 73 20 69 6e 20 61 20 72 65 73 75 6c 74 20 73 65 74 2e 0a 20 20 20 20 20 2a 0a 20 f.rows.in.a.result.set.......*..
8da0 20 20 20 20 2a 20 40 72 65 74 75 72 6e 20 69 6e 74 20 74 68 65 20 6e 75 6d 62 65 72 20 6f 66 20 ....*.@return.int.the.number.of.
8dc0 72 6f 77 73 2c 20 6f 72 20 61 20 44 42 20 65 72 72 6f 72 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 rows,.or.a.DB.error......*......
8de0 2a 20 40 61 63 63 65 73 73 20 70 75 62 6c 69 63 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 66 75 6e *.@access.public......*/.....fun
8e00 63 74 69 6f 6e 20 6e 75 6d 52 6f 77 73 28 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 72 65 ction.numRows().....{.........re
8e20 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 62 68 2d 3e 6e 75 6d 52 6f 77 73 28 24 74 68 69 73 2d 3e turn.$this->dbh->numRows($this->
8e40 72 65 73 75 6c 74 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f result);.....}......//.}}}...../
8e60 2f 20 7b 7b 7b 20 6e 65 78 74 52 65 73 75 6c 74 28 29 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 /.{{{.nextResult()...../**......
8e80 2a 20 47 65 74 20 74 68 65 20 6e 65 78 74 20 72 65 73 75 6c 74 20 69 66 20 61 20 62 61 74 63 68 *.Get.the.next.result.if.a.batch
8ea0 20 6f 66 20 71 75 65 72 69 65 73 20 77 61 73 20 65 78 65 63 75 74 65 64 2e 0a 20 20 20 20 20 2a .of.queries.was.executed.......*
8ec0 0a 20 20 20 20 20 2a 20 40 72 65 74 75 72 6e 20 62 6f 6f 6c 20 74 72 75 65 20 69 66 20 61 20 6e ......*.@return.bool.true.if.a.n
8ee0 65 77 20 72 65 73 75 6c 74 20 69 73 20 61 76 61 69 6c 61 62 6c 65 20 6f 72 20 66 61 6c 73 65 20 ew.result.is.available.or.false.
8f00 69 66 20 6e 6f 74 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 61 63 63 65 73 73 20 70 75 if.not.......*......*.@access.pu
8f20 62 6c 69 63 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 6e 65 78 74 52 65 blic......*/.....function.nextRe
8f40 73 75 6c 74 28 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 sult().....{.........return.$thi
8f60 73 2d 3e 64 62 68 2d 3e 6e 65 78 74 52 65 73 75 6c 74 28 24 74 68 69 73 2d 3e 72 65 73 75 6c 74 s->dbh->nextResult($this->result
8f80 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 );.....}......//.}}}.....//.{{{.
8fa0 66 72 65 65 28 29 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 46 72 65 65 73 20 74 68 65 20 free()...../**......*.Frees.the.
8fc0 72 65 73 6f 75 72 63 65 73 20 61 6c 6c 6f 63 61 74 65 64 20 66 6f 72 20 74 68 69 73 20 72 65 73 resources.allocated.for.this.res
8fe0 75 6c 74 20 73 65 74 2e 0a 20 20 20 20 20 2a 20 40 72 65 74 75 72 6e 20 20 69 6e 74 20 65 72 72 ult.set.......*.@return..int.err
9000 6f 72 20 63 6f 64 65 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 61 63 63 65 73 73 20 70 75 or.code......*......*.@access.pu
9020 62 6c 69 63 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 66 72 65 65 28 29 blic......*/.....function.free()
9040 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 24 65 72 72 20 3d 20 24 74 68 69 73 2d 3e 64 62 68 .....{.........$err.=.$this->dbh
9060 2d 3e 66 72 65 65 52 65 73 75 6c 74 28 24 74 68 69 73 2d 3e 72 65 73 75 6c 74 29 3b 0a 20 20 20 ->freeResult($this->result);....
9080 20 20 20 20 20 69 66 28 44 42 3a 3a 69 73 45 72 72 6f 72 28 24 65 72 72 29 29 20 7b 0a 20 20 20 .....if(DB::isError($err)).{....
90a0 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 65 72 72 3b 0a 20 20 20 20 20 20 20 20 7d 0a .........return.$err;.........}.
90c0 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 72 65 73 75 6c 74 20 3d 20 66 61 6c 73 65 3b 0a 20 ........$this->result.=.false;..
90e0 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f .......return.true;.....}....../
9100 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 74 61 62 6c 65 49 6e 66 6f 28 29 0a 20 20 20 /.}}}.....//.{{{.tableInfo()....
9120 20 2f 2a 2a 0a 20 20 20 20 2a 20 40 64 65 70 72 65 63 61 74 65 64 0a 20 20 20 20 2a 2f 0a 20 20 ./**.....*.@deprecated.....*/...
9140 20 20 66 75 6e 63 74 69 6f 6e 20 74 61 62 6c 65 49 6e 66 6f 28 24 6d 6f 64 65 20 3d 20 6e 75 6c ..function.tableInfo($mode.=.nul
9160 6c 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 l).....{.........return.$this->d
9180 62 68 2d 3e 74 61 62 6c 65 49 6e 66 6f 28 24 74 68 69 73 2d 3e 72 65 73 75 6c 74 2c 20 24 6d 6f bh->tableInfo($this->result,.$mo
91a0 64 65 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b de);.....}......//.}}}.....//.{{
91c0 7b 20 67 65 74 52 6f 77 43 6f 75 6e 74 65 72 28 29 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 2a 20 {.getRowCounter()...../**.....*.
91e0 72 65 74 75 72 6e 73 20 74 68 65 20 61 63 74 75 61 6c 20 72 6f 77 20 6e 75 6d 62 65 72 0a 20 20 returns.the.actual.row.number...
9200 20 20 2a 20 40 72 65 74 75 72 6e 20 69 6e 74 65 67 65 72 0a 20 20 20 20 2a 2f 0a 20 20 20 20 66 ..*.@return.integer.....*/.....f
9220 75 6e 63 74 69 6f 6e 20 67 65 74 52 6f 77 43 6f 75 6e 74 65 72 28 29 0a 20 20 20 20 7b 0a 20 20 unction.getRowCounter().....{...
9240 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 6f 77 5f 63 6f 75 6e 74 65 72 3b ......return.$this->row_counter;
9260 0a 20 20 20 20 7d 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 7d 0a 2f 2f 20 7d 7d 7d 0a 0a 2f 2f 20 7b .....}.....//.}}}.}.//.}}}..//.{
9280 7b 7b 20 63 6c 61 73 73 20 44 42 5f 52 6f 77 0a 2f 2a 2a 0a 2a 20 50 65 61 72 20 44 42 20 52 6f {{.class.DB_Row./**.*.Pear.DB.Ro
92a0 77 20 4f 62 6a 65 63 74 0a 2a 20 40 73 65 65 20 44 42 5f 63 6f 6d 6d 6f 6e 3a 3a 73 65 74 46 65 w.Object.*.@see.DB_common::setFe
92c0 74 63 68 4d 6f 64 65 28 29 0a 2a 2f 0a 63 6c 61 73 73 20 44 42 5f 72 6f 77 0a 7b 0a 20 20 20 20 tchMode().*/.class.DB_row.{.....
92e0 2f 2f 20 7b 7b 7b 20 63 6f 6e 73 74 72 75 63 74 6f 72 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 2a //.{{{.constructor...../**.....*
9300 20 63 6f 6e 73 74 72 75 63 74 6f 72 0a 20 20 20 20 2a 0a 20 20 20 20 2a 20 40 70 61 72 61 6d 20 .constructor.....*.....*.@param.
9320 72 65 73 6f 75 72 63 65 20 72 6f 77 20 64 61 74 61 20 61 73 20 61 72 72 61 79 0a 20 20 20 20 2a resource.row.data.as.array.....*
9340 2f 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 44 42 5f 72 6f 77 28 26 24 61 72 72 29 0a 20 20 20 /.....function.DB_row(&$arr)....
9360 20 7b 0a 20 20 20 20 20 20 20 20 66 6f 72 20 28 72 65 73 65 74 28 24 61 72 72 29 3b 20 24 6b 65 .{.........for.(reset($arr);.$ke
9380 79 20 3d 20 6b 65 79 28 24 61 72 72 29 3b 20 6e 65 78 74 28 24 61 72 72 29 29 20 7b 0a 20 20 20 y.=.key($arr);.next($arr)).{....
93a0 20 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 24 6b 65 79 20 3d 20 26 24 61 72 72 5b 24 6b 65 .........$this->$key.=.&$arr[$ke
93c0 79 5d 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a y];.........}.....}......//.}}}.
93e0 7d 0a 2f 2f 20 7d 7d 7d 0a 0a 3f 3e 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 }.//.}}}..?>....................
9400 44 42 2d 31 2e 35 2e 30 52 43 31 2f 44 42 2f 63 6f 6d 6d 6f 6e 2e 70 68 70 00 00 00 00 00 00 00 DB-1.5.0RC1/DB/common.php.......
9420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9460 00 00 00 00 31 30 30 36 34 34 20 00 20 20 20 37 36 34 20 00 20 20 20 31 34 34 20 00 20 20 20 20 ....100644.....764.....144......
9480 20 31 31 36 32 36 36 20 20 37 36 37 34 36 37 30 35 37 32 20 20 31 30 30 34 30 20 00 00 00 00 00 .116266..7674670572..10040......
94a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
94c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
94e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
95a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
95c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
95e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9600 3c 3f 70 68 70 0a 2f 2a 20 76 69 6d 3a 20 73 65 74 20 65 78 70 61 6e 64 74 61 62 20 74 61 62 73 <?php./*.vim:.set.expandtab.tabs
9620 74 6f 70 3d 34 20 73 68 69 66 74 77 69 64 74 68 3d 34 20 66 6f 6c 64 6d 65 74 68 6f 64 3d 6d 61 top=4.shiftwidth=4.foldmethod=ma
9640 72 6b 65 72 3a 20 2a 2f 0a 2f 2f 20 2b 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d rker:.*/.//.+-------------------
9660 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
9680 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2b 0a 2f 2f 20 7c 20 50 48 50 20 56 65 -------------------+.//.|.PHP.Ve
96a0 72 73 69 6f 6e 20 34 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 rsion.4.........................
96c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c ...............................|
96e0 0a 2f 2f 20 2b 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d .//.+---------------------------
9700 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
9720 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2b 0a 2f 2f 20 7c 20 43 6f 70 79 72 69 67 68 74 20 28 63 29 20 -----------+.//.|.Copyright.(c).
9740 31 39 39 37 2d 32 30 30 33 20 54 68 65 20 50 48 50 20 47 72 6f 75 70 20 20 20 20 20 20 20 20 20 1997-2003.The.PHP.Group.........
9760 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 2f 2f 20 2b 2d 2d 2d .......................|.//.+---
9780 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
97a0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
97c0 2d 2d 2d 2b 0a 2f 2f 20 7c 20 54 68 69 73 20 73 6f 75 72 63 65 20 66 69 6c 65 20 69 73 20 73 75 ---+.//.|.This.source.file.is.su
97e0 62 6a 65 63 74 20 74 6f 20 76 65 72 73 69 6f 6e 20 32 2e 30 32 20 6f 66 20 74 68 65 20 50 48 50 bject.to.version.2.02.of.the.PHP
9800 20 6c 69 63 65 6e 73 65 2c 20 20 20 20 20 20 7c 0a 2f 2f 20 7c 20 74 68 61 74 20 69 73 20 62 75 .license,......|.//.|.that.is.bu
9820 6e 64 6c 65 64 20 77 69 74 68 20 74 68 69 73 20 70 61 63 6b 61 67 65 20 69 6e 20 74 68 65 20 66 ndled.with.this.package.in.the.f
9840 69 6c 65 20 4c 49 43 45 4e 53 45 2c 20 61 6e 64 20 69 73 20 20 20 20 20 20 20 20 7c 0a 2f 2f 20 ile.LICENSE,.and.is........|.//.
9860 7c 20 61 76 61 69 6c 61 62 6c 65 20 61 74 20 74 68 72 6f 75 67 68 20 74 68 65 20 77 6f 72 6c 64 |.available.at.through.the.world
9880 2d 77 69 64 65 2d 77 65 62 20 61 74 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -wide-web.at....................
98a0 20 20 20 20 20 20 20 7c 0a 2f 2f 20 7c 20 68 74 74 70 3a 2f 2f 77 77 77 2e 70 68 70 2e 6e 65 74 .......|.//.|.http://www.php.net
98c0 2f 6c 69 63 65 6e 73 65 2f 32 5f 30 32 2e 74 78 74 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 /license/2_02.txt...............
98e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 2f 2f 20 7c 20 49 66 20 79 6f 75 ...................|.//.|.If.you
9900 20 64 69 64 20 6e 6f 74 20 72 65 63 65 69 76 65 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 50 .did.not.receive.a.copy.of.the.P
9920 48 50 20 6c 69 63 65 6e 73 65 20 61 6e 64 20 61 72 65 20 75 6e 61 62 6c 65 20 74 6f 20 20 20 7c HP.license.and.are.unable.to...|
9940 0a 2f 2f 20 7c 20 6f 62 74 61 69 6e 20 69 74 20 74 68 72 6f 75 67 68 20 74 68 65 20 77 6f 72 6c .//.|.obtain.it.through.the.worl
9960 64 2d 77 69 64 65 2d 77 65 62 2c 20 70 6c 65 61 73 65 20 73 65 6e 64 20 61 20 6e 6f 74 65 20 74 d-wide-web,.please.send.a.note.t
9980 6f 20 20 20 20 20 20 20 20 20 20 7c 0a 2f 2f 20 7c 20 6c 69 63 65 6e 73 65 40 70 68 70 2e 6e 65 o..........|.//.|.license@php.ne
99a0 74 20 73 6f 20 77 65 20 63 61 6e 20 6d 61 69 6c 20 79 6f 75 20 61 20 63 6f 70 79 20 69 6d 6d 65 t.so.we.can.mail.you.a.copy.imme
99c0 64 69 61 74 65 6c 79 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 2f 2f 20 2b 2d 2d 2d diately................|.//.+---
99e0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
9a00 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
9a20 2d 2d 2d 2b 0a 2f 2f 20 7c 20 41 75 74 68 6f 72 3a 20 53 74 69 67 20 42 61 6b 6b 65 6e 20 3c 73 ---+.//.|.Author:.Stig.Bakken.<s
9a40 73 62 40 70 68 70 2e 6e 65 74 3e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 sb@php.net>.....................
9a60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 2f 2f 20 2b 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ...............|.//.+-----------
9a80 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
9aa0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2b 0a 2f 2f 0a ---------------------------+.//.
9ac0 2f 2f 20 24 49 64 3a 20 63 6f 6d 6d 6f 6e 2e 70 68 70 2c 76 20 31 2e 32 31 20 32 30 30 33 2f 30 //.$Id:.common.php,v.1.21.2003/0
9ae0 36 2f 32 30 20 32 30 3a 34 31 3a 33 30 20 63 6f 78 20 45 78 70 20 24 0a 2f 2f 0a 2f 2f 20 42 61 6/20.20:41:30.cox.Exp.$.//.//.Ba
9b00 73 65 20 63 6c 61 73 73 20 66 6f 72 20 44 42 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 73 2e se.class.for.DB.implementations.
9b20 0a 2f 2f 0a 0a 2f 2a 2a 0a 20 2a 20 44 42 5f 63 6f 6d 6d 6f 6e 20 69 73 20 61 20 62 61 73 65 20 .//../**..*.DB_common.is.a.base.
9b40 63 6c 61 73 73 20 66 6f 72 20 44 42 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 73 2c 20 61 6e class.for.DB.implementations,.an
9b60 64 20 6d 75 73 74 20 62 65 0a 20 2a 20 69 6e 68 65 72 69 74 65 64 20 62 79 20 61 6c 6c 20 73 75 d.must.be..*.inherited.by.all.su
9b80 63 68 2e 0a 20 2a 2f 0a 0a 72 65 71 75 69 72 65 5f 6f 6e 63 65 20 22 50 45 41 52 2e 70 68 70 22 ch...*/..require_once."PEAR.php"
9ba0 3b 0a 0a 63 6c 61 73 73 20 44 42 5f 63 6f 6d 6d 6f 6e 20 65 78 74 65 6e 64 73 20 50 45 41 52 0a ;..class.DB_common.extends.PEAR.
9bc0 7b 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 70 72 6f 70 65 72 74 69 65 73 0a 20 20 20 20 2f 2a 2a 0a {.....//.{{{.properties...../**.
9be0 20 20 20 20 2a 20 61 73 73 6f 63 20 6f 66 20 63 61 70 61 62 69 6c 69 74 69 65 73 20 66 6f 72 20 ....*.assoc.of.capabilities.for.
9c00 74 68 69 73 20 44 42 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 0a 20 20 20 20 2a 20 24 66 65 this.DB.implementation.....*.$fe
9c20 61 74 75 72 65 73 5b 27 6c 69 6d 69 74 27 5d 20 3d 3e 20 20 27 65 6d 75 6c 61 74 65 27 20 3d 3e atures['limit'].=>..'emulate'.=>
9c40 20 65 6d 75 6c 61 74 65 20 77 69 74 68 20 66 65 74 63 68 20 72 6f 77 20 62 79 20 6e 75 6d 62 65 .emulate.with.fetch.row.by.numbe
9c60 72 0a 20 20 20 20 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 r.....*........................'
9c80 61 6c 74 65 72 27 20 20 20 3d 3e 20 61 6c 74 65 72 20 74 68 65 20 71 75 65 72 79 0a 20 20 20 20 alter'...=>.alter.the.query.....
9ca0 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 61 6c 73 65 20 20 *........................false..
9cc0 20 20 20 3d 3e 20 73 6b 69 70 20 72 6f 77 73 0a 20 20 20 20 2a 20 40 76 61 72 20 61 72 72 61 79 ...=>.skip.rows.....*.@var.array
9ce0 0a 20 20 20 20 2a 2f 0a 20 20 20 20 76 61 72 20 24 66 65 61 74 75 72 65 73 3b 0a 0a 20 20 20 20 .....*/.....var.$features;......
9d00 2f 2a 2a 0a 20 20 20 20 2a 20 61 73 73 6f 63 20 6d 61 70 70 69 6e 67 20 6e 61 74 69 76 65 20 65 /**.....*.assoc.mapping.native.e
9d20 72 72 6f 72 20 63 6f 64 65 73 20 74 6f 20 44 42 20 6f 6e 65 73 0a 20 20 20 20 2a 20 40 76 61 72 rror.codes.to.DB.ones.....*.@var
9d40 20 61 72 72 61 79 0a 20 20 20 20 2a 2f 0a 20 20 20 20 76 61 72 20 24 65 72 72 6f 72 63 6f 64 65 .array.....*/.....var.$errorcode
9d60 5f 6d 61 70 3b 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 2a 20 44 42 20 74 79 70 65 20 28 6d 79 _map;....../**.....*.DB.type.(my
9d80 73 71 6c 2c 20 6f 63 69 38 2c 20 6f 64 62 63 20 65 74 63 2e 29 0a 20 20 20 20 2a 20 40 76 61 72 sql,.oci8,.odbc.etc.).....*.@var
9da0 20 73 74 72 69 6e 67 0a 20 20 20 20 2a 2f 0a 20 20 20 20 76 61 72 20 24 74 79 70 65 3b 0a 0a 20 .string.....*/.....var.$type;...
9dc0 20 20 20 2f 2a 2a 0a 20 20 20 20 2a 20 40 76 61 72 20 73 74 72 69 6e 67 0a 20 20 20 20 2a 2f 0a .../**.....*.@var.string.....*/.
9de0 20 20 20 20 76 61 72 20 24 70 72 65 70 61 72 65 5f 74 6f 6b 65 6e 73 3b 0a 0a 20 20 20 20 2f 2a ....var.$prepare_tokens;....../*
9e00 2a 0a 20 20 20 20 2a 20 40 76 61 72 20 73 74 72 69 6e 67 0a 20 20 20 20 2a 2f 0a 20 20 20 20 76 *.....*.@var.string.....*/.....v
9e20 61 72 20 24 70 72 65 70 61 72 65 5f 74 79 70 65 73 3b 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 ar.$prepare_types;....../**.....
9e40 2a 20 40 76 61 72 20 73 74 72 69 6e 67 0a 20 20 20 20 2a 2f 0a 20 20 20 20 76 61 72 20 24 70 72 *.@var.string.....*/.....var.$pr
9e60 65 70 61 72 65 64 5f 71 75 65 72 69 65 73 3b 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 2a 20 40 epared_queries;....../**.....*.@
9e80 76 61 72 20 69 6e 74 65 67 65 72 0a 20 20 20 20 2a 2f 0a 20 20 20 20 76 61 72 20 24 70 72 65 70 var.integer.....*/.....var.$prep
9ea0 61 72 65 5f 6d 61 78 73 74 6d 74 20 3d 20 30 3b 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 2a 20 are_maxstmt.=.0;....../**.....*.
9ec0 40 76 61 72 20 73 74 72 69 6e 67 0a 20 20 20 20 2a 2f 0a 20 20 20 20 76 61 72 20 24 6c 61 73 74 @var.string.....*/.....var.$last
9ee0 5f 71 75 65 72 79 20 3d 20 27 27 3b 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 2a 20 40 76 61 72 _query.=.'';....../**.....*.@var
9f00 20 69 6e 74 65 67 65 72 0a 20 20 20 20 2a 2f 0a 20 20 20 20 76 61 72 20 24 66 65 74 63 68 6d 6f .integer.....*/.....var.$fetchmo
9f20 64 65 20 3d 20 44 42 5f 46 45 54 43 48 4d 4f 44 45 5f 4f 52 44 45 52 45 44 3b 0a 0a 20 20 20 20 de.=.DB_FETCHMODE_ORDERED;......
9f40 2f 2a 2a 0a 20 20 20 20 2a 20 40 76 61 72 20 73 74 72 69 6e 67 0a 20 20 20 20 2a 2f 0a 20 20 20 /**.....*.@var.string.....*/....
9f60 20 76 61 72 20 24 66 65 74 63 68 6d 6f 64 65 5f 6f 62 6a 65 63 74 5f 63 6c 61 73 73 20 3d 20 27 .var.$fetchmode_object_class.=.'
9f80 73 74 64 43 6c 61 73 73 27 3b 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 2a 20 24 6f 70 74 69 6f stdClass';....../**.....*.$optio
9fa0 6e 73 5b 22 70 65 72 73 69 73 74 65 6e 74 22 5d 20 2d 3e 20 62 6f 6f 6c 65 61 6e 20 70 65 72 73 ns["persistent"].->.boolean.pers
9fc0 69 73 74 65 6e 74 20 63 6f 6e 6e 65 63 74 69 6f 6e 20 74 72 75 65 7c 66 61 6c 73 65 3f 0a 20 20 istent.connection.true|false?...
9fe0 20 20 2a 20 24 6f 70 74 69 6f 6e 73 5b 22 6f 70 74 69 6d 69 7a 65 22 5d 20 2d 3e 20 73 74 72 69 ..*.$options["optimize"].->.stri
a000 6e 67 20 27 70 65 72 66 6f 72 6d 61 6e 63 65 27 20 6f 72 20 27 70 6f 72 74 61 62 69 6c 69 74 79 ng.'performance'.or.'portability
a020 27 0a 20 20 20 20 2a 20 24 6f 70 74 69 6f 6e 73 5b 22 64 65 62 75 67 22 5d 20 2d 3e 20 69 6e 74 '.....*.$options["debug"].->.int
a040 65 67 65 72 20 6e 75 6d 65 72 69 63 20 64 65 62 75 67 20 6c 65 76 65 6c 0a 20 20 20 20 2a 20 40 eger.numeric.debug.level.....*.@
a060 76 61 72 20 61 72 72 61 79 0a 20 20 20 20 2a 2f 0a 20 20 20 20 76 61 72 20 24 6f 70 74 69 6f 6e var.array.....*/.....var.$option
a080 73 20 3d 20 61 72 72 61 79 28 0a 20 20 20 20 20 20 20 20 27 70 65 72 73 69 73 74 65 6e 74 27 20 s.=.array(.........'persistent'.
a0a0 3d 3e 20 66 61 6c 73 65 2c 0a 20 20 20 20 20 20 20 20 27 6f 70 74 69 6d 69 7a 65 27 20 3d 3e 20 =>.false,.........'optimize'.=>.
a0c0 27 70 65 72 66 6f 72 6d 61 6e 63 65 27 2c 0a 20 20 20 20 20 20 20 20 27 64 65 62 75 67 27 20 3d 'performance',.........'debug'.=
a0e0 3e 20 30 2c 0a 20 20 20 20 20 20 20 20 27 73 65 71 6e 61 6d 65 5f 66 6f 72 6d 61 74 27 20 3d 3e >.0,.........'seqname_format'.=>
a100 20 27 25 73 5f 73 65 71 27 2c 0a 20 20 20 20 20 20 20 20 27 61 75 74 6f 66 72 65 65 27 20 3d 3e .'%s_seq',.........'autofree'.=>
a120 20 66 61 6c 73 65 0a 20 20 20 20 29 3b 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 2a 20 44 42 20 .false.....);....../**.....*.DB.
a140 68 61 6e 64 6c 65 0a 20 20 20 20 2a 20 40 76 61 72 20 72 65 73 6f 75 72 63 65 0a 20 20 20 20 2a handle.....*.@var.resource.....*
a160 2f 0a 20 20 20 20 76 61 72 20 24 64 62 68 3b 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 /.....var.$dbh;......//.}}}.....
a180 2f 2f 20 7b 7b 7b 20 74 6f 53 74 72 69 6e 67 28 29 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 2a 20 //.{{{.toString()...../**.....*.
a1a0 53 74 72 69 6e 67 20 63 6f 6e 76 65 72 73 61 74 69 6f 6e 0a 20 20 20 20 2a 0a 20 20 20 20 2a 20 String.conversation.....*.....*.
a1c0 40 72 65 74 75 72 6e 20 73 74 72 69 6e 67 0a 20 20 20 20 2a 20 40 61 63 63 65 73 73 20 70 72 69 @return.string.....*.@access.pri
a1e0 76 61 74 65 0a 20 20 20 20 2a 2f 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 74 6f 53 74 72 69 6e vate.....*/.....function.toStrin
a200 67 28 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 24 69 6e 66 6f 20 3d 20 67 65 74 5f 63 6c g().....{.........$info.=.get_cl
a220 61 73 73 28 24 74 68 69 73 29 3b 0a 20 20 20 20 20 20 20 20 24 69 6e 66 6f 20 2e 3d 20 20 22 3a ass($this);.........$info..=..":
a240 20 28 70 68 70 74 79 70 65 3d 22 20 2e 20 24 74 68 69 73 2d 3e 70 68 70 74 79 70 65 20 2e 0a 20 .(phptype="...$this->phptype....
a260 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 2c 20 64 62 73 79 6e 74 61 78 3d 22 20 2e .................",.dbsyntax="..
a280 20 24 74 68 69 73 2d 3e 64 62 73 79 6e 74 61 78 20 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 .$this->dbsyntax................
a2a0 20 20 20 20 20 22 29 22 3b 0a 0a 20 20 20 20 20 20 20 20 69 66 20 28 24 74 68 69 73 2d 3e 63 6f .....")";..........if.($this->co
a2c0 6e 6e 65 63 74 69 6f 6e 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 69 6e 66 6f 20 2e 3d nnection).{.............$info..=
a2e0 20 22 20 5b 63 6f 6e 6e 65 63 74 65 64 5d 22 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 .".[connected]";.........}......
a300 20 20 20 20 72 65 74 75 72 6e 20 24 69 6e 66 6f 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 ....return.$info;.....}......//.
a320 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 63 6f 6e 73 74 72 75 63 74 6f 72 0a 20 20 20 20 2f }}}.....//.{{{.constructor...../
a340 2a 2a 0a 20 20 20 20 2a 20 43 6f 6e 73 74 72 75 63 74 6f 72 0a 20 20 20 20 2a 2f 0a 20 20 20 20 **.....*.Constructor.....*/.....
a360 66 75 6e 63 74 69 6f 6e 20 44 42 5f 63 6f 6d 6d 6f 6e 28 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 function.DB_common().....{......
a380 20 20 20 24 74 68 69 73 2d 3e 50 45 41 52 28 27 44 42 5f 45 72 72 6f 72 27 29 3b 0a 20 20 20 20 ...$this->PEAR('DB_Error');.....
a3a0 20 20 20 20 24 74 68 69 73 2d 3e 66 65 61 74 75 72 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 20 ....$this->features.=.array();..
a3c0 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 65 72 72 6f 72 63 6f 64 65 5f 6d 61 70 20 3d 20 61 72 .......$this->errorcode_map.=.ar
a3e0 72 61 79 28 29 3b 0a 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 66 65 74 63 68 6d 6f 64 65 20 ray();.........$this->fetchmode.
a400 3d 20 44 42 5f 46 45 54 43 48 4d 4f 44 45 5f 4f 52 44 45 52 45 44 3b 0a 20 20 20 20 7d 0a 0a 20 =.DB_FETCHMODE_ORDERED;.....}...
a420 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 71 75 6f 74 65 53 74 72 69 6e 67 ...//.}}}.....//.{{{.quoteString
a440 28 29 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 51 75 6f 74 65 73 20 61 20 73 74 72 69 ()....../**......*.Quotes.a.stri
a460 6e 67 20 73 6f 20 69 74 20 63 61 6e 20 62 65 20 73 61 66 65 6c 79 20 75 73 65 64 20 77 69 74 68 ng.so.it.can.be.safely.used.with
a480 69 6e 20 73 74 72 69 6e 67 20 64 65 6c 69 6d 69 74 65 72 73 0a 20 20 20 20 20 2a 20 69 6e 20 61 in.string.delimiters......*.in.a
a4a0 20 71 75 65 72 79 20 28 70 72 65 73 65 72 76 65 64 20 66 6f 72 20 63 6f 6d 70 61 74 69 62 69 6c .query.(preserved.for.compatibil
a4c0 69 74 79 20 69 73 73 75 65 73 2c 20 71 75 6f 74 65 28 29 20 69 73 20 70 72 65 66 66 65 72 65 64 ity.issues,.quote().is.preffered
a4e0 29 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 72 65 74 75 72 6e 20 73 74 72 69 6e 67 20 ).......*......*.@return.string.
a500 71 75 6f 74 65 64 20 73 74 72 69 6e 67 0a 20 20 20 20 20 2a 20 40 61 63 63 65 73 73 20 70 75 62 quoted.string......*.@access.pub
a520 6c 69 63 0a 20 20 20 20 20 2a 20 40 73 65 65 20 71 75 6f 74 65 28 29 0a 20 20 20 20 20 2a 2f 0a lic......*.@see.quote()......*/.
a540 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 71 75 6f 74 65 53 74 72 69 6e 67 28 24 73 74 72 69 6e 67 ....function.quoteString($string
a560 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 24 73 74 72 69 6e 67 20 3d 20 24 74 68 69 73 2d ).....{.........$string.=.$this-
a580 3e 71 75 6f 74 65 28 24 73 74 72 69 6e 67 29 3b 0a 20 20 20 20 20 20 20 20 69 66 20 28 24 73 74 >quote($string);.........if.($st
a5a0 72 69 6e 67 7b 30 7d 20 3d 3d 20 22 27 22 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 ring{0}.==."'").{.............re
a5c0 74 75 72 6e 20 73 75 62 73 74 72 28 24 73 74 72 69 6e 67 2c 20 31 2c 20 2d 31 29 3b 0a 20 20 20 turn.substr($string,.1,.-1);....
a5e0 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 73 74 72 69 6e 67 3b 0a 20 .....}.........return.$string;..
a600 20 20 20 7d 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 51 75 6f 74 65 73 20 61 20 73 74 ...}....../**......*.Quotes.a.st
a620 72 69 6e 67 20 73 6f 20 69 74 20 63 61 6e 20 62 65 20 73 61 66 65 6c 79 20 75 73 65 64 20 69 6e ring.so.it.can.be.safely.used.in
a640 20 61 20 71 75 65 72 79 2e 20 49 74 20 77 69 6c 6c 20 72 65 74 75 72 6e 0a 20 20 20 20 20 2a 20 .a.query..It.will.return......*.
a660 74 68 65 20 73 74 72 69 6e 67 20 77 69 74 68 20 73 69 6e 67 6c 65 20 71 75 6f 74 65 73 20 61 72 the.string.with.single.quotes.ar
a680 6f 75 6e 64 2e 20 4f 74 68 65 72 20 62 61 63 6b 65 6e 64 20 71 75 6f 74 65 20 73 74 79 6c 65 73 ound..Other.backend.quote.styles
a6a0 0a 20 20 20 20 20 2a 20 73 68 6f 75 6c 64 20 6f 76 65 72 72 69 64 65 20 74 68 69 73 20 6d 65 74 ......*.should.override.this.met
a6c0 68 6f 64 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 73 74 72 69 6e 67 hod.......*......*.@param.string
a6e0 20 24 73 74 72 69 6e 67 20 74 68 65 20 69 6e 70 75 74 20 73 74 72 69 6e 67 20 74 6f 20 71 75 6f .$string.the.input.string.to.quo
a700 74 65 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 72 65 74 75 72 6e 20 73 74 72 69 6e 67 20 te......*......*.@return.string.
a720 54 68 65 20 4e 55 4c 4c 20 73 74 72 69 6e 67 20 6f 72 20 74 68 65 20 73 74 72 69 6e 67 20 71 75 The.NULL.string.or.the.string.qu
a740 6f 74 65 73 0a 20 20 20 20 20 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 20 6d 61 otes......*................in.ma
a760 67 69 63 5f 71 75 6f 74 65 5f 73 79 62 61 73 65 20 73 74 79 6c 65 0a 20 20 20 20 20 2a 2f 0a 20 gic_quote_sybase.style......*/..
a780 20 20 20 66 75 6e 63 74 69 6f 6e 20 71 75 6f 74 65 28 24 73 74 72 69 6e 67 29 0a 20 20 20 20 7b ...function.quote($string).....{
a7a0 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 28 24 73 74 72 69 6e 67 20 3d 3d 3d 20 6e 75 6c .........return.($string.===.nul
a7c0 6c 29 20 3f 20 27 4e 55 4c 4c 27 20 3a 20 22 27 22 2e 73 74 72 5f 72 65 70 6c 61 63 65 28 22 27 l).?.'NULL'.:."'".str_replace("'
a7e0 22 2c 20 22 27 27 22 2c 20 24 73 74 72 69 6e 67 29 2e 22 27 22 3b 0a 20 20 20 20 7d 0a 0a 20 20 ",."''",.$string)."'";.....}....
a800 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 70 72 6f 76 69 64 65 73 28 29 0a 0a ..//.}}}.....//.{{{.provides()..
a820 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 54 65 6c 6c 20 77 68 65 74 68 65 72 20 61 20 44 42 ..../**......*.Tell.whether.a.DB
a840 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 20 6f 72 20 69 74 73 20 62 61 63 6b 65 6e 64 20 65 .implementation.or.its.backend.e
a860 78 74 65 6e 73 69 6f 6e 0a 20 20 20 20 20 2a 20 73 75 70 70 6f 72 74 73 20 61 20 67 69 76 65 6e xtension......*.supports.a.given
a880 20 66 65 61 74 75 72 65 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 61 .feature.......*......*.@param.a
a8a0 72 72 61 79 20 24 66 65 61 74 75 72 65 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 66 65 61 74 75 72 rray.$feature.name.of.the.featur
a8c0 65 20 28 73 65 65 20 74 68 65 20 44 42 20 63 6c 61 73 73 20 64 6f 63 29 0a 20 20 20 20 20 2a 20 e.(see.the.DB.class.doc)......*.
a8e0 40 72 65 74 75 72 6e 20 62 6f 6f 6c 20 77 68 65 74 68 65 72 20 74 68 69 73 20 44 42 20 69 6d 70 @return.bool.whether.this.DB.imp
a900 6c 65 6d 65 6e 74 61 74 69 6f 6e 20 73 75 70 70 6f 72 74 73 20 24 66 65 61 74 75 72 65 0a 20 20 lementation.supports.$feature...
a920 20 20 20 2a 20 40 61 63 63 65 73 73 20 70 75 62 6c 69 63 0a 20 20 20 20 20 2a 2f 0a 0a 20 20 20 ...*.@access.public......*/.....
a940 20 66 75 6e 63 74 69 6f 6e 20 70 72 6f 76 69 64 65 73 28 24 66 65 61 74 75 72 65 29 0a 20 20 20 .function.provides($feature)....
a960 20 7b 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 66 65 61 74 75 72 65 .{.........return.$this->feature
a980 73 5b 24 66 65 61 74 75 72 65 5d 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 s[$feature];.....}......//.}}}..
a9a0 20 20 20 2f 2f 20 7b 7b 7b 20 65 72 72 6f 72 43 6f 64 65 28 29 0a 0a 20 20 20 20 2f 2a 2a 0a 20 ...//.{{{.errorCode()....../**..
a9c0 20 20 20 20 2a 20 4d 61 70 20 6e 61 74 69 76 65 20 65 72 72 6f 72 20 63 6f 64 65 73 20 74 6f 20 ....*.Map.native.error.codes.to.
a9e0 44 42 27 73 20 70 6f 72 74 61 62 6c 65 20 6f 6e 65 73 2e 20 20 52 65 71 75 69 72 65 73 20 74 68 DB's.portable.ones...Requires.th
aa00 61 74 0a 20 20 20 20 20 2a 20 74 68 65 20 44 42 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 27 at......*.the.DB.implementation'
aa20 73 20 63 6f 6e 73 74 72 75 63 74 6f 72 20 66 69 6c 6c 73 20 69 6e 20 74 68 65 20 24 65 72 72 6f s.constructor.fills.in.the.$erro
aa40 72 63 6f 64 65 5f 6d 61 70 0a 20 20 20 20 20 2a 20 70 72 6f 70 65 72 74 79 2e 0a 20 20 20 20 20 rcode_map......*.property.......
aa60 2a 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 6d 69 78 65 64 20 24 6e 61 74 69 76 65 63 6f 64 *......*.@param.mixed.$nativecod
aa80 65 20 74 68 65 20 6e 61 74 69 76 65 20 65 72 72 6f 72 20 63 6f 64 65 2c 20 61 73 20 72 65 74 75 e.the.native.error.code,.as.retu
aaa0 72 6e 65 64 20 62 79 20 74 68 65 20 62 61 63 6b 65 6e 64 0a 20 20 20 20 20 2a 20 64 61 74 61 62 rned.by.the.backend......*.datab
aac0 61 73 65 20 65 78 74 65 6e 73 69 6f 6e 20 28 73 74 72 69 6e 67 20 6f 72 20 69 6e 74 65 67 65 72 ase.extension.(string.or.integer
aae0 29 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 72 65 74 75 72 6e 20 69 6e 74 20 61 20 70 6f )......*......*.@return.int.a.po
ab00 72 74 61 62 6c 65 20 44 42 20 65 72 72 6f 72 20 63 6f 64 65 2c 20 6f 72 20 46 41 4c 53 45 20 69 rtable.DB.error.code,.or.FALSE.i
ab20 66 20 74 68 69 73 20 44 42 0a 20 20 20 20 20 2a 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 20 f.this.DB......*.implementation.
ab40 68 61 73 20 6e 6f 20 6d 61 70 70 69 6e 67 20 66 6f 72 20 74 68 65 20 67 69 76 65 6e 20 65 72 72 has.no.mapping.for.the.given.err
ab60 6f 72 20 63 6f 64 65 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 61 63 63 65 73 73 20 70 or.code.......*......*.@access.p
ab80 75 62 6c 69 63 0a 20 20 20 20 20 2a 2f 0a 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 65 72 72 6f ublic......*/......function.erro
aba0 72 43 6f 64 65 28 24 6e 61 74 69 76 65 63 6f 64 65 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 rCode($nativecode).....{........
abc0 20 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 65 72 72 6f 72 63 6f 64 65 5f 6d 61 70 5b .if.(isset($this->errorcode_map[
abe0 24 6e 61 74 69 76 65 63 6f 64 65 5d 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 $nativecode])).{.............ret
ac00 75 72 6e 20 24 74 68 69 73 2d 3e 65 72 72 6f 72 63 6f 64 65 5f 6d 61 70 5b 24 6e 61 74 69 76 65 urn.$this->errorcode_map[$native
ac20 63 6f 64 65 5d 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 2f 2f 20 46 61 6c 6c code];.........}.........//.Fall
ac40 20 62 61 63 6b 20 74 6f 20 44 42 5f 45 52 52 4f 52 20 69 66 20 74 68 65 72 65 20 77 61 73 20 6e .back.to.DB_ERROR.if.there.was.n
ac60 6f 20 6d 61 70 70 69 6e 67 2e 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 44 42 5f 45 52 52 o.mapping..........return.DB_ERR
ac80 4f 52 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b OR;.....}......//.}}}.....//.{{{
aca0 20 65 72 72 6f 72 4d 65 73 73 61 67 65 28 29 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 .errorMessage()....../**......*.
acc0 4d 61 70 20 61 20 44 42 20 65 72 72 6f 72 20 63 6f 64 65 20 74 6f 20 61 20 74 65 78 74 75 61 6c Map.a.DB.error.code.to.a.textual
ace0 20 6d 65 73 73 61 67 65 2e 20 20 54 68 69 73 20 69 73 20 61 63 74 75 61 6c 6c 79 0a 20 20 20 20 .message...This.is.actually.....
ad00 20 2a 20 6a 75 73 74 20 61 20 77 72 61 70 70 65 72 20 66 6f 72 20 44 42 3a 3a 65 72 72 6f 72 4d .*.just.a.wrapper.for.DB::errorM
ad20 65 73 73 61 67 65 28 29 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 69 essage().......*......*.@param.i
ad40 6e 74 65 67 65 72 20 24 64 62 63 6f 64 65 20 74 68 65 20 44 42 20 65 72 72 6f 72 20 63 6f 64 65 nteger.$dbcode.the.DB.error.code
ad60 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 72 65 74 75 72 6e 20 73 74 72 69 6e 67 20 74 68 ......*......*.@return.string.th
ad80 65 20 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 65 72 72 6f 72 20 6d 65 73 73 61 67 65 2c 20 6f e.corresponding.error.message,.o
ada0 66 20 46 41 4c 53 45 0a 20 20 20 20 20 2a 20 69 66 20 74 68 65 20 65 72 72 6f 72 20 63 6f 64 65 f.FALSE......*.if.the.error.code
adc0 20 77 61 73 20 75 6e 6b 6e 6f 77 6e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 61 63 63 65 .was.unknown......*......*.@acce
ade0 73 73 20 70 75 62 6c 69 63 0a 20 20 20 20 20 2a 2f 0a 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 ss.public......*/......function.
ae00 65 72 72 6f 72 4d 65 73 73 61 67 65 28 24 64 62 63 6f 64 65 29 0a 20 20 20 20 7b 0a 20 20 20 20 errorMessage($dbcode).....{.....
ae20 20 20 20 20 72 65 74 75 72 6e 20 44 42 3a 3a 65 72 72 6f 72 4d 65 73 73 61 67 65 28 24 74 68 69 ....return.DB::errorMessage($thi
ae40 73 2d 3e 65 72 72 6f 72 63 6f 64 65 5f 6d 61 70 5b 24 64 62 63 6f 64 65 5d 29 3b 0a 20 20 20 20 s->errorcode_map[$dbcode]);.....
ae60 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 72 61 69 73 65 45 72 }......//.}}}.....//.{{{.raiseEr
ae80 72 6f 72 28 29 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 54 68 69 73 20 6d 65 74 68 6f ror()....../**......*.This.metho
aea0 64 20 69 73 20 75 73 65 64 20 74 6f 20 63 6f 6d 6d 75 6e 69 63 61 74 65 20 61 6e 20 65 72 72 6f d.is.used.to.communicate.an.erro
aec0 72 20 61 6e 64 20 69 6e 76 6f 6b 65 20 65 72 72 6f 72 0a 20 20 20 20 20 2a 20 63 61 6c 6c 62 61 r.and.invoke.error......*.callba
aee0 63 6b 73 20 65 74 63 2e 20 20 42 61 73 69 63 61 6c 6c 79 20 61 20 77 72 61 70 70 65 72 20 66 6f cks.etc...Basically.a.wrapper.fo
af00 72 20 50 45 41 52 3a 3a 72 61 69 73 65 45 72 72 6f 72 0a 20 20 20 20 20 2a 20 77 69 74 68 6f 75 r.PEAR::raiseError......*.withou
af20 74 20 74 68 65 20 6d 65 73 73 61 67 65 20 73 74 72 69 6e 67 2e 0a 20 20 20 20 20 2a 0a 20 20 20 t.the.message.string.......*....
af40 20 20 2a 20 40 70 61 72 61 6d 20 6d 69 78 65 64 20 20 20 20 69 6e 74 65 67 65 72 20 65 72 72 6f ..*.@param.mixed....integer.erro
af60 72 20 63 6f 64 65 2c 20 6f 72 20 61 20 50 45 41 52 20 65 72 72 6f 72 20 6f 62 6a 65 63 74 20 28 r.code,.or.a.PEAR.error.object.(
af80 61 6c 6c 0a 20 20 20 20 20 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6f 74 68 65 72 all......*.................other
afa0 20 70 61 72 61 6d 65 74 65 72 73 20 61 72 65 20 69 67 6e 6f 72 65 64 20 69 66 20 74 68 69 73 20 .parameters.are.ignored.if.this.
afc0 70 61 72 61 6d 65 74 65 72 20 69 73 0a 20 20 20 20 20 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 parameter.is......*.............
afe0 20 20 20 20 61 6e 20 6f 62 6a 65 63 74 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 70 61 72 ....an.object......*......*.@par
b000 61 6d 20 69 6e 74 20 20 20 20 20 20 65 72 72 6f 72 20 6d 6f 64 65 2c 20 73 65 65 20 50 45 41 52 am.int......error.mode,.see.PEAR
b020 5f 45 72 72 6f 72 20 64 6f 63 73 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d _Error.docs......*......*.@param
b040 20 6d 69 78 65 64 20 20 20 20 49 66 20 65 72 72 6f 72 20 6d 6f 64 65 20 69 73 20 50 45 41 52 5f .mixed....If.error.mode.is.PEAR_
b060 45 52 52 4f 52 5f 54 52 49 47 47 45 52 2c 20 74 68 69 73 20 69 73 20 74 68 65 0a 20 20 20 20 20 ERROR_TRIGGER,.this.is.the......
b080 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 72 72 6f 72 20 6c 65 76 65 6c 20 28 45 *.................error.level.(E
b0a0 5f 55 53 45 52 5f 4e 4f 54 49 43 45 20 65 74 63 29 2e 20 20 49 66 20 65 72 72 6f 72 20 6d 6f 64 _USER_NOTICE.etc)...If.error.mod
b0c0 65 20 69 73 0a 20 20 20 20 20 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 50 45 41 52 e.is......*.................PEAR
b0e0 5f 45 52 52 4f 52 5f 43 41 4c 4c 42 41 43 4b 2c 20 74 68 69 73 20 69 73 20 74 68 65 20 63 61 6c _ERROR_CALLBACK,.this.is.the.cal
b100 6c 62 61 63 6b 20 66 75 6e 63 74 69 6f 6e 2c 0a 20 20 20 20 20 2a 20 20 20 20 20 20 20 20 20 20 lback.function,......*..........
b120 20 20 20 20 20 20 20 65 69 74 68 65 72 20 61 73 20 61 20 66 75 6e 63 74 69 6f 6e 20 6e 61 6d 65 .......either.as.a.function.name
b140 2c 20 6f 72 20 61 73 20 61 6e 20 61 72 72 61 79 20 6f 66 20 61 6e 0a 20 20 20 20 20 2a 20 20 20 ,.or.as.an.array.of.an......*...
b160 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6f 62 6a 65 63 74 20 61 6e 64 20 6d 65 74 68 6f 64 20 ..............object.and.method.
b180 6e 61 6d 65 2e 20 20 46 6f 72 20 6f 74 68 65 72 20 65 72 72 6f 72 20 6d 6f 64 65 73 20 74 68 69 name...For.other.error.modes.thi
b1a0 73 0a 20 20 20 20 20 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 61 72 61 6d 65 74 s......*.................paramet
b1c0 65 72 20 69 73 20 69 67 6e 6f 72 65 64 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 70 61 er.is.ignored.......*......*.@pa
b1e0 72 61 6d 20 73 74 72 69 6e 67 20 20 20 45 78 74 72 61 20 64 65 62 75 67 20 69 6e 66 6f 72 6d 61 ram.string...Extra.debug.informa
b200 74 69 6f 6e 2e 20 20 44 65 66 61 75 6c 74 73 20 74 6f 20 74 68 65 20 6c 61 73 74 0a 20 20 20 20 tion...Defaults.to.the.last.....
b220 20 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 71 75 65 72 79 20 61 6e 64 20 6e 61 74 .*.................query.and.nat
b240 69 76 65 20 65 72 72 6f 72 20 63 6f 64 65 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 70 ive.error.code.......*......*.@p
b260 61 72 61 6d 20 6d 69 78 65 64 20 20 20 20 4e 61 74 69 76 65 20 65 72 72 6f 72 20 63 6f 64 65 2c aram.mixed....Native.error.code,
b280 20 69 6e 74 65 67 65 72 20 6f 72 20 73 74 72 69 6e 67 20 64 65 70 65 6e 64 69 6e 67 20 74 68 65 .integer.or.string.depending.the
b2a0 0a 20 20 20 20 20 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 61 63 6b 65 6e 64 2e ......*.................backend.
b2c0 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 72 65 74 75 72 6e 20 6f 62 6a 65 63 74 20 20 61 ......*......*.@return.object..a
b2e0 20 50 45 41 52 20 65 72 72 6f 72 20 6f 62 6a 65 63 74 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a .PEAR.error.object......*......*
b300 20 40 61 63 63 65 73 73 20 70 75 62 6c 69 63 0a 20 20 20 20 20 2a 20 40 73 65 65 20 50 45 41 52 .@access.public......*.@see.PEAR
b320 5f 45 72 72 6f 72 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 26 72 61 69 _Error......*/.....function.&rai
b340 73 65 45 72 72 6f 72 28 24 63 6f 64 65 20 3d 20 44 42 5f 45 52 52 4f 52 2c 20 24 6d 6f 64 65 20 seError($code.=.DB_ERROR,.$mode.
b360 3d 20 6e 75 6c 6c 2c 20 24 6f 70 74 69 6f 6e 73 20 3d 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 20 =.null,.$options.=.null,........
b380 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 75 73 65 72 69 6e 66 6f 20 3d 20 6e 75 ..................$userinfo.=.nu
b3a0 6c 6c 2c 20 24 6e 61 74 69 76 65 63 6f 64 65 20 3d 20 6e 75 6c 6c 29 0a 20 20 20 20 7b 0a 20 20 ll,.$nativecode.=.null).....{...
b3c0 20 20 20 20 20 20 2f 2f 20 54 68 65 20 65 72 72 6f 72 20 69 73 20 79 65 74 20 61 20 44 42 20 65 ......//.The.error.is.yet.a.DB.e
b3e0 72 72 6f 72 20 6f 62 6a 65 63 74 0a 20 20 20 20 20 20 20 20 69 66 20 28 69 73 5f 6f 62 6a 65 63 rror.object.........if.(is_objec
b400 74 28 24 63 6f 64 65 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 62 65 63 61 75 t($code)).{.............//.becau
b420 73 65 20 77 65 20 74 68 65 20 73 74 61 74 69 63 20 50 45 41 52 3a 3a 72 61 69 73 65 45 72 72 6f se.we.the.static.PEAR::raiseErro
b440 72 2c 20 6f 75 72 20 67 6c 6f 62 61 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 68 61 6e r,.our.global.............//.han
b460 64 6c 65 72 20 73 68 6f 75 6c 64 20 62 65 20 75 73 65 64 20 69 66 20 69 74 20 69 73 20 73 65 74 dler.should.be.used.if.it.is.set
b480 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 24 6d 6f 64 65 20 3d 3d 3d 20 6e 75 6c 6c 20 .............if.($mode.===.null.
b4a0 26 26 20 21 65 6d 70 74 79 28 24 74 68 69 73 2d 3e 5f 64 65 66 61 75 6c 74 5f 65 72 72 6f 72 5f &&.!empty($this->_default_error_
b4c0 6d 6f 64 65 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 6d 6f 64 65 20 20 mode)).{.................$mode..
b4e0 20 20 3d 20 24 74 68 69 73 2d 3e 5f 64 65 66 61 75 6c 74 5f 65 72 72 6f 72 5f 6d 6f 64 65 3b 0a ..=.$this->_default_error_mode;.
b500 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 6f 70 74 69 6f 6e 73 20 3d 20 24 74 68 69 73 ................$options.=.$this
b520 2d 3e 5f 64 65 66 61 75 6c 74 5f 65 72 72 6f 72 5f 6f 70 74 69 6f 6e 73 3b 0a 20 20 20 20 20 20 ->_default_error_options;.......
b540 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 50 45 41 52 3a ......}.............return.PEAR:
b560 3a 72 61 69 73 65 45 72 72 6f 72 28 24 63 6f 64 65 2c 20 6e 75 6c 6c 2c 20 24 6d 6f 64 65 2c 20 :raiseError($code,.null,.$mode,.
b580 24 6f 70 74 69 6f 6e 73 2c 20 6e 75 6c 6c 2c 20 6e 75 6c 6c 2c 20 74 72 75 65 29 3b 0a 20 20 20 $options,.null,.null,.true);....
b5a0 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 69 66 20 28 24 75 73 65 72 69 6e 66 6f 20 3d 3d .....}..........if.($userinfo.==
b5c0 3d 20 6e 75 6c 6c 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 75 73 65 72 69 6e 66 6f 20 =.null).{.............$userinfo.
b5e0 3d 20 24 74 68 69 73 2d 3e 6c 61 73 74 5f 71 75 65 72 79 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a =.$this->last_query;.........}..
b600 20 20 20 20 20 20 20 20 69 66 20 28 24 6e 61 74 69 76 65 63 6f 64 65 29 20 7b 0a 20 20 20 20 20 ........if.($nativecode).{......
b620 20 20 20 20 20 20 20 24 75 73 65 72 69 6e 66 6f 20 2e 3d 20 22 20 5b 6e 61 74 69 76 65 63 6f 64 .......$userinfo..=.".[nativecod
b640 65 3d 24 6e 61 74 69 76 65 63 6f 64 65 5d 22 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 e=$nativecode]";.........}......
b660 20 20 20 20 72 65 74 75 72 6e 20 50 45 41 52 3a 3a 72 61 69 73 65 45 72 72 6f 72 28 6e 75 6c 6c ....return.PEAR::raiseError(null
b680 2c 20 24 63 6f 64 65 2c 20 24 6d 6f 64 65 2c 20 24 6f 70 74 69 6f 6e 73 2c 20 24 75 73 65 72 69 ,.$code,.$mode,.$options,.$useri
b6a0 6e 66 6f 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 nfo,............................
b6c0 20 20 20 20 20 20 20 27 44 42 5f 45 72 72 6f 72 27 2c 20 74 72 75 65 29 3b 0a 20 20 20 20 7d 0a .......'DB_Error',.true);.....}.
b6e0 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 73 65 74 46 65 74 63 68 4d .....//.}}}.....//.{{{.setFetchM
b700 6f 64 65 28 29 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 53 65 74 73 20 77 68 69 63 68 ode()....../**......*.Sets.which
b720 20 66 65 74 63 68 20 6d 6f 64 65 20 73 68 6f 75 6c 64 20 62 65 20 75 73 65 64 20 62 79 20 64 65 .fetch.mode.should.be.used.by.de
b740 66 61 75 6c 74 20 6f 6e 20 71 75 65 72 69 65 73 0a 20 20 20 20 20 2a 20 6f 6e 20 74 68 69 73 20 fault.on.queries......*.on.this.
b760 63 6f 6e 6e 65 63 74 69 6f 6e 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d connection.......*......*.@param
b780 20 69 6e 74 65 67 65 72 20 24 66 65 74 63 68 6d 6f 64 65 20 44 42 5f 46 45 54 43 48 4d 4f 44 45 .integer.$fetchmode.DB_FETCHMODE
b7a0 5f 4f 52 44 45 52 45 44 20 6f 72 0a 20 20 20 20 20 2a 20 20 20 20 20 20 20 20 44 42 5f 46 45 54 _ORDERED.or......*........DB_FET
b7c0 43 48 4d 4f 44 45 5f 41 53 53 4f 43 2c 20 70 6f 73 73 69 62 6c 79 20 62 69 74 2d 77 69 73 65 20 CHMODE_ASSOC,.possibly.bit-wise.
b7e0 4f 52 27 65 64 20 77 69 74 68 0a 20 20 20 20 20 2a 20 20 20 20 20 20 20 20 44 42 5f 46 45 54 43 OR'ed.with......*........DB_FETC
b800 48 4d 4f 44 45 5f 46 4c 49 50 50 45 44 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 70 61 HMODE_FLIPPED.......*......*.@pa
b820 72 61 6d 20 73 74 72 69 6e 67 20 24 6f 62 6a 65 63 74 5f 63 6c 61 73 73 20 54 68 65 20 63 6c 61 ram.string.$object_class.The.cla
b840 73 73 20 6f 66 20 74 68 65 20 6f 62 6a 65 63 74 0a 20 20 20 20 20 2a 20 20 20 20 20 20 20 20 20 ss.of.the.object......*.........
b860 20 20 20 20 20 20 20 20 20 20 20 20 20 74 6f 20 62 65 20 72 65 74 75 72 6e 65 64 20 62 79 20 74 .............to.be.returned.by.t
b880 68 65 20 66 65 74 63 68 20 6d 65 74 68 6f 64 73 20 77 68 65 6e 0a 20 20 20 20 20 2a 20 20 20 20 he.fetch.methods.when......*....
b8a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 68 65 20 44 42 5f 46 45 54 43 48 4d 4f ..................the.DB_FETCHMO
b8c0 44 45 5f 4f 42 4a 45 43 54 20 6d 6f 64 65 20 69 73 20 73 65 6c 65 63 74 65 64 2e 0a 20 20 20 20 DE_OBJECT.mode.is.selected......
b8e0 20 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 49 66 20 6e 6f 20 63 6c .*......................If.no.cl
b900 61 73 73 20 69 73 20 73 70 65 63 69 66 69 65 64 20 62 79 20 64 65 66 61 75 6c 74 20 61 20 63 61 ass.is.specified.by.default.a.ca
b920 73 74 0a 20 20 20 20 20 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 st......*......................t
b940 6f 20 6f 62 6a 65 63 74 20 66 72 6f 6d 20 74 68 65 20 61 73 73 6f 63 20 61 72 72 61 79 20 72 6f o.object.from.the.assoc.array.ro
b960 77 20 77 69 6c 6c 20 62 65 20 64 6f 6e 65 2e 0a 20 20 20 20 20 2a 20 20 20 20 20 20 20 20 20 20 w.will.be.done.......*..........
b980 20 20 20 20 20 20 20 20 20 20 20 20 54 68 65 72 65 20 69 73 20 61 6c 73 6f 20 74 68 65 20 70 6f ............There.is.also.the.po
b9a0 73 69 62 69 6c 69 74 79 20 74 6f 20 75 73 65 20 61 6e 64 20 65 78 74 65 6e 64 20 74 68 65 0a 20 sibility.to.use.and.extend.the..
b9c0 20 20 20 20 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 44 42 5f 52 ....*......................'DB_R
b9e0 6f 77 27 20 63 6c 61 73 73 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 73 65 65 20 44 42 ow'.class.......*......*.@see.DB
ba00 5f 46 45 54 43 48 4d 4f 44 45 5f 4f 52 44 45 52 45 44 0a 20 20 20 20 20 2a 20 40 73 65 65 20 44 _FETCHMODE_ORDERED......*.@see.D
ba20 42 5f 46 45 54 43 48 4d 4f 44 45 5f 41 53 53 4f 43 0a 20 20 20 20 20 2a 20 40 73 65 65 20 44 42 B_FETCHMODE_ASSOC......*.@see.DB
ba40 5f 46 45 54 43 48 4d 4f 44 45 5f 46 4c 49 50 50 45 44 0a 20 20 20 20 20 2a 20 40 73 65 65 20 44 _FETCHMODE_FLIPPED......*.@see.D
ba60 42 5f 46 45 54 43 48 4d 4f 44 45 5f 4f 42 4a 45 43 54 0a 20 20 20 20 20 2a 20 40 73 65 65 20 44 B_FETCHMODE_OBJECT......*.@see.D
ba80 42 5f 52 6f 77 3a 3a 44 42 5f 52 6f 77 28 29 0a 20 20 20 20 20 2a 20 40 61 63 63 65 73 73 20 70 B_Row::DB_Row()......*.@access.p
baa0 75 62 6c 69 63 0a 20 20 20 20 20 2a 2f 0a 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 46 ublic......*/......function.setF
bac0 65 74 63 68 4d 6f 64 65 28 24 66 65 74 63 68 6d 6f 64 65 2c 20 24 6f 62 6a 65 63 74 5f 63 6c 61 etchMode($fetchmode,.$object_cla
bae0 73 73 20 3d 20 6e 75 6c 6c 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 73 77 69 74 63 68 20 ss.=.null).....{.........switch.
bb00 28 24 66 65 74 63 68 6d 6f 64 65 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 63 61 73 65 20 ($fetchmode).{.............case.
bb20 44 42 5f 46 45 54 43 48 4d 4f 44 45 5f 4f 42 4a 45 43 54 3a 0a 20 20 20 20 20 20 20 20 20 20 20 DB_FETCHMODE_OBJECT:............
bb40 20 20 20 20 20 69 66 20 28 24 6f 62 6a 65 63 74 5f 63 6c 61 73 73 29 20 7b 0a 20 20 20 20 20 20 .....if.($object_class).{.......
bb60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 66 65 74 63 68 6d 6f 64 65 5f 6f ..............$this->fetchmode_o
bb80 62 6a 65 63 74 5f 63 6c 61 73 73 20 3d 20 24 6f 62 6a 65 63 74 5f 63 6c 61 73 73 3b 0a 20 20 20 bject_class.=.$object_class;....
bba0 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 63 61 73 65 20 .............}.............case.
bbc0 44 42 5f 46 45 54 43 48 4d 4f 44 45 5f 4f 52 44 45 52 45 44 3a 0a 20 20 20 20 20 20 20 20 20 20 DB_FETCHMODE_ORDERED:...........
bbe0 20 20 63 61 73 65 20 44 42 5f 46 45 54 43 48 4d 4f 44 45 5f 41 53 53 4f 43 3a 0a 20 20 20 20 20 ..case.DB_FETCHMODE_ASSOC:......
bc00 20 20 20 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 66 65 74 63 68 6d 6f 64 65 20 3d 20 24 66 ...........$this->fetchmode.=.$f
bc20 65 74 63 68 6d 6f 64 65 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 72 65 61 6b 3b etchmode;.................break;
bc40 0a 20 20 20 20 20 20 20 20 20 20 20 20 64 65 66 61 75 6c 74 3a 0a 20 20 20 20 20 20 20 20 20 20 .............default:...........
bc60 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 61 69 73 65 45 72 72 6f 72 28 27 ......return.$this->raiseError('
bc80 69 6e 76 61 6c 69 64 20 66 65 74 63 68 6d 6f 64 65 20 6d 6f 64 65 27 29 3b 0a 20 20 20 20 20 20 invalid.fetchmode.mode');.......
bca0 20 20 7d 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b ..}.....}......//.}}}.....//.{{{
bcc0 20 73 65 74 4f 70 74 69 6f 6e 28 29 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 2a 20 73 65 74 20 74 .setOption()...../**.....*.set.t
bce0 68 65 20 6f 70 74 69 6f 6e 20 66 6f 72 20 74 68 65 20 64 62 20 63 6c 61 73 73 0a 20 20 20 20 2a he.option.for.the.db.class.....*
bd00 0a 20 20 20 20 2a 20 40 70 61 72 61 6d 20 73 74 72 69 6e 67 20 24 6f 70 74 69 6f 6e 20 6f 70 74 .....*.@param.string.$option.opt
bd20 69 6f 6e 20 6e 61 6d 65 0a 20 20 20 20 2a 20 40 70 61 72 61 6d 20 6d 69 78 65 64 20 20 24 76 61 ion.name.....*.@param.mixed..$va
bd40 6c 75 65 20 76 61 6c 75 65 20 66 6f 72 20 74 68 65 20 6f 70 74 69 6f 6e 0a 20 20 20 20 2a 0a 20 lue.value.for.the.option.....*..
bd60 20 20 20 2a 20 40 72 65 74 75 72 6e 20 6d 69 78 65 64 20 44 42 5f 4f 4b 20 6f 72 20 44 42 5f 45 ...*.@return.mixed.DB_OK.or.DB_E
bd80 72 72 6f 72 0a 20 20 20 20 2a 2f 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 4f 70 74 69 rror.....*/.....function.setOpti
bda0 6f 6e 28 24 6f 70 74 69 6f 6e 2c 20 24 76 61 6c 75 65 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 on($option,.$value).....{.......
bdc0 20 20 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 5b 24 6f 70 74 69 ..if.(isset($this->options[$opti
bde0 6f 6e 5d 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 6f 70 74 69 6f on])).{.............$this->optio
be00 6e 73 5b 24 6f 70 74 69 6f 6e 5d 20 3d 20 24 76 61 6c 75 65 3b 0a 20 20 20 20 20 20 20 20 20 20 ns[$option].=.$value;...........
be20 20 20 72 65 74 75 72 6e 20 44 42 5f 4f 4b 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 ..return.DB_OK;.........}.......
be40 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 61 69 73 65 45 72 72 6f 72 28 22 75 6e 6b 6e ..return.$this->raiseError("unkn
be60 6f 77 6e 20 6f 70 74 69 6f 6e 20 24 6f 70 74 69 6f 6e 22 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 own.option.$option");.....}.....
be80 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 67 65 74 4f 70 74 69 6f 6e 28 29 0a 20 .//.}}}.....//.{{{.getOption()..
bea0 20 20 20 2f 2a 2a 0a 20 20 20 20 2a 20 72 65 74 75 72 6e 73 20 74 68 65 20 76 61 6c 75 65 20 6f .../**.....*.returns.the.value.o
bec0 66 20 61 6e 20 6f 70 74 69 6f 6e 0a 20 20 20 20 2a 0a 20 20 20 20 2a 20 40 70 61 72 61 6d 20 73 f.an.option.....*.....*.@param.s
bee0 74 72 69 6e 67 20 24 6f 70 74 69 6f 6e 20 6f 70 74 69 6f 6e 20 6e 61 6d 65 0a 20 20 20 20 2a 0a tring.$option.option.name.....*.
bf00 20 20 20 20 2a 20 40 72 65 74 75 72 6e 20 6d 69 78 65 64 20 74 68 65 20 6f 70 74 69 6f 6e 20 76 ....*.@return.mixed.the.option.v
bf20 61 6c 75 65 0a 20 20 20 20 2a 2f 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4f 70 74 69 alue.....*/.....function.getOpti
bf40 6f 6e 28 24 6f 70 74 69 6f 6e 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 69 66 20 28 69 73 on($option).....{.........if.(is
bf60 73 65 74 28 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 5b 24 6f 70 74 69 6f 6e 5d 29 29 20 7b 0a set($this->options[$option])).{.
bf80 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e ............return.$this->option
bfa0 73 5b 24 6f 70 74 69 6f 6e 5d 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 72 65 s[$option];.........}.........re
bfc0 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 61 69 73 65 45 72 72 6f 72 28 22 75 6e 6b 6e 6f 77 6e 20 turn.$this->raiseError("unknown.
bfe0 6f 70 74 69 6f 6e 20 24 6f 70 74 69 6f 6e 22 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 option.$option");.....}......//.
c000 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 70 72 65 70 61 72 65 28 29 0a 0a 20 20 20 20 2f 2a }}}.....//.{{{.prepare()....../*
c020 2a 0a 20 20 20 20 2a 20 50 72 65 70 61 72 65 73 20 61 20 71 75 65 72 79 20 66 6f 72 20 6d 75 6c *.....*.Prepares.a.query.for.mul
c040 74 69 70 6c 65 20 65 78 65 63 75 74 69 6f 6e 20 77 69 74 68 20 65 78 65 63 75 74 65 28 29 2e 0a tiple.execution.with.execute()..
c060 20 20 20 20 2a 20 57 69 74 68 20 73 6f 6d 65 20 64 61 74 61 62 61 73 65 20 62 61 63 6b 65 6e 64 ....*.With.some.database.backend
c080 73 2c 20 74 68 69 73 20 69 73 20 65 6d 75 6c 61 74 65 64 2e 0a 20 20 20 20 2a 20 70 72 65 70 61 s,.this.is.emulated......*.prepa
c0a0 72 65 28 29 20 72 65 71 75 69 72 65 73 20 61 20 67 65 6e 65 72 69 63 20 71 75 65 72 79 20 61 73 re().requires.a.generic.query.as
c0c0 20 73 74 72 69 6e 67 20 6c 69 6b 65 0a 20 20 20 20 2a 20 22 49 4e 53 45 52 54 20 49 4e 54 4f 20 .string.like.....*."INSERT.INTO.
c0e0 6e 75 6d 62 65 72 73 20 56 41 4c 55 45 53 28 3f 2c 3f 2c 3f 29 22 2e 20 54 68 65 20 3f 20 61 72 numbers.VALUES(?,?,?)"..The.?.ar
c100 65 20 77 69 6c 64 63 61 72 64 73 2e 0a 20 20 20 20 2a 20 54 79 70 65 73 20 6f 66 20 77 69 6c 64 e.wildcards......*.Types.of.wild
c120 63 61 72 64 73 3a 0a 20 20 20 20 2a 20 20 20 3f 20 2d 20 61 20 71 75 6f 74 65 64 20 73 63 61 6c cards:.....*...?.-.a.quoted.scal
c140 61 72 20 76 61 6c 75 65 2c 20 69 2e 65 2e 20 73 74 72 69 6e 67 73 2c 20 69 6e 74 65 67 65 72 73 ar.value,.i.e..strings,.integers
c160 0a 20 20 20 20 2a 20 20 20 26 20 2d 20 72 65 71 75 69 72 65 73 20 61 20 66 69 6c 65 20 6e 61 6d .....*...&.-.requires.a.file.nam
c180 65 2c 20 74 68 65 20 63 6f 6e 74 65 6e 74 20 6f 66 20 74 68 65 20 66 69 6c 65 0a 20 20 20 20 2a e,.the.content.of.the.file.....*
c1a0 20 20 20 20 20 20 20 69 6e 73 65 72 74 20 69 6e 74 6f 20 74 68 65 20 71 75 65 72 79 20 28 69 2e .......insert.into.the.query.(i.
c1c0 65 2e 20 73 61 76 69 6e 67 20 62 69 6e 61 72 79 20 64 61 74 61 0a 20 20 20 20 2a 20 20 20 20 20 e..saving.binary.data.....*.....
c1e0 20 20 69 6e 20 61 20 64 62 29 0a 20 20 20 20 2a 20 20 20 21 20 2d 20 76 61 6c 75 65 20 69 73 20 ..in.a.db).....*...!.-.value.is.
c200 69 6e 73 65 72 74 65 64 20 27 61 73 20 69 73 27 0a 20 20 20 20 2a 0a 20 20 20 20 2a 20 40 70 61 inserted.'as.is'.....*.....*.@pa
c220 72 61 6d 20 73 74 72 69 6e 67 20 74 68 65 20 71 75 65 72 79 20 74 6f 20 70 72 65 70 61 72 65 0a ram.string.the.query.to.prepare.
c240 20 20 20 20 2a 0a 20 20 20 20 2a 20 40 72 65 74 75 72 6e 20 72 65 73 6f 75 72 63 65 20 68 61 6e ....*.....*.@return.resource.han
c260 64 6c 65 20 66 6f 72 20 74 68 65 20 71 75 65 72 79 0a 20 20 20 20 2a 0a 20 20 20 20 2a 20 40 61 dle.for.the.query.....*.....*.@a
c280 63 63 65 73 73 20 70 75 62 6c 69 63 0a 20 20 20 20 2a 20 40 73 65 65 20 65 78 65 63 75 74 65 0a ccess.public.....*.@see.execute.
c2a0 20 20 20 20 2a 2f 0a 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 70 72 65 70 61 72 65 28 24 71 75 ....*/......function.prepare($qu
c2c0 65 72 79 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 24 74 6f 6b 65 6e 73 20 3d 20 73 70 6c ery).....{.........$tokens.=.spl
c2e0 69 74 28 22 5b 5c 26 5c 3f 5c 21 5d 22 2c 20 24 71 75 65 72 79 29 3b 0a 20 20 20 20 20 20 20 20 it("[\&\?\!]",.$query);.........
c300 24 74 6f 6b 65 6e 20 3d 20 30 3b 0a 20 20 20 20 20 20 20 20 24 74 79 70 65 73 20 3d 20 61 72 72 $token.=.0;.........$types.=.arr
c320 61 79 28 29 3b 0a 20 20 20 20 20 20 20 20 24 71 6c 65 6e 20 3d 20 73 74 72 6c 65 6e 28 24 71 75 ay();.........$qlen.=.strlen($qu
c340 65 72 79 29 3b 0a 20 20 20 20 20 20 20 20 66 6f 72 20 28 24 69 20 3d 20 30 3b 20 24 69 20 3c 20 ery);.........for.($i.=.0;.$i.<.
c360 24 71 6c 65 6e 3b 20 24 69 2b 2b 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 73 77 69 74 63 $qlen;.$i++).{.............switc
c380 68 20 28 24 71 75 65 72 79 5b 24 69 5d 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 h.($query[$i]).{................
c3a0 20 63 61 73 65 20 27 3f 27 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 .case.'?':.....................$
c3c0 74 79 70 65 73 5b 24 74 6f 6b 65 6e 2b 2b 5d 20 3d 20 44 42 5f 50 41 52 41 4d 5f 53 43 41 4c 41 types[$token++].=.DB_PARAM_SCALA
c3e0 52 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 72 65 61 6b 3b 0a 20 20 R;.....................break;...
c400 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 61 73 65 20 27 26 27 3a 0a 20 20 20 20 20 20 20 20 ..............case.'&':.........
c420 20 20 20 20 20 20 20 20 20 20 20 20 24 74 79 70 65 73 5b 24 74 6f 6b 65 6e 2b 2b 5d 20 3d 20 44 ............$types[$token++].=.D
c440 42 5f 50 41 52 41 4d 5f 4f 50 41 51 55 45 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 B_PARAM_OPAQUE;.................
c460 20 20 20 20 62 72 65 61 6b 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 61 73 65 20 ....break;.................case.
c480 27 21 27 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 74 79 70 65 73 5b '!':.....................$types[
c4a0 24 74 6f 6b 65 6e 2b 2b 5d 20 3d 20 44 42 5f 50 41 52 41 4d 5f 4d 49 53 43 3b 0a 20 20 20 20 20 $token++].=.DB_PARAM_MISC;......
c4c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 72 65 61 6b 3b 0a 20 20 20 20 20 20 20 20 20 20 ...............break;...........
c4e0 20 20 7d 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 70 72 ..}.........}..........$this->pr
c500 65 70 61 72 65 5f 74 6f 6b 65 6e 73 5b 5d 20 3d 20 26 24 74 6f 6b 65 6e 73 3b 0a 20 20 20 20 20 epare_tokens[].=.&$tokens;......
c520 20 20 20 65 6e 64 28 24 74 68 69 73 2d 3e 70 72 65 70 61 72 65 5f 74 6f 6b 65 6e 73 29 3b 0a 0a ...end($this->prepare_tokens);..
c540 20 20 20 20 20 20 20 20 24 6b 20 3d 20 6b 65 79 28 24 74 68 69 73 2d 3e 70 72 65 70 61 72 65 5f ........$k.=.key($this->prepare_
c560 74 6f 6b 65 6e 73 29 3b 0a 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 70 72 65 70 61 72 65 5f tokens);.........$this->prepare_
c580 74 79 70 65 73 5b 24 6b 5d 20 3d 20 24 74 79 70 65 73 3b 0a 20 20 20 20 20 20 20 20 24 74 68 69 types[$k].=.$types;.........$thi
c5a0 73 2d 3e 70 72 65 70 61 72 65 64 5f 71 75 65 72 69 65 73 5b 24 6b 5d 20 3d 20 26 24 71 75 65 72 s->prepared_queries[$k].=.&$quer
c5c0 79 3b 0a 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 6b 3b 0a 20 20 20 20 7d 0a 0a 20 20 y;..........return.$k;.....}....
c5e0 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 61 75 74 6f 50 72 65 70 61 72 65 28 ..//.}}}.....//.{{{.autoPrepare(
c600 29 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 2a 20 4d 61 6b 65 20 61 75 74 6f 6d 61 74 69 63 61 )....../**.....*.Make.automatica
c620 6c 79 20 61 6e 20 69 6e 73 65 72 74 20 6f 72 20 75 70 64 61 74 65 20 71 75 65 72 79 20 61 6e 64 ly.an.insert.or.update.query.and
c640 20 63 61 6c 6c 20 70 72 65 70 61 72 65 28 29 20 77 69 74 68 20 69 74 0a 20 20 20 20 2a 0a 20 20 .call.prepare().with.it.....*...
c660 20 20 2a 20 40 70 61 72 61 6d 20 73 74 72 69 6e 67 20 24 74 61 62 6c 65 20 6e 61 6d 65 20 6f 66 ..*.@param.string.$table.name.of
c680 20 74 68 65 20 74 61 62 6c 65 0a 20 20 20 20 2a 20 40 70 61 72 61 6d 20 61 72 72 61 79 20 24 74 .the.table.....*.@param.array.$t
c6a0 61 62 6c 65 5f 66 69 65 6c 64 73 20 6f 72 64 65 72 65 64 20 61 72 72 61 79 20 63 6f 6e 74 61 69 able_fields.ordered.array.contai
c6c0 6e 69 6e 67 20 74 68 65 20 66 69 65 6c 64 73 20 6e 61 6d 65 73 0a 20 20 20 20 2a 20 40 70 61 72 ning.the.fields.names.....*.@par
c6e0 61 6d 20 69 6e 74 20 24 6d 6f 64 65 20 74 79 70 65 20 6f 66 20 71 75 65 72 79 20 74 6f 20 6d 61 am.int.$mode.type.of.query.to.ma
c700 6b 65 20 28 44 42 5f 41 55 54 4f 51 55 45 52 59 5f 49 4e 53 45 52 54 20 6f 72 20 44 42 5f 41 55 ke.(DB_AUTOQUERY_INSERT.or.DB_AU
c720 54 4f 51 55 45 52 59 5f 55 50 44 41 54 45 29 0a 20 20 20 20 2a 20 40 70 61 72 61 6d 20 73 74 72 TOQUERY_UPDATE).....*.@param.str
c740 69 6e 67 20 24 77 68 65 72 65 20 69 6e 20 63 61 73 65 20 6f 66 20 75 70 64 61 74 65 20 71 75 65 ing.$where.in.case.of.update.que
c760 72 69 65 73 2c 20 74 68 69 73 20 73 74 72 69 6e 67 20 77 69 6c 6c 20 62 65 20 70 75 74 20 61 66 ries,.this.string.will.be.put.af
c780 74 65 72 20 74 68 65 20 73 71 6c 20 57 48 45 52 45 20 73 74 61 74 65 6d 65 6e 74 0a 20 20 20 20 ter.the.sql.WHERE.statement.....
c7a0 2a 20 40 72 65 74 75 72 6e 20 72 65 73 6f 75 72 63 65 20 68 61 6e 64 6c 65 20 66 6f 72 20 74 68 *.@return.resource.handle.for.th
c7c0 65 20 71 75 65 72 79 0a 20 20 20 20 2a 20 40 73 65 65 20 62 75 69 6c 64 4d 61 6e 69 70 53 51 4c e.query.....*.@see.buildManipSQL
c7e0 0a 20 20 20 20 2a 20 40 61 63 63 65 73 73 20 70 75 62 6c 69 63 0a 20 20 20 20 2a 2f 0a 20 20 20 .....*.@access.public.....*/....
c800 20 66 75 6e 63 74 69 6f 6e 20 61 75 74 6f 50 72 65 70 61 72 65 28 24 74 61 62 6c 65 2c 20 24 74 .function.autoPrepare($table,.$t
c820 61 62 6c 65 5f 66 69 65 6c 64 73 2c 20 24 6d 6f 64 65 20 3d 20 44 42 5f 41 55 54 4f 51 55 45 52 able_fields,.$mode.=.DB_AUTOQUER
c840 59 5f 49 4e 53 45 52 54 2c 20 24 77 68 65 72 65 20 3d 20 66 61 6c 73 65 29 0a 20 20 20 20 7b 0a Y_INSERT,.$where.=.false).....{.
c860 20 20 20 20 20 20 20 20 24 71 75 65 72 79 20 3d 20 24 74 68 69 73 2d 3e 62 75 69 6c 64 4d 61 6e ........$query.=.$this->buildMan
c880 69 70 53 51 4c 28 24 74 61 62 6c 65 2c 20 24 74 61 62 6c 65 5f 66 69 65 6c 64 73 2c 20 24 6d 6f ipSQL($table,.$table_fields,.$mo
c8a0 64 65 2c 20 24 77 68 65 72 65 29 3b 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 de,.$where);.........return.$thi
c8c0 73 2d 3e 70 72 65 70 61 72 65 28 24 71 75 65 72 79 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f s->prepare($query);.....}....../
c8e0 2f 20 7b 7b 7b 0a 20 20 20 20 2f 2f 20 7d 7d 7d 20 61 75 74 6f 45 78 65 63 75 74 65 28 29 0a 0a /.{{{.....//.}}}.autoExecute()..
c900 20 20 20 20 2f 2a 2a 0a 20 20 20 20 2a 20 4d 61 6b 65 20 61 75 74 6f 6d 61 74 69 63 61 6c 79 20 ..../**.....*.Make.automaticaly.
c920 61 6e 20 69 6e 73 65 72 74 20 6f 72 20 75 70 64 61 74 65 20 71 75 65 72 79 20 61 6e 64 20 63 61 an.insert.or.update.query.and.ca
c940 6c 6c 20 70 72 65 70 61 72 65 28 29 20 61 6e 64 20 65 78 65 63 75 74 65 28 29 20 77 69 74 68 20 ll.prepare().and.execute().with.
c960 69 74 0a 20 20 20 20 2a 0a 20 20 20 20 2a 20 40 70 61 72 61 6d 20 73 74 72 69 6e 67 20 24 74 61 it.....*.....*.@param.string.$ta
c980 62 6c 65 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 74 61 62 6c 65 0a 20 20 20 20 2a 20 40 70 61 72 ble.name.of.the.table.....*.@par
c9a0 61 6d 20 61 72 72 61 79 20 24 66 69 65 6c 64 73 5f 76 61 6c 75 65 73 20 61 73 73 6f 63 20 28 24 am.array.$fields_values.assoc.($
c9c0 6b 65 79 3d 3e 24 76 61 6c 75 65 29 20 77 68 65 72 65 20 24 6b 65 79 20 69 73 20 61 20 66 69 65 key=>$value).where.$key.is.a.fie
c9e0 6c 64 20 6e 61 6d 65 20 61 6e 64 20 24 76 61 6c 75 65 20 69 74 73 20 76 61 6c 75 65 0a 20 20 20 ld.name.and.$value.its.value....
ca00 20 2a 20 40 70 61 72 61 6d 20 69 6e 74 20 24 6d 6f 64 65 20 74 79 70 65 20 6f 66 20 71 75 65 72 .*.@param.int.$mode.type.of.quer
ca20 79 20 74 6f 20 6d 61 6b 65 20 28 44 42 5f 41 55 54 4f 51 55 45 52 59 5f 49 4e 53 45 52 54 20 6f y.to.make.(DB_AUTOQUERY_INSERT.o
ca40 72 20 44 42 5f 41 55 54 4f 51 55 45 52 59 5f 55 50 44 41 54 45 29 0a 20 20 20 20 2a 20 40 70 61 r.DB_AUTOQUERY_UPDATE).....*.@pa
ca60 72 61 6d 20 73 74 72 69 6e 67 20 24 77 68 65 72 65 20 69 6e 20 63 61 73 65 20 6f 66 20 75 70 64 ram.string.$where.in.case.of.upd
ca80 61 74 65 20 71 75 65 72 69 65 73 2c 20 74 68 69 73 20 73 74 72 69 6e 67 20 77 69 6c 6c 20 62 65 ate.queries,.this.string.will.be
caa0 20 70 75 74 20 61 66 74 65 72 20 74 68 65 20 73 71 6c 20 57 48 45 52 45 20 73 74 61 74 65 6d 65 .put.after.the.sql.WHERE.stateme
cac0 6e 74 0a 20 20 20 20 2a 20 40 72 65 74 75 72 6e 20 6d 69 78 65 64 20 20 61 20 6e 65 77 20 44 42 nt.....*.@return.mixed..a.new.DB
cae0 5f 52 65 73 75 6c 74 20 6f 72 20 61 20 44 42 5f 45 72 72 6f 72 20 77 68 65 6e 20 66 61 69 6c 0a _Result.or.a.DB_Error.when.fail.
cb00 20 20 20 20 2a 20 40 73 65 65 20 62 75 69 6c 64 4d 61 6e 69 70 53 51 4c 0a 20 20 20 20 2a 20 40 ....*.@see.buildManipSQL.....*.@
cb20 73 65 65 20 61 75 74 6f 50 72 65 70 61 72 65 0a 20 20 20 20 2a 20 40 61 63 63 65 73 73 20 70 75 see.autoPrepare.....*.@access.pu
cb40 62 6c 69 63 0a 20 20 20 20 2a 2f 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 61 75 74 6f 45 78 65 blic.....*/.....function.autoExe
cb60 63 75 74 65 28 24 74 61 62 6c 65 2c 20 24 66 69 65 6c 64 73 5f 76 61 6c 75 65 73 2c 20 24 6d 6f cute($table,.$fields_values,.$mo
cb80 64 65 20 3d 20 44 42 5f 41 55 54 4f 51 55 45 52 59 5f 49 4e 53 45 52 54 2c 20 24 77 68 65 72 65 de.=.DB_AUTOQUERY_INSERT,.$where
cba0 20 3d 20 66 61 6c 73 65 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 24 73 74 68 20 3d 20 24 .=.false).....{.........$sth.=.$
cbc0 74 68 69 73 2d 3e 61 75 74 6f 50 72 65 70 61 72 65 28 24 74 61 62 6c 65 2c 20 61 72 72 61 79 5f this->autoPrepare($table,.array_
cbe0 6b 65 79 73 28 24 66 69 65 6c 64 73 5f 76 61 6c 75 65 73 29 2c 20 24 6d 6f 64 65 2c 20 24 77 68 keys($fields_values),.$mode,.$wh
cc00 65 72 65 29 3b 0a 20 20 20 20 20 20 20 20 24 72 65 74 20 3d 20 24 74 68 69 73 2d 3e 65 78 65 63 ere);.........$ret.=.$this->exec
cc20 75 74 65 28 24 73 74 68 2c 20 61 72 72 61 79 5f 76 61 6c 75 65 73 28 24 66 69 65 6c 64 73 5f 76 ute($sth,.array_values($fields_v
cc40 61 6c 75 65 73 29 29 3b 0a 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 66 72 65 65 50 72 65 70 alues));.........$this->freePrep
cc60 61 72 65 64 28 24 73 74 68 29 3b 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 72 65 74 3b ared($sth);.........return.$ret;
cc80 0a 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7b 7b 7b 0a 20 20 20 20 2f 2f 20 7d 7d 7d 20 62 ......}......//.{{{.....//.}}}.b
cca0 75 69 6c 64 4d 61 6e 69 70 53 51 4c 28 29 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 2a 20 4d 61 uildManipSQL()....../**.....*.Ma
ccc0 6b 65 20 61 75 74 6f 6d 61 74 69 63 61 6c 79 20 61 6e 20 73 71 6c 20 71 75 65 72 79 20 66 6f 72 ke.automaticaly.an.sql.query.for
cce0 20 70 72 65 70 61 72 65 28 29 0a 20 20 20 20 2a 0a 20 20 20 20 2a 20 45 78 61 6d 70 6c 65 20 3a .prepare().....*.....*.Example.:
cd00 20 62 75 69 6c 64 4d 61 6e 69 70 53 51 4c 28 27 74 61 62 6c 65 5f 73 71 6c 27 2c 20 61 72 72 61 .buildManipSQL('table_sql',.arra
cd20 79 28 27 66 69 65 6c 64 31 27 2c 20 27 66 69 65 6c 64 32 27 2c 20 27 66 69 65 6c 64 33 27 29 2c y('field1',.'field2',.'field3'),
cd40 20 44 42 5f 41 55 54 4f 51 55 45 52 59 5f 49 4e 53 45 52 54 29 0a 20 20 20 20 2a 20 20 20 20 20 .DB_AUTOQUERY_INSERT).....*.....
cd60 20 20 20 20 20 20 77 69 6c 6c 20 72 65 74 75 72 6e 20 74 68 65 20 73 74 72 69 6e 67 20 3a 20 49 ......will.return.the.string.:.I
cd80 4e 53 45 52 54 20 49 4e 54 4f 20 74 61 62 6c 65 5f 73 71 6c 20 28 66 69 65 6c 64 31 2c 66 69 65 NSERT.INTO.table_sql.(field1,fie
cda0 6c 64 32 2c 66 69 65 6c 64 33 29 20 56 41 4c 55 45 53 20 28 3f 2c 3f 2c 3f 29 0a 20 20 20 20 2a ld2,field3).VALUES.(?,?,?).....*
cdc0 20 4e 42 20 3a 20 2d 20 54 68 69 73 20 62 65 6c 6f 6e 67 73 20 6d 6f 72 65 20 74 6f 20 61 20 53 .NB.:.-.This.belongs.more.to.a.S
cde0 51 4c 20 42 75 69 6c 64 65 72 20 63 6c 61 73 73 2c 20 62 75 74 20 74 68 69 73 20 69 73 20 61 20 QL.Builder.class,.but.this.is.a.
ce00 73 69 6d 70 6c 65 20 66 61 63 69 6c 69 74 79 0a 20 20 20 20 2a 20 20 20 20 20 20 2d 20 42 65 20 simple.facility.....*......-.Be.
ce20 63 61 72 65 66 75 6c 6c 20 21 20 49 66 20 79 6f 75 20 64 6f 6e 27 74 20 67 69 76 65 20 61 20 24 carefull.!.If.you.don't.give.a.$
ce40 77 68 65 72 65 20 70 61 72 61 6d 20 77 69 74 68 20 61 6e 20 55 50 44 41 54 45 20 71 75 65 72 79 where.param.with.an.UPDATE.query
ce60 2c 20 61 6c 6c 0a 20 20 20 20 2a 20 20 20 20 20 20 20 20 74 68 65 20 72 65 63 6f 72 64 73 20 6f ,.all.....*........the.records.o
ce80 66 20 74 68 65 20 74 61 62 6c 65 20 77 69 6c 6c 20 62 65 20 75 70 64 61 74 65 64 20 21 0a 20 20 f.the.table.will.be.updated.!...
cea0 20 20 2a 0a 20 20 20 20 2a 20 40 70 61 72 61 6d 20 73 74 72 69 6e 67 20 24 74 61 62 6c 65 20 6e ..*.....*.@param.string.$table.n
cec0 61 6d 65 20 6f 66 20 74 68 65 20 74 61 62 6c 65 0a 20 20 20 20 2a 20 40 70 61 72 61 6d 20 61 72 ame.of.the.table.....*.@param.ar
cee0 72 61 79 20 24 74 61 62 6c 65 5f 66 69 65 6c 64 73 20 6f 72 64 65 72 65 64 20 61 72 72 61 79 20 ray.$table_fields.ordered.array.
cf00 63 6f 6e 74 61 69 6e 69 6e 67 20 74 68 65 20 66 69 65 6c 64 73 20 6e 61 6d 65 73 0a 20 20 20 20 containing.the.fields.names.....
cf20 2a 20 40 70 61 72 61 6d 20 69 6e 74 20 24 6d 6f 64 65 20 74 79 70 65 20 6f 66 20 71 75 65 72 79 *.@param.int.$mode.type.of.query
cf40 20 74 6f 20 6d 61 6b 65 20 28 44 42 5f 41 55 54 4f 51 55 45 52 59 5f 49 4e 53 45 52 54 20 6f 72 .to.make.(DB_AUTOQUERY_INSERT.or
cf60 20 44 42 5f 41 55 54 4f 51 55 45 52 59 5f 55 50 44 41 54 45 29 0a 20 20 20 20 2a 20 40 70 61 72 .DB_AUTOQUERY_UPDATE).....*.@par
cf80 61 6d 20 73 74 72 69 6e 67 20 24 77 68 65 72 65 20 69 6e 20 63 61 73 65 20 6f 66 20 75 70 64 61 am.string.$where.in.case.of.upda
cfa0 74 65 20 71 75 65 72 69 65 73 2c 20 74 68 69 73 20 73 74 72 69 6e 67 20 77 69 6c 6c 20 62 65 20 te.queries,.this.string.will.be.
cfc0 70 75 74 20 61 66 74 65 72 20 74 68 65 20 73 71 6c 20 57 48 45 52 45 20 73 74 61 74 65 6d 65 6e put.after.the.sql.WHERE.statemen
cfe0 74 0a 20 20 20 20 2a 20 40 72 65 74 75 72 6e 20 73 74 72 69 6e 67 20 73 71 6c 20 71 75 65 72 79 t.....*.@return.string.sql.query
d000 20 66 6f 72 20 70 72 65 70 61 72 65 28 29 0a 20 20 20 20 2a 20 40 61 63 63 65 73 73 20 70 75 62 .for.prepare().....*.@access.pub
d020 6c 69 63 0a 20 20 20 20 2a 2f 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 62 75 69 6c 64 4d 61 6e lic.....*/.....function.buildMan
d040 69 70 53 51 4c 28 24 74 61 62 6c 65 2c 20 24 74 61 62 6c 65 5f 66 69 65 6c 64 73 2c 20 24 6d 6f ipSQL($table,.$table_fields,.$mo
d060 64 65 2c 20 24 77 68 65 72 65 20 3d 20 66 61 6c 73 65 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 de,.$where.=.false).....{.......
d080 20 20 69 66 20 28 63 6f 75 6e 74 28 24 74 61 62 6c 65 5f 66 69 65 6c 64 73 29 20 3d 3d 20 30 29 ..if.(count($table_fields).==.0)
d0a0 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 72 61 69 73 65 45 72 72 6f 72 .{.............$this->raiseError
d0c0 28 44 42 5f 45 52 52 4f 52 5f 4e 45 45 44 5f 4d 4f 52 45 5f 44 41 54 41 29 3b 0a 20 20 20 20 20 (DB_ERROR_NEED_MORE_DATA);......
d0e0 20 20 20 7d 0a 20 20 20 20 20 20 20 20 24 66 69 72 73 74 20 3d 20 74 72 75 65 3b 0a 20 20 20 20 ...}.........$first.=.true;.....
d100 20 20 20 20 73 77 69 74 63 68 20 28 24 6d 6f 64 65 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 ....switch.($mode).{............
d120 20 63 61 73 65 20 44 42 5f 41 55 54 4f 51 55 45 52 59 5f 49 4e 53 45 52 54 3a 0a 20 20 20 20 20 .case.DB_AUTOQUERY_INSERT:......
d140 20 20 20 20 20 20 20 20 20 20 20 24 76 61 6c 75 65 73 20 3d 20 27 27 3b 0a 20 20 20 20 20 20 20 ...........$values.=.'';........
d160 20 20 20 20 20 20 20 20 20 24 6e 61 6d 65 73 20 3d 20 27 27 3b 0a 20 20 20 20 20 20 20 20 20 20 .........$names.=.'';...........
d180 20 20 20 20 20 20 77 68 69 6c 65 20 28 6c 69 73 74 28 2c 20 24 76 61 6c 75 65 29 20 3d 20 65 61 ......while.(list(,.$value).=.ea
d1a0 63 68 28 24 74 61 62 6c 65 5f 66 69 65 6c 64 73 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 ch($table_fields)).{............
d1c0 20 20 20 20 20 20 20 20 20 69 66 20 28 24 66 69 72 73 74 29 20 7b 0a 20 20 20 20 20 20 20 20 20 .........if.($first).{..........
d1e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 66 69 72 73 74 20 3d 20 66 61 6c 73 65 3b 0a 20 ...............$first.=.false;..
d200 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 ...................}.else.{.....
d220 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 6e 61 6d 65 73 20 2e 3d 20 27 2c ....................$names..=.',
d240 27 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 76 61 6c 75 ';.........................$valu
d260 65 73 20 2e 3d 20 27 2c 27 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d es..=.',';.....................}
d280 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 6e 61 6d 65 73 20 2e 3d 20 24 .....................$names..=.$
d2a0 76 61 6c 75 65 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 76 61 6c 75 value;.....................$valu
d2c0 65 73 20 2e 3d 20 27 3f 27 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 es..=.'?';.................}....
d2e0 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 22 49 4e 53 45 52 54 20 49 4e 54 4f .............return."INSERT.INTO
d300 20 24 74 61 62 6c 65 20 28 24 6e 61 6d 65 73 29 20 56 41 4c 55 45 53 20 28 24 76 61 6c 75 65 73 .$table.($names).VALUES.($values
d320 29 22 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 72 65 61 6b 3b 0a 20 20 20 20 20 )";.................break;......
d340 20 20 20 20 20 20 20 63 61 73 65 20 44 42 5f 41 55 54 4f 51 55 45 52 59 5f 55 50 44 41 54 45 3a .......case.DB_AUTOQUERY_UPDATE:
d360 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 73 65 74 20 3d 20 27 27 3b 0a 20 20 20 20 .................$set.=.'';.....
d380 20 20 20 20 20 20 20 20 20 20 20 20 77 68 69 6c 65 20 28 6c 69 73 74 28 2c 20 24 76 61 6c 75 65 ............while.(list(,.$value
d3a0 29 20 3d 20 65 61 63 68 28 24 74 61 62 6c 65 5f 66 69 65 6c 64 73 29 29 20 7b 0a 20 20 20 20 20 ).=.each($table_fields)).{......
d3c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 24 66 69 72 73 74 29 20 7b 0a 20 20 20 ...............if.($first).{....
d3e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 66 69 72 73 74 20 3d 20 66 61 .....................$first.=.fa
d400 6c 73 65 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 lse;.....................}.else.
d420 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 73 65 74 20 2e {.........................$set..
d440 3d 20 27 2c 27 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 =.',';.....................}....
d460 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 73 65 74 20 2e 3d 20 22 24 76 61 6c 75 65 .................$set..=."$value
d480 20 3d 20 3f 22 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 .=.?";.................}........
d4a0 20 20 20 20 20 20 20 20 20 24 73 71 6c 20 3d 20 22 55 50 44 41 54 45 20 24 74 61 62 6c 65 20 53 .........$sql.=."UPDATE.$table.S
d4c0 45 54 20 24 73 65 74 22 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 24 77 ET.$set";.................if.($w
d4e0 68 65 72 65 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 73 71 6c here).{.....................$sql
d500 20 2e 3d 20 22 20 57 48 45 52 45 20 24 77 68 65 72 65 22 3b 0a 20 20 20 20 20 20 20 20 20 20 20 ..=.".WHERE.$where";............
d520 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 73 .....}.................return.$s
d540 71 6c 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 72 65 61 6b 3b 0a 20 20 20 20 20 ql;.................break;......
d560 20 20 20 20 20 20 20 64 65 66 61 75 6c 74 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .......default:.................
d580 24 74 68 69 73 2d 3e 72 61 69 73 65 45 72 72 6f 72 28 44 42 5f 45 52 52 4f 52 5f 53 59 4e 54 41 $this->raiseError(DB_ERROR_SYNTA
d5a0 58 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a X);.........}.....}......//.}}}.
d5c0 20 20 20 20 2f 2f 20 7b 7b 7b 20 65 78 65 63 75 74 65 28 29 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 ....//.{{{.execute()...../**....
d5e0 20 2a 20 45 78 65 63 75 74 65 73 20 61 20 70 72 65 70 61 72 65 64 20 53 51 4c 20 71 75 65 72 79 .*.Executes.a.prepared.SQL.query
d600 0a 20 20 20 20 2a 20 57 69 74 68 20 65 78 65 63 75 74 65 28 29 20 74 68 65 20 67 65 6e 65 72 69 .....*.With.execute().the.generi
d620 63 20 71 75 65 72 79 20 6f 66 20 70 72 65 70 61 72 65 20 69 73 0a 20 20 20 20 2a 20 61 73 73 69 c.query.of.prepare.is.....*.assi
d640 67 6e 65 64 20 77 69 74 68 20 74 68 65 20 67 69 76 65 6e 20 64 61 74 61 20 61 72 72 61 79 2e 20 gned.with.the.given.data.array..
d660 54 68 65 20 76 61 6c 75 65 73 0a 20 20 20 20 2a 20 6f 66 20 74 68 65 20 61 72 72 61 79 20 69 6e The.values.....*.of.the.array.in
d680 73 65 72 74 65 64 20 69 6e 74 6f 20 74 68 65 20 71 75 65 72 79 20 69 6e 20 74 68 65 20 73 61 6d serted.into.the.query.in.the.sam
d6a0 65 0a 20 20 20 20 2a 20 6f 72 64 65 72 20 6c 69 6b 65 20 74 68 65 20 61 72 72 61 79 20 6f 72 64 e.....*.order.like.the.array.ord
d6c0 65 72 0a 20 20 20 20 2a 0a 20 20 20 20 2a 20 40 70 61 72 61 6d 20 72 65 73 6f 75 72 63 65 20 24 er.....*.....*.@param.resource.$
d6e0 73 74 6d 74 20 71 75 65 72 79 20 68 61 6e 64 6c 65 20 66 72 6f 6d 20 70 72 65 70 61 72 65 28 29 stmt.query.handle.from.prepare()
d700 0a 20 20 20 20 2a 20 40 70 61 72 61 6d 20 61 72 72 61 79 20 20 20 20 24 64 61 74 61 20 6e 75 6d .....*.@param.array....$data.num
d720 65 72 69 63 20 61 72 72 61 79 20 63 6f 6e 74 61 69 6e 69 6e 67 20 74 68 65 0a 20 20 20 20 2a 20 eric.array.containing.the.....*.
d740 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 64 61 74 61 20 74 6f 20 69 6e ......................data.to.in
d760 73 65 72 74 20 69 6e 74 6f 20 74 68 65 20 71 75 65 72 79 0a 20 20 20 20 2a 0a 20 20 20 20 2a 20 sert.into.the.query.....*.....*.
d780 40 72 65 74 75 72 6e 20 6d 69 78 65 64 20 20 61 20 6e 65 77 20 44 42 5f 52 65 73 75 6c 74 20 6f @return.mixed..a.new.DB_Result.o
d7a0 72 20 61 20 44 42 5f 45 72 72 6f 72 20 77 68 65 6e 20 66 61 69 6c 0a 20 20 20 20 2a 0a 20 20 20 r.a.DB_Error.when.fail.....*....
d7c0 20 2a 20 40 61 63 63 65 73 73 20 70 75 62 6c 69 63 0a 20 20 20 20 2a 20 40 73 65 65 20 70 72 65 .*.@access.public.....*.@see.pre
d7e0 70 61 72 65 28 29 0a 20 20 20 20 2a 2f 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 26 65 78 65 63 pare().....*/.....function.&exec
d800 75 74 65 28 24 73 74 6d 74 2c 20 24 64 61 74 61 20 3d 20 66 61 6c 73 65 29 0a 20 20 20 20 7b 0a ute($stmt,.$data.=.false).....{.
d820 20 20 20 20 20 20 20 20 24 72 65 61 6c 71 75 65 72 79 20 3d 20 24 74 68 69 73 2d 3e 65 78 65 63 ........$realquery.=.$this->exec
d840 75 74 65 45 6d 75 6c 61 74 65 51 75 65 72 79 28 24 73 74 6d 74 2c 20 24 64 61 74 61 29 3b 0a 20 uteEmulateQuery($stmt,.$data);..
d860 20 20 20 20 20 20 20 69 66 20 28 44 42 3a 3a 69 73 45 72 72 6f 72 28 24 72 65 61 6c 71 75 65 72 .......if.(DB::isError($realquer
d880 79 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 72 65 61 6c 71 75 y)).{.............return.$realqu
d8a0 65 72 79 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 24 72 65 73 75 6c 74 20 3d ery;.........}.........$result.=
d8c0 20 24 74 68 69 73 2d 3e 73 69 6d 70 6c 65 51 75 65 72 79 28 24 72 65 61 6c 71 75 65 72 79 29 3b .$this->simpleQuery($realquery);
d8e0 0a 0a 20 20 20 20 20 20 20 20 69 66 20 28 44 42 3a 3a 69 73 45 72 72 6f 72 28 24 72 65 73 75 6c ..........if.(DB::isError($resul
d900 74 29 20 7c 7c 20 24 72 65 73 75 6c 74 20 3d 3d 3d 20 44 42 5f 4f 4b 29 20 7b 0a 20 20 20 20 20 t).||.$result.===.DB_OK).{......
d920 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 72 65 73 75 6c 74 3b 0a 20 20 20 20 20 20 20 20 7d .......return.$result;.........}
d940 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 6e 65 77 20 44 .else.{.............return.new.D
d960 42 5f 72 65 73 75 6c 74 28 24 74 68 69 73 2c 20 24 72 65 73 75 6c 74 29 3b 0a 20 20 20 20 20 20 B_result($this,.$result);.......
d980 20 20 7d 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b ..}.....}......//.}}}.....//.{{{
d9a0 20 65 78 65 63 75 74 65 45 6d 75 6c 61 74 65 51 75 65 72 79 28 29 0a 0a 20 20 20 20 2f 2a 2a 0a .executeEmulateQuery()....../**.
d9c0 20 20 20 20 2a 20 45 6d 75 6c 61 74 65 73 20 74 68 65 20 65 78 65 63 75 74 65 20 73 74 61 74 65 ....*.Emulates.the.execute.state
d9e0 6d 65 6e 74 2c 20 77 68 65 6e 20 6e 6f 74 20 73 75 70 70 6f 72 74 65 64 0a 20 20 20 20 2a 0a 20 ment,.when.not.supported.....*..
da00 20 20 20 2a 20 40 70 61 72 61 6d 20 72 65 73 6f 75 72 63 65 20 24 73 74 6d 74 20 71 75 65 72 79 ...*.@param.resource.$stmt.query
da20 20 68 61 6e 64 6c 65 20 66 72 6f 6d 20 70 72 65 70 61 72 65 28 29 0a 20 20 20 20 2a 20 40 70 61 .handle.from.prepare().....*.@pa
da40 72 61 6d 20 61 72 72 61 79 20 20 20 20 24 64 61 74 61 20 6e 75 6d 65 72 69 63 20 61 72 72 61 79 ram.array....$data.numeric.array
da60 20 63 6f 6e 74 61 69 6e 69 6e 67 20 74 68 65 0a 20 20 20 20 2a 20 20 20 20 20 20 20 20 20 20 20 .containing.the.....*...........
da80 20 20 20 20 20 20 20 20 20 20 20 20 64 61 74 61 20 74 6f 20 69 6e 73 65 72 74 20 69 6e 74 6f 20 ............data.to.insert.into.
daa0 74 68 65 20 71 75 65 72 79 0a 20 20 20 20 2a 0a 20 20 20 20 2a 20 40 72 65 74 75 72 6e 20 6d 69 the.query.....*.....*.@return.mi
dac0 78 65 64 20 61 20 73 74 72 69 6e 67 20 63 6f 6e 74 61 69 6e 69 6e 67 20 74 68 65 20 72 65 61 6c xed.a.string.containing.the.real
dae0 20 71 75 65 72 79 20 72 75 6e 20 77 68 65 6e 20 65 6d 75 6c 61 74 69 6e 67 0a 20 20 20 20 2a 20 .query.run.when.emulating.....*.
db00 70 72 65 70 61 72 65 2f 65 78 65 63 75 74 65 2e 20 20 41 20 44 42 20 65 72 72 6f 72 20 63 6f 64 prepare/execute...A.DB.error.cod
db20 65 20 69 73 20 72 65 74 75 72 6e 65 64 20 6f 6e 20 66 61 69 6c 75 72 65 2e 0a 20 20 20 20 2a 0a e.is.returned.on.failure......*.
db40 20 20 20 20 2a 20 40 61 63 63 65 73 73 20 70 72 69 76 61 74 65 0a 20 20 20 20 2a 20 40 73 65 65 ....*.@access.private.....*.@see
db60 20 65 78 65 63 75 74 65 28 29 0a 20 20 20 20 2a 2f 0a 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 .execute().....*/......function.
db80 65 78 65 63 75 74 65 45 6d 75 6c 61 74 65 51 75 65 72 79 28 24 73 74 6d 74 2c 20 24 64 61 74 61 executeEmulateQuery($stmt,.$data
dba0 20 3d 20 66 61 6c 73 65 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 24 70 20 3d 20 26 24 74 .=.false).....{.........$p.=.&$t
dbc0 68 69 73 2d 3e 70 72 65 70 61 72 65 5f 74 6f 6b 65 6e 73 3b 0a 0a 20 20 20 20 20 20 20 20 69 66 his->prepare_tokens;..........if
dbe0 20 28 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 70 72 65 70 61 72 65 5f 74 6f 6b 65 6e 73 5b 24 .(!isset($this->prepare_tokens[$
dc00 73 74 6d 74 5d 29 20 7c 7c 0a 20 20 20 20 20 20 20 20 20 20 20 20 21 69 73 5f 61 72 72 61 79 28 stmt]).||.............!is_array(
dc20 24 74 68 69 73 2d 3e 70 72 65 70 61 72 65 5f 74 6f 6b 65 6e 73 5b 24 73 74 6d 74 5d 29 20 7c 7c $this->prepare_tokens[$stmt]).||
dc40 0a 20 20 20 20 20 20 20 20 20 20 20 20 21 73 69 7a 65 6f 66 28 24 74 68 69 73 2d 3e 70 72 65 70 .............!sizeof($this->prep
dc60 61 72 65 5f 74 6f 6b 65 6e 73 5b 24 73 74 6d 74 5d 29 29 0a 20 20 20 20 20 20 20 20 7b 0a 20 20 are_tokens[$stmt])).........{...
dc80 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 61 69 73 65 45 72 72 ..........return.$this->raiseErr
dca0 6f 72 28 44 42 5f 45 52 52 4f 52 5f 49 4e 56 41 4c 49 44 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a or(DB_ERROR_INVALID);.........}.
dcc0 0a 20 20 20 20 20 20 20 20 24 71 71 20 3d 20 26 24 74 68 69 73 2d 3e 70 72 65 70 61 72 65 5f 74 .........$qq.=.&$this->prepare_t
dce0 6f 6b 65 6e 73 5b 24 73 74 6d 74 5d 3b 0a 20 20 20 20 20 20 20 20 24 71 70 20 3d 20 73 69 7a 65 okens[$stmt];.........$qp.=.size
dd00 6f 66 28 24 71 71 29 20 2d 20 31 3b 0a 0a 20 20 20 20 20 20 20 20 69 66 20 28 28 21 24 64 61 74 of($qq).-.1;..........if.((!$dat
dd20 61 20 26 26 20 24 71 70 20 3e 20 30 29 20 7c 7c 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 21 69 a.&&.$qp.>.0).||.............(!i
dd40 73 5f 61 72 72 61 79 28 24 64 61 74 61 29 20 26 26 20 24 71 70 20 3e 20 31 29 20 7c 7c 0a 20 20 s_array($data).&&.$qp.>.1).||...
dd60 20 20 20 20 20 20 20 20 20 20 28 69 73 5f 61 72 72 61 79 28 24 64 61 74 61 29 20 26 26 20 24 71 ..........(is_array($data).&&.$q
dd80 70 20 3e 20 73 69 7a 65 6f 66 28 24 64 61 74 61 29 29 29 0a 20 20 20 20 20 20 20 20 7b 0a 20 20 p.>.sizeof($data))).........{...
dda0 20 20 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 6c 61 73 74 5f 71 75 65 72 79 20 3d 20 24 74 ..........$this->last_query.=.$t
ddc0 68 69 73 2d 3e 70 72 65 70 61 72 65 64 5f 71 75 65 72 69 65 73 5b 24 73 74 6d 74 5d 3b 0a 20 20 his->prepared_queries[$stmt];...
dde0 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 61 69 73 65 45 72 72 ..........return.$this->raiseErr
de00 6f 72 28 44 42 5f 45 52 52 4f 52 5f 4e 45 45 44 5f 4d 4f 52 45 5f 44 41 54 41 29 3b 0a 20 20 20 or(DB_ERROR_NEED_MORE_DATA);....
de20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 24 72 65 61 6c 71 75 65 72 79 20 3d 20 24 71 71 .....}..........$realquery.=.$qq
de40 5b 30 5d 3b 0a 20 20 20 20 20 20 20 20 66 6f 72 20 28 24 69 20 3d 20 30 3b 20 24 69 20 3c 20 24 [0];.........for.($i.=.0;.$i.<.$
de60 71 70 3b 20 24 69 2b 2b 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 74 79 70 65 20 3d 20 qp;.$i++).{.............$type.=.
de80 24 74 68 69 73 2d 3e 70 72 65 70 61 72 65 5f 74 79 70 65 73 5b 24 73 74 6d 74 5d 5b 24 69 5d 3b $this->prepare_types[$stmt][$i];
dea0 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 24 74 79 70 65 20 3d 3d 20 44 42 5f 50 41 52 .............if.($type.==.DB_PAR
dec0 41 4d 5f 4f 50 41 51 55 45 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 AM_OPAQUE).{.................if.
dee0 28 69 73 5f 61 72 72 61 79 28 24 64 61 74 61 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 (is_array($data)).{.............
df00 20 20 20 20 20 20 20 20 24 66 70 20 3d 20 66 6f 70 65 6e 28 24 64 61 74 61 5b 24 69 5d 2c 20 27 ........$fp.=.fopen($data[$i],.'
df20 72 27 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20 r');.................}.else.{...
df40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 66 70 20 3d 20 66 6f 70 65 6e 28 24 64 ..................$fp.=.fopen($d
df60 61 74 61 2c 20 27 72 27 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 ata,.'r');.................}....
df80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 70 64 61 74 61 20 3d 20 27 27 3b 0a 0a 20 20 20 20 ..............$pdata.=.'';......
dfa0 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 24 66 70 29 20 7b 0a 20 20 20 20 20 20 20 20 20 ............if.($fp).{..........
dfc0 20 20 20 20 20 20 20 20 20 20 20 77 68 69 6c 65 20 28 28 24 62 75 66 20 3d 20 66 72 65 61 64 28 ...........while.(($buf.=.fread(
dfe0 24 66 70 2c 20 34 30 39 36 29 29 20 21 3d 20 66 61 6c 73 65 29 20 7b 0a 20 20 20 20 20 20 20 20 $fp,.4096)).!=.false).{.........
e000 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 70 64 61 74 61 20 2e 3d 20 24 62 75 66 3b 0a ................$pdata..=.$buf;.
e020 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 20 ....................}...........
e040 20 20 20 20 20 20 20 20 20 20 66 63 6c 6f 73 65 28 24 66 70 29 3b 0a 20 20 20 20 20 20 20 20 20 ..........fclose($fp);..........
e060 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20 .......}.............}.else.{...
e080 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 69 73 5f 61 72 72 61 79 28 24 64 61 74 61 ..............if.(is_array($data
e0a0 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 70 64 61 74 61 20 )).{.....................$pdata.
e0c0 3d 20 26 24 64 61 74 61 5b 24 69 5d 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 20 =.&$data[$i];.................}.
e0e0 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 70 64 61 74 else.{.....................$pdat
e100 61 20 3d 20 26 24 64 61 74 61 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 a.=.&$data;.................}...
e120 20 20 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 72 65 61 6c 71 75 ..........}..............$realqu
e140 65 72 79 20 2e 3d 20 28 24 74 79 70 65 20 21 3d 20 44 42 5f 50 41 52 41 4d 5f 4d 49 53 43 29 20 ery..=.($type.!=.DB_PARAM_MISC).
e160 3f 20 24 74 68 69 73 2d 3e 71 75 6f 74 65 28 24 70 64 61 74 61 29 20 3a 20 24 70 64 61 74 61 3b ?.$this->quote($pdata).:.$pdata;
e180 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 72 65 61 6c 71 75 65 72 79 20 2e 3d 20 24 71 71 5b 24 .............$realquery..=.$qq[$
e1a0 69 20 2b 20 31 5d 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 i.+.1];.........}..........retur
e1c0 6e 20 24 72 65 61 6c 71 75 65 72 79 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a n.$realquery;.....}......//.}}}.
e1e0 20 20 20 20 2f 2f 20 7b 7b 7b 20 65 78 65 63 75 74 65 4d 75 6c 74 69 70 6c 65 28 29 0a 0a 20 20 ....//.{{{.executeMultiple()....
e200 20 20 2f 2a 2a 0a 20 20 20 20 2a 20 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 64 6f 65 73 20 73 ../**.....*.This.function.does.s
e220 65 76 65 72 61 6c 20 65 78 65 63 75 74 65 28 29 20 63 61 6c 6c 73 20 6f 6e 20 74 68 65 20 73 61 everal.execute().calls.on.the.sa
e240 6d 65 0a 20 20 20 20 2a 20 73 74 61 74 65 6d 65 6e 74 20 68 61 6e 64 6c 65 2e 20 20 24 64 61 74 me.....*.statement.handle...$dat
e260 61 20 6d 75 73 74 20 62 65 20 61 6e 20 61 72 72 61 79 20 69 6e 64 65 78 65 64 20 6e 75 6d 65 72 a.must.be.an.array.indexed.numer
e280 69 63 61 6c 6c 79 0a 20 20 20 20 2a 20 66 72 6f 6d 20 30 2c 20 6f 6e 65 20 65 78 65 63 75 74 65 ically.....*.from.0,.one.execute
e2a0 20 63 61 6c 6c 20 69 73 20 64 6f 6e 65 20 66 6f 72 20 65 76 65 72 79 20 22 72 6f 77 22 20 69 6e .call.is.done.for.every."row".in
e2c0 20 74 68 65 20 61 72 72 61 79 2e 0a 20 20 20 20 2a 0a 20 20 20 20 2a 20 49 66 20 61 6e 20 65 72 .the.array......*.....*.If.an.er
e2e0 72 6f 72 20 6f 63 63 75 72 73 20 64 75 72 69 6e 67 20 65 78 65 63 75 74 65 28 29 2c 20 65 78 65 ror.occurs.during.execute(),.exe
e300 63 75 74 65 4d 75 6c 74 69 70 6c 65 28 29 20 64 6f 65 73 20 6e 6f 74 0a 20 20 20 20 2a 20 65 78 cuteMultiple().does.not.....*.ex
e320 65 63 75 74 65 20 74 68 65 20 75 6e 66 69 6e 69 73 68 65 64 20 72 6f 77 73 2c 20 62 75 74 20 72 ecute.the.unfinished.rows,.but.r
e340 61 74 68 65 72 20 72 65 74 75 72 6e 73 20 74 68 61 74 20 65 72 72 6f 72 2e 0a 20 20 20 20 2a 0a ather.returns.that.error......*.
e360 20 20 20 20 2a 20 40 70 61 72 61 6d 20 72 65 73 6f 75 72 63 65 20 24 73 74 6d 74 20 71 75 65 72 ....*.@param.resource.$stmt.quer
e380 79 20 68 61 6e 64 6c 65 20 66 72 6f 6d 20 70 72 65 70 61 72 65 28 29 0a 20 20 20 20 2a 20 40 70 y.handle.from.prepare().....*.@p
e3a0 61 72 61 6d 20 61 72 72 61 79 20 20 20 20 24 64 61 74 61 20 6e 75 6d 65 72 69 63 20 61 72 72 61 aram.array....$data.numeric.arra
e3c0 79 20 63 6f 6e 74 61 69 6e 69 6e 67 20 74 68 65 0a 20 20 20 20 2a 20 20 20 20 20 20 20 20 20 20 y.containing.the.....*..........
e3e0 20 20 20 20 20 20 20 20 20 20 20 20 20 64 61 74 61 20 74 6f 20 69 6e 73 65 72 74 20 69 6e 74 6f .............data.to.insert.into
e400 20 74 68 65 20 71 75 65 72 79 0a 20 20 20 20 2a 0a 20 20 20 20 2a 20 40 72 65 74 75 72 6e 20 6d .the.query.....*.....*.@return.m
e420 69 78 65 64 20 44 42 5f 4f 4b 20 6f 72 20 44 42 5f 45 72 72 6f 72 0a 20 20 20 20 2a 0a 20 20 20 ixed.DB_OK.or.DB_Error.....*....
e440 20 2a 20 40 61 63 63 65 73 73 20 70 75 62 6c 69 63 0a 20 20 20 20 2a 20 40 73 65 65 20 70 72 65 .*.@access.public.....*.@see.pre
e460 70 61 72 65 28 29 2c 20 65 78 65 63 75 74 65 28 29 0a 20 20 20 20 2a 2f 0a 0a 20 20 20 20 66 75 pare(),.execute().....*/......fu
e480 6e 63 74 69 6f 6e 20 65 78 65 63 75 74 65 4d 75 6c 74 69 70 6c 65 28 20 24 73 74 6d 74 2c 20 26 nction.executeMultiple(.$stmt,.&
e4a0 24 64 61 74 61 20 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 66 6f 72 28 24 69 20 3d 20 30 $data.).....{.........for($i.=.0
e4c0 3b 20 24 69 20 3c 20 73 69 7a 65 6f 66 28 20 24 64 61 74 61 20 29 3b 20 24 69 2b 2b 29 20 7b 0a ;.$i.<.sizeof(.$data.);.$i++).{.
e4e0 20 20 20 20 20 20 20 20 20 20 20 20 24 72 65 73 20 3d 20 24 74 68 69 73 2d 3e 65 78 65 63 75 74 ............$res.=.$this->execut
e500 65 28 24 73 74 6d 74 2c 20 24 64 61 74 61 5b 24 69 5d 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 e($stmt,.$data[$i]);............
e520 20 69 66 20 28 44 42 3a 3a 69 73 45 72 72 6f 72 28 24 72 65 73 29 29 20 7b 0a 20 20 20 20 20 20 .if.(DB::isError($res)).{.......
e540 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 72 65 73 3b 0a 20 20 20 20 20 20 20 20 20 ..........return.$res;..........
e560 20 20 20 7d 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 44 42 ...}.........}.........return.DB
e580 5f 4f 4b 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b _OK;.....}......//.}}}.....//.{{
e5a0 7b 20 66 72 65 65 50 72 65 70 61 72 65 64 28 29 0a 0a 20 20 20 20 2f 2a 0a 20 20 20 20 2a 20 46 {.freePrepared()....../*.....*.F
e5c0 72 65 65 20 74 68 65 20 72 65 73 6f 75 72 63 65 20 75 73 65 64 20 69 6e 20 61 20 70 72 65 70 61 ree.the.resource.used.in.a.prepa
e5e0 72 65 64 20 71 75 65 72 79 0a 20 20 20 20 2a 0a 20 20 20 20 2a 20 40 70 61 72 61 6d 20 24 73 74 red.query.....*.....*.@param.$st
e600 6d 74 20 54 68 65 20 72 65 73 75 72 63 65 20 72 65 74 75 72 6e 65 64 20 62 79 20 74 68 65 20 70 mt.The.resurce.returned.by.the.p
e620 72 65 70 61 72 65 28 29 20 66 75 6e 63 74 69 6f 6e 0a 20 20 20 20 2a 20 40 73 65 65 20 70 72 65 repare().function.....*.@see.pre
e640 70 61 72 65 28 29 0a 20 20 20 20 2a 2f 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 66 72 65 65 50 pare().....*/.....function.freeP
e660 72 65 70 61 72 65 64 28 24 73 74 6d 74 29 0a 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 20 2f 2f repared($stmt).....{..........//
e680 20 46 72 65 65 20 74 68 65 20 69 6e 74 65 72 6e 61 6c 20 70 72 65 70 61 72 65 64 20 76 61 72 73 .Free.the.internal.prepared.vars
e6a0 0d 0a 20 20 20 20 20 20 20 20 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 70 72 65 70 61 ..........if.(isset($this->prepa
e6c0 72 65 5f 74 6f 6b 65 6e 73 5b 24 73 74 6d 74 5d 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 re_tokens[$stmt])).{............
e6e0 20 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 70 72 65 70 61 72 65 5f 74 6f 6b 65 6e 73 5b 24 73 74 .unset($this->prepare_tokens[$st
e700 6d 74 5d 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 70 mt]);.............unset($this->p
e720 72 65 70 61 72 65 5f 74 79 70 65 73 5b 24 73 74 6d 74 5d 29 3b 0a 20 20 20 20 20 20 20 20 20 20 repare_types[$stmt]);...........
e740 20 20 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 70 72 65 70 61 72 65 64 5f 71 75 65 72 69 65 73 5b ..unset($this->prepared_queries[
e760 24 73 74 6d 74 5d 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 74 72 75 $stmt]);..............return.tru
e780 65 3b 0d 0a 20 20 20 20 20 20 20 20 7d 0d 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 66 61 e;..........}..........return.fa
e7a0 6c 73 65 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b lse;.....}......//.}}}.....//.{{
e7c0 7b 20 6d 6f 64 69 66 79 51 75 65 72 79 28 29 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 {.modifyQuery()....../**......*.
e7e0 54 68 69 73 20 6d 65 74 68 6f 64 20 69 73 20 75 73 65 64 20 62 79 20 62 61 63 6b 65 6e 64 73 20 This.method.is.used.by.backends.
e800 74 6f 20 61 6c 74 65 72 20 71 75 65 72 69 65 73 20 66 6f 72 20 76 61 72 69 6f 75 73 0a 20 20 20 to.alter.queries.for.various....
e820 20 20 2a 20 72 65 61 73 6f 6e 73 2e 20 20 49 74 20 69 73 20 64 65 66 69 6e 65 64 20 68 65 72 65 ..*.reasons...It.is.defined.here
e840 20 74 6f 20 61 73 73 75 72 65 20 74 68 61 74 20 61 6c 6c 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 .to.assure.that.all.implementati
e860 6f 6e 73 0a 20 20 20 20 20 2a 20 68 61 76 65 20 74 68 69 73 20 6d 65 74 68 6f 64 20 64 65 66 69 ons......*.have.this.method.defi
e880 6e 65 64 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 73 74 72 69 6e 67 ned.......*......*.@param.string
e8a0 20 24 71 75 65 72 79 20 20 71 75 65 72 79 20 74 6f 20 6d 6f 64 69 66 79 0a 20 20 20 20 20 2a 0a .$query..query.to.modify......*.
e8c0 20 20 20 20 20 2a 20 40 72 65 74 75 72 6e 20 74 68 65 20 6e 65 77 20 28 6d 6f 64 69 66 69 65 64 .....*.@return.the.new.(modified
e8e0 29 20 71 75 65 72 79 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 61 63 63 65 73 73 20 70 72 ).query......*......*.@access.pr
e900 69 76 61 74 65 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 6d 6f 64 69 66 ivate......*/.....function.modif
e920 79 51 75 65 72 79 28 24 71 75 65 72 79 29 20 7b 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 yQuery($query).{.........return.
e940 24 71 75 65 72 79 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f $query;.....}......//.}}}.....//
e960 20 7b 7b 7b 20 6d 6f 64 69 66 79 4c 69 6d 69 74 51 75 65 72 79 28 29 0a 20 20 20 20 2f 2a 2a 0a .{{{.modifyLimitQuery()...../**.
e980 20 20 20 20 2a 20 54 68 69 73 20 6d 65 74 68 6f 64 20 69 73 20 75 73 65 64 20 62 79 20 62 61 63 ....*.This.method.is.used.by.bac
e9a0 6b 65 6e 64 73 20 74 6f 20 61 6c 74 65 72 20 6c 69 6d 69 74 65 64 20 71 75 65 72 69 65 73 0a 20 kends.to.alter.limited.queries..
e9c0 20 20 20 2a 0a 20 20 20 20 2a 20 40 70 61 72 61 6d 20 73 74 72 69 6e 67 20 20 24 71 75 65 72 79 ...*.....*.@param.string..$query
e9e0 20 71 75 65 72 79 20 74 6f 20 6d 6f 64 69 66 79 0a 20 20 20 20 2a 20 40 70 61 72 61 6d 20 69 6e .query.to.modify.....*.@param.in
ea00 74 65 67 65 72 20 24 66 72 6f 6d 20 20 74 68 65 20 72 6f 77 20 74 6f 20 73 74 61 72 74 20 74 6f teger.$from..the.row.to.start.to
ea20 20 66 65 74 63 68 69 6e 67 0a 20 20 20 20 2a 20 40 70 61 72 61 6d 20 69 6e 74 65 67 65 72 20 24 .fetching.....*.@param.integer.$
ea40 63 6f 75 6e 74 20 74 68 65 20 6e 75 6d 62 65 72 73 20 6f 66 20 72 6f 77 73 20 74 6f 20 66 65 74 count.the.numbers.of.rows.to.fet
ea60 63 68 0a 20 20 20 20 2a 0a 20 20 20 20 2a 20 40 72 65 74 75 72 6e 20 74 68 65 20 6e 65 77 20 28 ch.....*.....*.@return.the.new.(
ea80 6d 6f 64 69 66 69 65 64 29 20 71 75 65 72 79 0a 20 20 20 20 2a 0a 20 20 20 20 2a 20 40 61 63 63 modified).query.....*.....*.@acc
eaa0 65 73 73 20 70 72 69 76 61 74 65 0a 20 20 20 20 2a 2f 0a 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e ess.private.....*/......function
eac0 20 6d 6f 64 69 66 79 4c 69 6d 69 74 51 75 65 72 79 28 24 71 75 65 72 79 2c 20 24 66 72 6f 6d 2c .modifyLimitQuery($query,.$from,
eae0 20 24 63 6f 75 6e 74 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 71 .$count).....{.........return.$q
eb00 75 65 72 79 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b uery;.....}......//.}}}.....//.{
eb20 7b 7b 20 71 75 65 72 79 28 29 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 53 65 6e 64 20 {{.query()....../**......*.Send.
eb40 61 20 71 75 65 72 79 20 74 6f 20 74 68 65 20 64 61 74 61 62 61 73 65 20 61 6e 64 20 72 65 74 75 a.query.to.the.database.and.retu
eb60 72 6e 20 61 6e 79 20 72 65 73 75 6c 74 73 20 77 69 74 68 20 61 0a 20 20 20 20 20 2a 20 44 42 5f rn.any.results.with.a......*.DB_
eb80 72 65 73 75 6c 74 20 6f 62 6a 65 63 74 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 61 63 result.object.......*......*.@ac
eba0 63 65 73 73 20 70 75 62 6c 69 63 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d cess.public......*......*.@param
ebc0 20 73 74 72 69 6e 67 20 24 71 75 65 72 79 20 20 74 68 65 20 53 51 4c 20 71 75 65 72 79 20 6f 72 .string.$query..the.SQL.query.or
ebe0 20 74 68 65 20 73 74 61 74 65 6d 65 6e 74 20 74 6f 20 70 72 65 70 61 72 65 0a 20 20 20 20 20 2a .the.statement.to.prepare......*
ec00 20 40 70 61 72 61 6d 20 73 74 72 69 6e 67 20 24 70 61 72 61 6d 73 20 74 68 65 20 64 61 74 61 20 .@param.string.$params.the.data.
ec20 74 6f 20 62 65 20 61 64 64 65 64 20 74 6f 20 74 68 65 20 71 75 65 72 79 0a 20 20 20 20 20 2a 20 to.be.added.to.the.query......*.
ec40 40 72 65 74 75 72 6e 20 6d 69 78 65 64 20 61 20 44 42 5f 72 65 73 75 6c 74 20 6f 62 6a 65 63 74 @return.mixed.a.DB_result.object
ec60 20 6f 72 20 44 42 5f 4f 4b 20 6f 6e 20 73 75 63 63 65 73 73 2c 20 61 20 44 42 0a 20 20 20 20 20 .or.DB_OK.on.success,.a.DB......
ec80 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 72 72 6f 72 20 6f 6e 20 66 61 69 6c 75 72 *................error.on.failur
eca0 65 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 73 65 65 20 44 42 3a 3a 69 73 45 72 72 6f 72 e......*......*.@see.DB::isError
ecc0 0a 20 20 20 20 20 2a 20 40 73 65 65 20 44 42 5f 63 6f 6d 6d 6f 6e 3a 3a 70 72 65 70 61 72 65 0a ......*.@see.DB_common::prepare.
ece0 20 20 20 20 20 2a 20 40 73 65 65 20 44 42 5f 63 6f 6d 6d 6f 6e 3a 3a 65 78 65 63 75 74 65 0a 20 .....*.@see.DB_common::execute..
ed00 20 20 20 20 2a 2f 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 26 71 75 65 72 79 28 24 71 75 65 72 ....*/.....function.&query($quer
ed20 79 2c 20 24 70 61 72 61 6d 73 20 3d 20 61 72 72 61 79 28 29 29 20 7b 0a 20 20 20 20 20 20 20 20 y,.$params.=.array()).{.........
ed40 69 66 20 28 73 69 7a 65 6f 66 28 24 70 61 72 61 6d 73 29 20 3e 20 30 29 20 7b 0a 20 20 20 20 20 if.(sizeof($params).>.0).{......
ed60 20 20 20 20 20 20 20 24 73 74 68 20 3d 20 24 74 68 69 73 2d 3e 70 72 65 70 61 72 65 28 24 71 75 .......$sth.=.$this->prepare($qu
ed80 65 72 79 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 44 42 3a 3a 69 73 45 72 72 6f ery);.............if.(DB::isErro
eda0 72 28 24 73 74 68 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 r($sth)).{.................retur
edc0 6e 20 24 73 74 68 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 20 n.$sth;.............}...........
ede0 20 20 24 72 65 74 20 3d 20 24 74 68 69 73 2d 3e 65 78 65 63 75 74 65 28 24 73 74 68 2c 20 24 70 ..$ret.=.$this->execute($sth,.$p
ee00 61 72 61 6d 73 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 66 72 65 65 50 arams);.............$this->freeP
ee20 72 65 70 61 72 65 64 28 24 73 74 68 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 repared($sth);.............retur
ee40 6e 20 24 72 65 74 3b 0a 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 n.$ret;.........}.else.{........
ee60 20 20 20 20 20 24 72 65 73 75 6c 74 20 3d 20 24 74 68 69 73 2d 3e 73 69 6d 70 6c 65 51 75 65 72 .....$result.=.$this->simpleQuer
ee80 79 28 24 71 75 65 72 79 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 44 42 3a 3a 69 y($query);.............if.(DB::i
eea0 73 45 72 72 6f 72 28 24 72 65 73 75 6c 74 29 20 7c 7c 20 24 72 65 73 75 6c 74 20 3d 3d 3d 20 44 sError($result).||.$result.===.D
eec0 42 5f 4f 4b 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 B_OK).{.................return.$
eee0 72 65 73 75 6c 74 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20 20 result;.............}.else.{....
ef00 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 6e 65 77 20 44 42 5f 72 65 73 75 6c .............return.new.DB_resul
ef20 74 28 24 74 68 69 73 2c 20 24 72 65 73 75 6c 74 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d t($this,.$result);.............}
ef40 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 .........}.....}......//.}}}....
ef60 20 2f 2f 20 7b 7b 7b 20 6c 69 6d 69 74 51 75 65 72 79 28 29 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 .//.{{{.limitQuery()...../**....
ef80 20 2a 20 47 65 6e 65 72 61 74 65 73 20 61 20 6c 69 6d 69 74 65 64 20 71 75 65 72 79 0a 20 20 20 .*.Generates.a.limited.query....
efa0 20 2a 0a 20 20 20 20 2a 20 40 70 61 72 61 6d 20 73 74 72 69 6e 67 20 20 24 71 75 65 72 79 20 71 .*.....*.@param.string..$query.q
efc0 75 65 72 79 0a 20 20 20 20 2a 20 40 70 61 72 61 6d 20 69 6e 74 65 67 65 72 20 24 66 72 6f 6d 20 uery.....*.@param.integer.$from.
efe0 20 74 68 65 20 72 6f 77 20 74 6f 20 73 74 61 72 74 20 74 6f 20 66 65 74 63 68 69 6e 67 0a 20 20 .the.row.to.start.to.fetching...
f000 20 20 2a 20 40 70 61 72 61 6d 20 69 6e 74 65 67 65 72 20 24 63 6f 75 6e 74 20 74 68 65 20 6e 75 ..*.@param.integer.$count.the.nu
f020 6d 62 65 72 73 20 6f 66 20 72 6f 77 73 20 74 6f 20 66 65 74 63 68 0a 20 20 20 20 2a 20 40 70 61 mbers.of.rows.to.fetch.....*.@pa
f040 72 61 6d 20 61 72 72 61 79 20 20 20 24 70 61 72 61 6d 73 20 72 65 71 75 69 72 65 64 20 66 6f 72 ram.array...$params.required.for
f060 20 61 20 73 74 61 74 65 6d 65 6e 74 0a 20 20 20 20 2a 0a 20 20 20 20 2a 20 40 72 65 74 75 72 6e .a.statement.....*.....*.@return
f080 20 6d 69 78 65 64 20 61 20 44 42 5f 52 65 73 75 6c 74 20 6f 62 6a 65 63 74 2c 20 44 42 5f 4f 4b .mixed.a.DB_Result.object,.DB_OK
f0a0 20 6f 72 20 61 20 44 42 5f 45 72 72 6f 72 0a 20 20 20 20 2a 0a 20 20 20 20 2a 20 40 61 63 63 65 .or.a.DB_Error.....*.....*.@acce
f0c0 73 73 20 70 75 62 6c 69 63 0a 20 20 20 20 2a 2f 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 26 6c ss.public.....*/.....function.&l
f0e0 69 6d 69 74 51 75 65 72 79 28 24 71 75 65 72 79 2c 20 24 66 72 6f 6d 2c 20 24 63 6f 75 6e 74 2c imitQuery($query,.$from,.$count,
f100 20 24 70 61 72 61 6d 73 20 3d 20 61 72 72 61 79 28 29 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 .$params.=.array()).....{.......
f120 20 20 24 71 75 65 72 79 20 20 3d 20 24 74 68 69 73 2d 3e 6d 6f 64 69 66 79 4c 69 6d 69 74 51 75 ..$query..=.$this->modifyLimitQu
f140 65 72 79 28 24 71 75 65 72 79 2c 20 24 66 72 6f 6d 2c 20 24 63 6f 75 6e 74 29 3b 0a 20 20 20 20 ery($query,.$from,.$count);.....
f160 20 20 20 20 24 72 65 73 75 6c 74 20 3d 20 24 74 68 69 73 2d 3e 71 75 65 72 79 28 24 71 75 65 72 ....$result.=.$this->query($quer
f180 79 2c 20 24 70 61 72 61 6d 73 29 3b 0a 20 20 20 20 20 20 20 20 69 66 20 28 67 65 74 5f 63 6c 61 y,.$params);.........if.(get_cla
f1a0 73 73 28 24 72 65 73 75 6c 74 29 20 3d 3d 20 27 64 62 5f 72 65 73 75 6c 74 27 29 20 7b 0a 20 20 ss($result).==.'db_result').{...
f1c0 20 20 20 20 20 20 20 20 20 20 24 72 65 73 75 6c 74 2d 3e 73 65 74 4f 70 74 69 6f 6e 28 27 6c 69 ..........$result->setOption('li
f1e0 6d 69 74 5f 66 72 6f 6d 27 2c 20 24 66 72 6f 6d 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 mit_from',.$from);.............$
f200 72 65 73 75 6c 74 2d 3e 73 65 74 4f 70 74 69 6f 6e 28 27 6c 69 6d 69 74 5f 63 6f 75 6e 74 27 2c result->setOption('limit_count',
f220 20 24 63 6f 75 6e 74 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 72 65 74 75 .$count);.........}.........retu
f240 72 6e 20 24 72 65 73 75 6c 74 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 rn.$result;.....}......//.}}}...
f260 20 20 2f 2f 20 7b 7b 7b 20 67 65 74 4f 6e 65 28 29 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 ..//.{{{.getOne()....../**......
f280 2a 20 46 65 74 63 68 20 74 68 65 20 66 69 72 73 74 20 63 6f 6c 75 6d 6e 20 6f 66 20 74 68 65 20 *.Fetch.the.first.column.of.the.
f2a0 66 69 72 73 74 20 72 6f 77 20 6f 66 20 64 61 74 61 20 72 65 74 75 72 6e 65 64 20 66 72 6f 6d 0a first.row.of.data.returned.from.
f2c0 20 20 20 20 20 2a 20 61 20 71 75 65 72 79 2e 20 20 54 61 6b 65 73 20 63 61 72 65 20 6f 66 20 64 .....*.a.query...Takes.care.of.d
f2e0 6f 69 6e 67 20 74 68 65 20 71 75 65 72 79 20 61 6e 64 20 66 72 65 65 69 6e 67 20 74 68 65 20 72 oing.the.query.and.freeing.the.r
f300 65 73 75 6c 74 73 0a 20 20 20 20 20 2a 20 77 68 65 6e 20 66 69 6e 69 73 68 65 64 2e 0a 20 20 20 esults......*.when.finished.....
f320 20 20 2a 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 73 74 72 69 6e 67 20 24 71 75 65 72 79 20 ..*......*.@param.string.$query.
f340 74 68 65 20 53 51 4c 20 71 75 65 72 79 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 61 72 72 61 the.SQL.query......*.@param.arra
f360 79 20 24 70 61 72 61 6d 73 20 69 66 20 73 75 70 70 6c 69 65 64 2c 20 70 72 65 70 61 72 65 2f 65 y.$params.if.supplied,.prepare/e
f380 78 65 63 75 74 65 20 77 69 6c 6c 20 62 65 20 75 73 65 64 0a 20 20 20 20 20 2a 20 20 20 20 20 20 xecute.will.be.used......*......
f3a0 20 20 77 69 74 68 20 74 68 69 73 20 61 72 72 61 79 20 61 73 20 65 78 65 63 75 74 65 20 70 61 72 ..with.this.array.as.execute.par
f3c0 61 6d 65 74 65 72 73 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 72 65 74 75 72 6e 20 6d 69 ameters......*......*.@return.mi
f3e0 78 65 64 20 44 42 5f 45 72 72 6f 72 20 6f 72 20 74 68 65 20 72 65 74 75 72 6e 65 64 20 76 61 6c xed.DB_Error.or.the.returned.val
f400 75 65 20 6f 66 20 74 68 65 20 71 75 65 72 79 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 61 ue.of.the.query......*......*.@a
f420 63 63 65 73 73 20 70 75 62 6c 69 63 0a 20 20 20 20 20 2a 2f 0a 0a 20 20 20 20 66 75 6e 63 74 69 ccess.public......*/......functi
f440 6f 6e 20 26 67 65 74 4f 6e 65 28 24 71 75 65 72 79 2c 20 24 70 61 72 61 6d 73 20 3d 20 61 72 72 on.&getOne($query,.$params.=.arr
f460 61 79 28 29 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 73 65 74 74 79 70 65 28 24 70 61 72 ay()).....{.........settype($par
f480 61 6d 73 2c 20 22 61 72 72 61 79 22 29 3b 0a 20 20 20 20 20 20 20 20 69 66 20 28 73 69 7a 65 6f ams,."array");.........if.(sizeo
f4a0 66 28 24 70 61 72 61 6d 73 29 20 3e 20 30 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 73 f($params).>.0).{.............$s
f4c0 74 68 20 3d 20 24 74 68 69 73 2d 3e 70 72 65 70 61 72 65 28 24 71 75 65 72 79 29 3b 0a 20 20 20 th.=.$this->prepare($query);....
f4e0 20 20 20 20 20 20 20 20 20 69 66 20 28 44 42 3a 3a 69 73 45 72 72 6f 72 28 24 73 74 68 29 29 20 .........if.(DB::isError($sth)).
f500 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 73 74 68 3b 0a 20 {.................return.$sth;..
f520 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 72 65 73 20 3d 20 ...........}.............$res.=.
f540 24 74 68 69 73 2d 3e 65 78 65 63 75 74 65 28 24 73 74 68 2c 20 24 70 61 72 61 6d 73 29 3b 0a 20 $this->execute($sth,.$params);..
f560 20 20 20 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 66 72 65 65 50 72 65 70 61 72 65 64 28 24 ...........$this->freePrepared($
f580 73 74 68 29 3b 0a 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 20 20 sth);.........}.else.{..........
f5a0 20 20 20 24 72 65 73 20 3d 20 24 74 68 69 73 2d 3e 71 75 65 72 79 28 24 71 75 65 72 79 29 3b 0a ...$res.=.$this->query($query);.
f5c0 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 69 66 20 28 44 42 3a 3a 69 73 45 72 72 ........}..........if.(DB::isErr
f5e0 6f 72 28 24 72 65 73 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 or($res)).{.............return.$
f600 72 65 73 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 24 65 72 72 20 3d 20 24 res;.........}..........$err.=.$
f620 72 65 73 2d 3e 66 65 74 63 68 49 6e 74 6f 28 24 72 6f 77 2c 20 44 42 5f 46 45 54 43 48 4d 4f 44 res->fetchInto($row,.DB_FETCHMOD
f640 45 5f 4f 52 44 45 52 45 44 29 3b 0a 0a 20 20 20 20 20 20 20 20 24 72 65 73 2d 3e 66 72 65 65 28 E_ORDERED);..........$res->free(
f660 29 3b 0a 0a 20 20 20 20 20 20 20 20 69 66 20 28 24 65 72 72 20 21 3d 3d 20 44 42 5f 4f 4b 29 20 );..........if.($err.!==.DB_OK).
f680 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 65 72 72 3b 0a 20 20 20 20 20 {.............return.$err;......
f6a0 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 72 6f 77 5b 30 5d 3b 0a 20 20 ...}..........return.$row[0];...
f6c0 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 67 65 74 52 6f ..}......//.}}}.....//.{{{.getRo
f6e0 77 28 29 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 46 65 74 63 68 20 74 68 65 20 66 69 w()....../**......*.Fetch.the.fi
f700 72 73 74 20 72 6f 77 20 6f 66 20 64 61 74 61 20 72 65 74 75 72 6e 65 64 20 66 72 6f 6d 20 61 20 rst.row.of.data.returned.from.a.
f720 71 75 65 72 79 2e 20 20 54 61 6b 65 73 20 63 61 72 65 0a 20 20 20 20 20 2a 20 6f 66 20 64 6f 69 query...Takes.care......*.of.doi
f740 6e 67 20 74 68 65 20 71 75 65 72 79 20 61 6e 64 20 66 72 65 65 69 6e 67 20 74 68 65 20 72 65 73 ng.the.query.and.freeing.the.res
f760 75 6c 74 73 20 77 68 65 6e 20 66 69 6e 69 73 68 65 64 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 ults.when.finished.......*......
f780 2a 20 40 70 61 72 61 6d 20 73 74 72 69 6e 67 20 24 71 75 65 72 79 20 74 68 65 20 53 51 4c 20 71 *.@param.string.$query.the.SQL.q
f7a0 75 65 72 79 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 69 6e 74 65 67 65 72 20 24 66 65 74 63 uery......*.@param.integer.$fetc
f7c0 68 6d 6f 64 65 20 74 68 65 20 66 65 74 63 68 20 6d 6f 64 65 20 74 6f 20 75 73 65 0a 20 20 20 20 hmode.the.fetch.mode.to.use.....
f7e0 20 2a 20 40 70 61 72 61 6d 20 61 72 72 61 79 20 24 70 61 72 61 6d 73 20 61 72 72 61 79 20 69 66 .*.@param.array.$params.array.if
f800 20 73 75 70 70 6c 69 65 64 2c 20 70 72 65 70 61 72 65 2f 65 78 65 63 75 74 65 20 77 69 6c 6c 20 .supplied,.prepare/execute.will.
f820 62 65 20 75 73 65 64 0a 20 20 20 20 20 2a 20 20 20 20 20 20 20 20 77 69 74 68 20 74 68 69 73 20 be.used......*........with.this.
f840 61 72 72 61 79 20 61 73 20 65 78 65 63 75 74 65 20 70 61 72 61 6d 65 74 65 72 73 0a 20 20 20 20 array.as.execute.parameters.....
f860 20 2a 20 40 61 63 63 65 73 73 20 70 75 62 6c 69 63 0a 20 20 20 20 20 2a 20 40 72 65 74 75 72 6e .*.@access.public......*.@return
f880 20 61 72 72 61 79 20 74 68 65 20 66 69 72 73 74 20 72 6f 77 20 6f 66 20 72 65 73 75 6c 74 73 20 .array.the.first.row.of.results.
f8a0 61 73 20 61 6e 20 61 72 72 61 79 20 69 6e 64 65 78 65 64 20 66 72 6f 6d 0a 20 20 20 20 20 2a 20 as.an.array.indexed.from......*.
f8c0 30 2c 20 6f 72 20 61 20 44 42 20 65 72 72 6f 72 20 63 6f 64 65 2e 0a 20 20 20 20 20 2a 2f 0a 0a 0,.or.a.DB.error.code.......*/..
f8e0 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 26 67 65 74 52 6f 77 28 24 71 75 65 72 79 2c 0a 20 20 20 ....function.&getRow($query,....
f900 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 70 61 72 61 6d 73 20 3d 20 6e 75 6c 6c ..................$params.=.null
f920 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 66 65 74 63 68 6d 6f 64 ,......................$fetchmod
f940 65 20 3d 20 44 42 5f 46 45 54 43 48 4d 4f 44 45 5f 44 45 46 41 55 4c 54 29 0a 20 20 20 20 7b 0a e.=.DB_FETCHMODE_DEFAULT).....{.
f960 20 20 20 20 20 20 20 20 2f 2f 20 63 6f 6d 70 61 74 20 63 68 65 63 6b 2c 20 74 68 65 20 70 61 72 ........//.compat.check,.the.par
f980 61 6d 73 20 61 6e 64 20 66 65 74 63 68 6d 6f 64 65 20 70 61 72 61 6d 65 74 65 72 73 20 75 73 65 ams.and.fetchmode.parameters.use
f9a0 64 20 74 6f 0a 20 20 20 20 20 20 20 20 2f 2f 20 68 61 76 65 20 74 68 65 20 6f 70 70 6f 73 69 74 d.to.........//.have.the.opposit
f9c0 65 20 6f 72 64 65 72 0a 20 20 20 20 20 20 20 20 69 66 20 28 21 69 73 5f 61 72 72 61 79 28 24 70 e.order.........if.(!is_array($p
f9e0 61 72 61 6d 73 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 69 73 5f 61 72 72 arams)).{.............if.(is_arr
fa00 61 79 28 24 66 65 74 63 68 6d 6f 64 65 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ay($fetchmode)).{...............
fa20 20 20 24 74 6d 70 20 3d 20 24 70 61 72 61 6d 73 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..$tmp.=.$params;...............
fa40 20 20 24 70 61 72 61 6d 73 20 3d 20 24 66 65 74 63 68 6d 6f 64 65 3b 0a 20 20 20 20 20 20 20 20 ..$params.=.$fetchmode;.........
fa60 20 20 20 20 20 20 20 20 24 66 65 74 63 68 6d 6f 64 65 20 3d 20 24 74 6d 70 3b 0a 20 20 20 20 20 ........$fetchmode.=.$tmp;......
fa80 20 20 20 20 20 20 20 7d 20 65 6c 73 65 69 66 20 28 24 70 61 72 61 6d 73 20 21 3d 3d 20 6e 75 6c .......}.elseif.($params.!==.nul
faa0 6c 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 66 65 74 63 68 6d 6f 64 65 20 l).{.................$fetchmode.
fac0 3d 20 24 70 61 72 61 6d 73 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 70 61 72 61 =.$params;.................$para
fae0 6d 73 20 3d 20 6e 75 6c 6c 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 ms.=.null;.............}........
fb00 20 7d 0a 20 20 20 20 20 20 20 20 24 70 61 72 61 6d 73 20 3d 20 28 65 6d 70 74 79 28 24 70 61 72 .}.........$params.=.(empty($par
fb20 61 6d 73 29 29 20 3f 20 61 72 72 61 79 28 29 20 3a 20 24 70 61 72 61 6d 73 3b 0a 20 20 20 20 20 ams)).?.array().:.$params;......
fb40 20 20 20 24 66 65 74 63 68 6d 6f 64 65 20 3d 20 28 65 6d 70 74 79 28 24 66 65 74 63 68 6d 6f 64 ...$fetchmode.=.(empty($fetchmod
fb60 65 29 29 20 3f 20 44 42 5f 46 45 54 43 48 4d 4f 44 45 5f 44 45 46 41 55 4c 54 20 3a 20 24 66 65 e)).?.DB_FETCHMODE_DEFAULT.:.$fe
fb80 74 63 68 6d 6f 64 65 3b 0a 20 20 20 20 20 20 20 20 73 65 74 74 79 70 65 28 24 70 61 72 61 6d 73 tchmode;.........settype($params
fba0 2c 20 27 61 72 72 61 79 27 29 3b 0a 20 20 20 20 20 20 20 20 69 66 20 28 73 69 7a 65 6f 66 28 24 ,.'array');.........if.(sizeof($
fbc0 70 61 72 61 6d 73 29 20 3e 20 30 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 73 74 68 20 params).>.0).{.............$sth.
fbe0 3d 20 24 74 68 69 73 2d 3e 70 72 65 70 61 72 65 28 24 71 75 65 72 79 29 3b 0a 20 20 20 20 20 20 =.$this->prepare($query);.......
fc00 20 20 20 20 20 20 69 66 20 28 44 42 3a 3a 69 73 45 72 72 6f 72 28 24 73 74 68 29 29 20 7b 0a 20 ......if.(DB::isError($sth)).{..
fc20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 73 74 68 3b 0a 20 20 20 20 ...............return.$sth;.....
fc40 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 72 65 73 20 3d 20 24 74 68 ........}.............$res.=.$th
fc60 69 73 2d 3e 65 78 65 63 75 74 65 28 24 73 74 68 2c 20 24 70 61 72 61 6d 73 29 3b 0a 20 20 20 20 is->execute($sth,.$params);.....
fc80 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 66 72 65 65 50 72 65 70 61 72 65 64 28 24 73 74 68 ........$this->freePrepared($sth
fca0 29 3b 0a 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 );.........}.else.{.............
fcc0 24 72 65 73 20 3d 20 24 74 68 69 73 2d 3e 71 75 65 72 79 28 24 71 75 65 72 79 29 3b 0a 20 20 20 $res.=.$this->query($query);....
fce0 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 69 66 20 28 44 42 3a 3a 69 73 45 72 72 6f 72 28 .....}..........if.(DB::isError(
fd00 24 72 65 73 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 72 65 73 $res)).{.............return.$res
fd20 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 24 65 72 72 20 3d 20 24 72 65 73 ;.........}..........$err.=.$res
fd40 2d 3e 66 65 74 63 68 49 6e 74 6f 28 24 72 6f 77 2c 20 24 66 65 74 63 68 6d 6f 64 65 29 3b 0a 0a ->fetchInto($row,.$fetchmode);..
fd60 20 20 20 20 20 20 20 20 24 72 65 73 2d 3e 66 72 65 65 28 29 3b 0a 0a 20 20 20 20 20 20 20 20 69 ........$res->free();..........i
fd80 66 20 28 24 65 72 72 20 21 3d 3d 20 44 42 5f 4f 4b 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 f.($err.!==.DB_OK).{............
fda0 20 72 65 74 75 72 6e 20 24 65 72 72 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 .return.$err;.........}.........
fdc0 20 72 65 74 75 72 6e 20 24 72 6f 77 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a .return.$row;.....}......//.}}}.
fde0 20 20 20 20 2f 2f 20 7b 7b 7b 20 67 65 74 43 6f 6c 28 29 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 ....//.{{{.getCol()....../**....
fe00 20 20 2a 20 46 65 74 63 68 20 61 20 73 69 6e 67 6c 65 20 63 6f 6c 75 6d 6e 20 66 72 6f 6d 20 61 ..*.Fetch.a.single.column.from.a
fe20 20 72 65 73 75 6c 74 20 73 65 74 20 61 6e 64 20 72 65 74 75 72 6e 20 69 74 20 61 73 20 61 6e 0a .result.set.and.return.it.as.an.
fe40 20 20 20 20 20 2a 20 69 6e 64 65 78 65 64 20 61 72 72 61 79 2e 0a 20 20 20 20 20 2a 0a 20 20 20 .....*.indexed.array.......*....
fe60 20 20 2a 20 40 70 61 72 61 6d 20 73 74 72 69 6e 67 20 24 71 75 65 72 79 20 74 68 65 20 53 51 4c ..*.@param.string.$query.the.SQL
fe80 20 71 75 65 72 79 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 6d 69 78 65 .query......*......*.@param.mixe
fea0 64 20 24 63 6f 6c 20 77 68 69 63 68 20 63 6f 6c 75 6d 6e 20 74 6f 20 72 65 74 75 72 6e 20 28 69 d.$col.which.column.to.return.(i
fec0 6e 74 65 67 65 72 20 5b 63 6f 6c 75 6d 6e 20 6e 75 6d 62 65 72 2c 0a 20 20 20 20 20 2a 20 73 74 nteger.[column.number,......*.st
fee0 61 72 74 69 6e 67 20 61 74 20 30 5d 20 6f 72 20 73 74 72 69 6e 67 20 5b 63 6f 6c 75 6d 6e 20 6e arting.at.0].or.string.[column.n
ff00 61 6d 65 5d 29 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 61 72 72 61 79 ame])......*......*.@param.array
ff20 20 24 70 61 72 61 6d 73 20 61 72 72 61 79 20 69 66 20 73 75 70 70 6c 69 65 64 2c 20 70 72 65 70 .$params.array.if.supplied,.prep
ff40 61 72 65 2f 65 78 65 63 75 74 65 20 77 69 6c 6c 20 62 65 20 75 73 65 64 0a 20 20 20 20 20 2a 20 are/execute.will.be.used......*.
ff60 20 20 20 20 20 20 20 77 69 74 68 20 74 68 69 73 20 61 72 72 61 79 20 61 73 20 65 78 65 63 75 74 .......with.this.array.as.execut
ff80 65 20 70 61 72 61 6d 65 74 65 72 73 0a 20 20 20 20 20 2a 20 40 61 63 63 65 73 73 20 70 75 62 6c e.parameters......*.@access.publ
ffa0 69 63 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 72 65 74 75 72 6e 20 61 72 72 61 79 20 61 ic......*......*.@return.array.a
ffc0 6e 20 69 6e 64 65 78 65 64 20 61 72 72 61 79 20 77 69 74 68 20 74 68 65 20 64 61 74 61 20 66 72 n.indexed.array.with.the.data.fr
ffe0 6f 6d 20 74 68 65 20 66 69 72 73 74 0a 20 20 20 20 20 2a 20 72 6f 77 20 61 74 20 69 6e 64 65 78 om.the.first......*.row.at.index
10000 20 30 2c 20 6f 72 20 61 20 44 42 20 65 72 72 6f 72 20 63 6f 64 65 2e 0a 20 20 20 20 20 2a 2f 0a .0,.or.a.DB.error.code.......*/.
10020 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 26 67 65 74 43 6f 6c 28 24 71 75 65 72 79 2c 20 24 63 .....function.&getCol($query,.$c
10040 6f 6c 20 3d 20 30 2c 20 24 70 61 72 61 6d 73 20 3d 20 61 72 72 61 79 28 29 29 0a 20 20 20 20 7b ol.=.0,.$params.=.array()).....{
10060 0a 20 20 20 20 20 20 20 20 73 65 74 74 79 70 65 28 24 70 61 72 61 6d 73 2c 20 22 61 72 72 61 79 .........settype($params,."array
10080 22 29 3b 0a 20 20 20 20 20 20 20 20 69 66 20 28 73 69 7a 65 6f 66 28 24 70 61 72 61 6d 73 29 20 ");.........if.(sizeof($params).
100a0 3e 20 30 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 73 74 68 20 3d 20 24 74 68 69 73 2d >.0).{.............$sth.=.$this-
100c0 3e 70 72 65 70 61 72 65 28 24 71 75 65 72 79 29 3b 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 >prepare($query);..............i
100e0 66 20 28 44 42 3a 3a 69 73 45 72 72 6f 72 28 24 73 74 68 29 29 20 7b 0a 20 20 20 20 20 20 20 20 f.(DB::isError($sth)).{.........
10100 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 73 74 68 3b 0a 20 20 20 20 20 20 20 20 20 20 20 ........return.$sth;............
10120 20 7d 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 72 65 73 20 3d 20 24 74 68 69 73 2d 3e 65 78 .}..............$res.=.$this->ex
10140 65 63 75 74 65 28 24 73 74 68 2c 20 24 70 61 72 61 6d 73 29 3b 0a 20 20 20 20 20 20 20 20 20 20 ecute($sth,.$params);...........
10160 20 20 24 74 68 69 73 2d 3e 66 72 65 65 50 72 65 70 61 72 65 64 28 24 73 74 68 29 3b 0a 20 20 20 ..$this->freePrepared($sth);....
10180 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 72 65 73 20 3d .....}.else.{.............$res.=
101a0 20 24 74 68 69 73 2d 3e 71 75 65 72 79 28 24 71 75 65 72 79 29 3b 0a 20 20 20 20 20 20 20 20 7d .$this->query($query);.........}
101c0 0a 0a 20 20 20 20 20 20 20 20 69 66 20 28 44 42 3a 3a 69 73 45 72 72 6f 72 28 24 72 65 73 29 29 ..........if.(DB::isError($res))
101e0 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 72 65 73 3b 0a 20 20 20 20 .{.............return.$res;.....
10200 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 24 66 65 74 63 68 6d 6f 64 65 20 3d 20 69 73 5f 69 ....}..........$fetchmode.=.is_i
10220 6e 74 28 24 63 6f 6c 29 20 3f 20 44 42 5f 46 45 54 43 48 4d 4f 44 45 5f 4f 52 44 45 52 45 44 20 nt($col).?.DB_FETCHMODE_ORDERED.
10240 3a 20 44 42 5f 46 45 54 43 48 4d 4f 44 45 5f 41 53 53 4f 43 3b 0a 20 20 20 20 20 20 20 20 24 72 :.DB_FETCHMODE_ASSOC;.........$r
10260 65 74 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 20 20 20 20 20 20 20 20 77 68 69 6c 65 20 28 69 73 et.=.array();..........while.(is
10280 5f 61 72 72 61 79 28 24 72 6f 77 20 3d 20 24 72 65 73 2d 3e 66 65 74 63 68 52 6f 77 28 24 66 65 _array($row.=.$res->fetchRow($fe
102a0 74 63 68 6d 6f 64 65 29 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 72 65 74 5b 5d 20 tchmode))).{.............$ret[].
102c0 3d 20 24 72 6f 77 5b 24 63 6f 6c 5d 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 =.$row[$col];.........}.........
102e0 20 24 72 65 73 2d 3e 66 72 65 65 28 29 3b 0a 0a 20 20 20 20 20 20 20 20 69 66 20 28 44 42 3a 3a .$res->free();..........if.(DB::
10300 69 73 45 72 72 6f 72 28 24 72 6f 77 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 72 65 isError($row)).{.............$re
10320 74 20 3d 20 24 72 6f 77 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 72 65 74 t.=.$row;.........}..........ret
10340 75 72 6e 20 24 72 65 74 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 urn.$ret;.....}......//.}}}.....
10360 2f 2f 20 7b 7b 7b 20 67 65 74 41 73 73 6f 63 28 29 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 //.{{{.getAssoc()....../**......
10380 2a 20 46 65 74 63 68 20 74 68 65 20 65 6e 74 69 72 65 20 72 65 73 75 6c 74 20 73 65 74 20 6f 66 *.Fetch.the.entire.result.set.of
103a0 20 61 20 71 75 65 72 79 20 61 6e 64 20 72 65 74 75 72 6e 20 69 74 20 61 73 20 61 6e 0a 20 20 20 .a.query.and.return.it.as.an....
103c0 20 20 2a 20 61 73 73 6f 63 69 61 74 69 76 65 20 61 72 72 61 79 20 75 73 69 6e 67 20 74 68 65 20 ..*.associative.array.using.the.
103e0 66 69 72 73 74 20 63 6f 6c 75 6d 6e 20 61 73 20 74 68 65 20 6b 65 79 2e 0a 20 20 20 20 20 2a 0a first.column.as.the.key.......*.
10400 20 20 20 20 20 2a 20 49 66 20 74 68 65 20 72 65 73 75 6c 74 20 73 65 74 20 63 6f 6e 74 61 69 6e .....*.If.the.result.set.contain
10420 73 20 6d 6f 72 65 20 74 68 61 6e 20 74 77 6f 20 63 6f 6c 75 6d 6e 73 2c 20 74 68 65 20 76 61 6c s.more.than.two.columns,.the.val
10440 75 65 0a 20 20 20 20 20 2a 20 77 69 6c 6c 20 62 65 20 61 6e 20 61 72 72 61 79 20 6f 66 20 74 68 ue......*.will.be.an.array.of.th
10460 65 20 76 61 6c 75 65 73 20 66 72 6f 6d 20 63 6f 6c 75 6d 6e 20 32 2d 6e 2e 20 20 49 66 20 74 68 e.values.from.column.2-n...If.th
10480 65 20 72 65 73 75 6c 74 0a 20 20 20 20 20 2a 20 73 65 74 20 63 6f 6e 74 61 69 6e 73 20 6f 6e 6c e.result......*.set.contains.onl
104a0 79 20 74 77 6f 20 63 6f 6c 75 6d 6e 73 2c 20 74 68 65 20 72 65 74 75 72 6e 65 64 20 76 61 6c 75 y.two.columns,.the.returned.valu
104c0 65 20 77 69 6c 6c 20 62 65 20 61 0a 20 20 20 20 20 2a 20 73 63 61 6c 61 72 20 77 69 74 68 20 74 e.will.be.a......*.scalar.with.t
104e0 68 65 20 76 61 6c 75 65 20 6f 66 20 74 68 65 20 73 65 63 6f 6e 64 20 63 6f 6c 75 6d 6e 20 28 75 he.value.of.the.second.column.(u
10500 6e 6c 65 73 73 20 66 6f 72 63 65 64 20 74 6f 20 61 6e 0a 20 20 20 20 20 2a 20 61 72 72 61 79 20 nless.forced.to.an......*.array.
10520 77 69 74 68 20 74 68 65 20 24 66 6f 72 63 65 5f 61 72 72 61 79 20 70 61 72 61 6d 65 74 65 72 29 with.the.$force_array.parameter)
10540 2e 20 20 41 20 44 42 20 65 72 72 6f 72 20 63 6f 64 65 20 69 73 0a 20 20 20 20 20 2a 20 72 65 74 ...A.DB.error.code.is......*.ret
10560 75 72 6e 65 64 20 6f 6e 20 65 72 72 6f 72 73 2e 20 20 49 66 20 74 68 65 20 72 65 73 75 6c 74 20 urned.on.errors...If.the.result.
10580 73 65 74 20 63 6f 6e 74 61 69 6e 73 20 66 65 77 65 72 20 74 68 61 6e 20 74 77 6f 0a 20 20 20 20 set.contains.fewer.than.two.....
105a0 20 2a 20 63 6f 6c 75 6d 6e 73 2c 20 61 20 44 42 5f 45 52 52 4f 52 5f 54 52 55 4e 43 41 54 45 44 .*.columns,.a.DB_ERROR_TRUNCATED
105c0 20 65 72 72 6f 72 20 69 73 20 72 65 74 75 72 6e 65 64 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 .error.is.returned.......*......
105e0 2a 20 46 6f 72 20 65 78 61 6d 70 6c 65 2c 20 69 66 20 74 68 65 20 74 61 62 6c 65 20 22 6d 79 74 *.For.example,.if.the.table."myt
10600 61 62 6c 65 22 20 63 6f 6e 74 61 69 6e 73 3a 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 20 49 able".contains:......*......*..I
10620 44 20 20 20 20 20 20 54 45 58 54 20 20 20 20 20 20 20 44 41 54 45 0a 20 20 20 20 20 2a 20 2d 2d D......TEXT.......DATE......*.--
10640 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 20 ------------------------------..
10660 20 20 20 20 2a 20 20 31 20 20 20 20 20 20 20 27 6f 6e 65 27 20 20 20 20 20 20 39 34 34 36 37 39 ....*..1.......'one'......944679
10680 34 30 38 0a 20 20 20 20 20 2a 20 20 32 20 20 20 20 20 20 20 27 74 77 6f 27 20 20 20 20 20 20 39 408......*..2.......'two'......9
106a0 34 34 36 37 39 34 30 38 0a 20 20 20 20 20 2a 20 20 33 20 20 20 20 20 20 20 27 74 68 72 65 65 27 44679408......*..3.......'three'
106c0 20 20 20 20 39 34 34 36 37 39 34 30 38 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 54 68 65 6e ....944679408......*......*.Then
106e0 20 74 68 65 20 63 61 6c 6c 20 67 65 74 41 73 73 6f 63 28 27 53 45 4c 45 43 54 20 69 64 2c 74 65 .the.call.getAssoc('SELECT.id,te
10700 78 74 20 46 52 4f 4d 20 6d 79 74 61 62 6c 65 27 29 20 72 65 74 75 72 6e 73 3a 0a 20 20 20 20 20 xt.FROM.mytable').returns:......
10720 2a 20 20 20 61 72 72 61 79 28 0a 20 20 20 20 20 2a 20 20 20 20 20 27 31 27 20 3d 3e 20 27 6f 6e *...array(......*.....'1'.=>.'on
10740 65 27 2c 0a 20 20 20 20 20 2a 20 20 20 20 20 27 32 27 20 3d 3e 20 27 74 77 6f 27 2c 0a 20 20 20 e',......*.....'2'.=>.'two',....
10760 20 20 2a 20 20 20 20 20 27 33 27 20 3d 3e 20 27 74 68 72 65 65 27 2c 0a 20 20 20 20 20 2a 20 20 ..*.....'3'.=>.'three',......*..
10780 20 29 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 2e 2e 2e 77 68 69 6c 65 20 74 68 65 20 63 61 .)......*......*....while.the.ca
107a0 6c 6c 20 67 65 74 41 73 73 6f 63 28 27 53 45 4c 45 43 54 20 69 64 2c 74 65 78 74 2c 64 61 74 65 ll.getAssoc('SELECT.id,text,date
107c0 20 46 52 4f 4d 20 6d 79 74 61 62 6c 65 27 29 20 72 65 74 75 72 6e 73 3a 0a 20 20 20 20 20 2a 20 .FROM.mytable').returns:......*.
107e0 20 20 61 72 72 61 79 28 0a 20 20 20 20 20 2a 20 20 20 20 20 27 31 27 20 3d 3e 20 61 72 72 61 79 ..array(......*.....'1'.=>.array
10800 28 27 6f 6e 65 27 2c 20 27 39 34 34 36 37 39 34 30 38 27 29 2c 0a 20 20 20 20 20 2a 20 20 20 20 ('one',.'944679408'),......*....
10820 20 27 32 27 20 3d 3e 20 61 72 72 61 79 28 27 74 77 6f 27 2c 20 27 39 34 34 36 37 39 34 30 38 27 .'2'.=>.array('two',.'944679408'
10840 29 2c 0a 20 20 20 20 20 2a 20 20 20 20 20 27 33 27 20 3d 3e 20 61 72 72 61 79 28 27 74 68 72 65 ),......*.....'3'.=>.array('thre
10860 65 27 2c 20 27 39 34 34 36 37 39 34 30 38 27 29 0a 20 20 20 20 20 2a 20 20 20 29 0a 20 20 20 20 e',.'944679408')......*...).....
10880 20 2a 0a 20 20 20 20 20 2a 20 49 66 20 74 68 65 20 6d 6f 72 65 20 74 68 61 6e 20 6f 6e 65 20 72 .*......*.If.the.more.than.one.r
108a0 6f 77 20 6f 63 63 75 72 73 20 77 69 74 68 20 74 68 65 20 73 61 6d 65 20 76 61 6c 75 65 20 69 6e ow.occurs.with.the.same.value.in
108c0 20 74 68 65 0a 20 20 20 20 20 2a 20 66 69 72 73 74 20 63 6f 6c 75 6d 6e 2c 20 74 68 65 20 6c 61 .the......*.first.column,.the.la
108e0 73 74 20 72 6f 77 20 6f 76 65 72 77 72 69 74 65 73 20 61 6c 6c 20 70 72 65 76 69 6f 75 73 20 6f st.row.overwrites.all.previous.o
10900 6e 65 73 20 62 79 0a 20 20 20 20 20 2a 20 64 65 66 61 75 6c 74 2e 20 20 55 73 65 20 74 68 65 20 nes.by......*.default...Use.the.
10920 24 67 72 6f 75 70 20 70 61 72 61 6d 65 74 65 72 20 69 66 20 79 6f 75 20 64 6f 6e 27 74 20 77 61 $group.parameter.if.you.don't.wa
10940 6e 74 20 74 6f 0a 20 20 20 20 20 2a 20 6f 76 65 72 77 72 69 74 65 20 6c 69 6b 65 20 74 68 69 73 nt.to......*.overwrite.like.this
10960 2e 20 20 45 78 61 6d 70 6c 65 3a 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 67 65 74 41 73 73 ...Example:......*......*.getAss
10980 6f 63 28 27 53 45 4c 45 43 54 20 63 61 74 65 67 6f 72 79 2c 69 64 2c 6e 61 6d 65 20 46 52 4f 4d oc('SELECT.category,id,name.FROM
109a0 20 6d 79 74 61 62 6c 65 27 2c 20 66 61 6c 73 65 2c 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 2a 20 20 .mytable',.false,.null,......*..
109c0 20 20 20 20 20 20 20 20 44 42 5f 46 45 54 43 48 4d 4f 44 45 5f 41 53 53 4f 43 2c 20 74 72 75 65 ........DB_FETCHMODE_ASSOC,.true
109e0 29 20 72 65 74 75 72 6e 73 3a 0a 20 20 20 20 20 2a 20 20 20 61 72 72 61 79 28 0a 20 20 20 20 20 ).returns:......*...array(......
10a00 2a 20 20 20 20 20 27 31 27 20 3d 3e 20 61 72 72 61 79 28 61 72 72 61 79 28 27 69 64 27 20 3d 3e *.....'1'.=>.array(array('id'.=>
10a20 20 27 34 27 2c 20 27 6e 61 6d 65 27 20 3d 3e 20 27 6e 75 6d 62 65 72 20 66 6f 75 72 27 29 2c 0a .'4',.'name'.=>.'number.four'),.
10a40 20 20 20 20 20 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 61 72 72 61 79 28 27 69 .....*..................array('i
10a60 64 27 20 3d 3e 20 27 36 27 2c 20 27 6e 61 6d 65 27 20 3d 3e 20 27 6e 75 6d 62 65 72 20 73 69 78 d'.=>.'6',.'name'.=>.'number.six
10a80 27 29 0a 20 20 20 20 20 2a 20 20 20 20 20 20 20 20 20 20 20 20 29 2c 0a 20 20 20 20 20 2a 20 20 ')......*............),......*..
10aa0 20 20 20 27 39 27 20 3d 3e 20 61 72 72 61 79 28 61 72 72 61 79 28 27 69 64 27 20 3d 3e 20 27 34 ...'9'.=>.array(array('id'.=>.'4
10ac0 27 2c 20 27 6e 61 6d 65 27 20 3d 3e 20 27 6e 75 6d 62 65 72 20 66 6f 75 72 27 29 2c 0a 20 20 20 ',.'name'.=>.'number.four'),....
10ae0 20 20 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 61 72 72 61 79 28 27 69 64 27 20 ..*..................array('id'.
10b00 3d 3e 20 27 36 27 2c 20 27 6e 61 6d 65 27 20 3d 3e 20 27 6e 75 6d 62 65 72 20 73 69 78 27 29 0a =>.'6',.'name'.=>.'number.six').
10b20 20 20 20 20 20 2a 20 20 20 20 20 20 20 20 20 20 20 20 29 0a 20 20 20 20 20 2a 20 20 20 29 0a 20 .....*............)......*...)..
10b40 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 4b 65 65 70 20 69 6e 20 6d 69 6e 64 20 74 68 61 74 20 64 ....*......*.Keep.in.mind.that.d
10b60 61 74 61 62 61 73 65 20 66 75 6e 63 74 69 6f 6e 73 20 69 6e 20 50 48 50 20 75 73 75 61 6c 6c 79 atabase.functions.in.PHP.usually
10b80 20 72 65 74 75 72 6e 20 73 74 72 69 6e 67 0a 20 20 20 20 20 2a 20 76 61 6c 75 65 73 20 66 6f 72 .return.string......*.values.for
10ba0 20 72 65 73 75 6c 74 73 20 72 65 67 61 72 64 6c 65 73 73 20 6f 66 20 74 68 65 20 64 61 74 61 62 .results.regardless.of.the.datab
10bc0 61 73 65 27 73 20 69 6e 74 65 72 6e 61 6c 20 74 79 70 65 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 ase's.internal.type.......*.....
10be0 20 2a 20 40 70 61 72 61 6d 20 73 74 72 69 6e 67 20 24 71 75 65 72 79 20 74 68 65 20 53 51 4c 20 .*.@param.string.$query.the.SQL.
10c00 71 75 65 72 79 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 62 6f 6f 6c 65 query......*......*.@param.boole
10c20 61 6e 20 24 66 6f 72 63 65 5f 61 72 72 61 79 20 75 73 65 64 20 6f 6e 6c 79 20 77 68 65 6e 20 74 an.$force_array.used.only.when.t
10c40 68 65 20 71 75 65 72 79 20 72 65 74 75 72 6e 73 0a 20 20 20 20 20 2a 20 65 78 61 63 74 6c 79 20 he.query.returns......*.exactly.
10c60 74 77 6f 20 63 6f 6c 75 6d 6e 73 2e 20 20 49 66 20 74 72 75 65 2c 20 74 68 65 20 76 61 6c 75 65 two.columns...If.true,.the.value
10c80 73 20 6f 66 20 74 68 65 20 72 65 74 75 72 6e 65 64 20 61 72 72 61 79 0a 20 20 20 20 20 2a 20 77 s.of.the.returned.array......*.w
10ca0 69 6c 6c 20 62 65 20 6f 6e 65 2d 65 6c 65 6d 65 6e 74 20 61 72 72 61 79 73 20 69 6e 73 74 65 61 ill.be.one-element.arrays.instea
10cc0 64 20 6f 66 20 73 63 61 6c 61 72 73 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 70 61 72 d.of.scalars.......*......*.@par
10ce0 61 6d 20 61 72 72 61 79 20 24 70 61 72 61 6d 73 20 61 72 72 61 79 20 69 66 20 73 75 70 70 6c 69 am.array.$params.array.if.suppli
10d00 65 64 2c 20 70 72 65 70 61 72 65 2f 65 78 65 63 75 74 65 20 77 69 6c 6c 20 62 65 20 75 73 65 64 ed,.prepare/execute.will.be.used
10d20 0a 20 20 20 20 20 2a 20 20 20 20 20 20 20 20 77 69 74 68 20 74 68 69 73 20 61 72 72 61 79 20 61 ......*........with.this.array.a
10d40 73 20 65 78 65 63 75 74 65 20 70 61 72 61 6d 65 74 65 72 73 0a 20 20 20 20 20 2a 0a 20 20 20 20 s.execute.parameters......*.....
10d60 20 2a 20 40 70 61 72 61 6d 20 62 6f 6f 6c 65 61 6e 20 24 67 72 6f 75 70 20 69 66 20 74 72 75 65 .*.@param.boolean.$group.if.true
10d80 2c 20 74 68 65 20 76 61 6c 75 65 73 20 6f 66 20 74 68 65 20 72 65 74 75 72 6e 65 64 20 61 72 72 ,.the.values.of.the.returned.arr
10da0 61 79 0a 20 20 20 20 20 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ay......*.......................
10dc0 69 73 20 77 72 61 70 70 65 64 20 69 6e 20 61 6e 6f 74 68 65 72 20 61 72 72 61 79 2e 20 20 49 66 is.wrapped.in.another.array...If
10de0 20 74 68 65 20 73 61 6d 65 0a 20 20 20 20 20 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .the.same......*................
10e00 20 20 20 20 20 20 20 6b 65 79 20 76 61 6c 75 65 20 28 69 6e 20 74 68 65 20 66 69 72 73 74 20 63 .......key.value.(in.the.first.c
10e20 6f 6c 75 6d 6e 29 20 72 65 70 65 61 74 73 0a 20 20 20 20 20 2a 20 20 20 20 20 20 20 20 20 20 20 olumn).repeats......*...........
10e40 20 20 20 20 20 20 20 20 20 20 20 20 69 74 73 65 6c 66 2c 20 74 68 65 20 76 61 6c 75 65 73 20 77 ............itself,.the.values.w
10e60 69 6c 6c 20 62 65 20 61 70 70 65 6e 64 65 64 20 74 6f 0a 20 20 20 20 20 2a 20 20 20 20 20 20 20 ill.be.appended.to......*.......
10e80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 68 69 73 20 61 72 72 61 79 20 69 6e 73 74 65 ................this.array.inste
10ea0 61 64 20 6f 66 20 6f 76 65 72 77 72 69 74 69 6e 67 20 74 68 65 0a 20 20 20 20 20 2a 20 20 20 20 ad.of.overwriting.the......*....
10ec0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 78 69 73 74 69 6e 67 20 76 61 6c 75 ...................existing.valu
10ee0 65 73 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 61 63 63 65 73 73 20 70 75 62 6c 69 63 es.......*......*.@access.public
10f00 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 72 65 74 75 72 6e 20 61 72 72 61 79 20 61 73 73 ......*......*.@return.array.ass
10f20 6f 63 69 61 74 69 76 65 20 61 72 72 61 79 20 77 69 74 68 20 72 65 73 75 6c 74 73 20 66 72 6f 6d ociative.array.with.results.from
10f40 20 74 68 65 20 71 75 65 72 79 2e 0a 20 20 20 20 20 2a 2f 0a 0a 20 20 20 20 66 75 6e 63 74 69 6f .the.query.......*/......functio
10f60 6e 20 26 67 65 74 41 73 73 6f 63 28 24 71 75 65 72 79 2c 20 24 66 6f 72 63 65 5f 61 72 72 61 79 n.&getAssoc($query,.$force_array
10f80 20 3d 20 66 61 6c 73 65 2c 20 24 70 61 72 61 6d 73 20 3d 20 61 72 72 61 79 28 29 2c 0a 20 20 20 .=.false,.$params.=.array(),....
10fa0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 66 65 74 63 68 6d 6f 64 65 20 3d ....................$fetchmode.=
10fc0 20 44 42 5f 46 45 54 43 48 4d 4f 44 45 5f 4f 52 44 45 52 45 44 2c 20 24 67 72 6f 75 70 20 3d 20 .DB_FETCHMODE_ORDERED,.$group.=.
10fe0 66 61 6c 73 65 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 73 65 74 74 79 70 65 28 24 70 61 false).....{.........settype($pa
11000 72 61 6d 73 2c 20 22 61 72 72 61 79 22 29 3b 0a 20 20 20 20 20 20 20 20 69 66 20 28 73 69 7a 65 rams,."array");.........if.(size
11020 6f 66 28 24 70 61 72 61 6d 73 29 20 3e 20 30 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 of($params).>.0).{.............$
11040 73 74 68 20 3d 20 24 74 68 69 73 2d 3e 70 72 65 70 61 72 65 28 24 71 75 65 72 79 29 3b 0a 0a 20 sth.=.$this->prepare($query);...
11060 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 44 42 3a 3a 69 73 45 72 72 6f 72 28 24 73 74 68 29 ...........if.(DB::isError($sth)
11080 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 73 74 68 3b ).{.................return.$sth;
110a0 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 72 65 73 .............}..............$res
110c0 20 3d 20 24 74 68 69 73 2d 3e 65 78 65 63 75 74 65 28 24 73 74 68 2c 20 24 70 61 72 61 6d 73 29 .=.$this->execute($sth,.$params)
110e0 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 66 72 65 65 50 72 65 70 61 72 65 ;.............$this->freePrepare
11100 64 28 24 73 74 68 29 3b 0a 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 d($sth);.........}.else.{.......
11120 20 20 20 20 20 20 24 72 65 73 20 3d 20 24 74 68 69 73 2d 3e 71 75 65 72 79 28 24 71 75 65 72 79 ......$res.=.$this->query($query
11140 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 69 66 20 28 44 42 3a 3a 69 73 );.........}..........if.(DB::is
11160 45 72 72 6f 72 28 24 72 65 73 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 Error($res)).{.............retur
11180 6e 20 24 72 65 73 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 24 63 6f 6c 73 n.$res;.........}..........$cols
111a0 20 3d 20 24 72 65 73 2d 3e 6e 75 6d 43 6f 6c 73 28 29 3b 0a 0a 20 20 20 20 20 20 20 20 69 66 20 .=.$res->numCols();..........if.
111c0 28 24 63 6f 6c 73 20 3c 20 32 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e ($cols.<.2).{.............return
111e0 20 24 74 68 69 73 2d 3e 72 61 69 73 65 45 72 72 6f 72 28 44 42 5f 45 52 52 4f 52 5f 54 52 55 4e .$this->raiseError(DB_ERROR_TRUN
11200 43 41 54 45 44 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 24 72 65 73 75 CATED);.........}..........$resu
11220 6c 74 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 20 20 20 20 20 20 20 20 69 66 20 28 24 63 6f 6c lts.=.array();..........if.($col
11240 73 20 3e 20 32 20 7c 7c 20 24 66 6f 72 63 65 5f 61 72 72 61 79 29 20 7b 0a 20 20 20 20 20 20 20 s.>.2.||.$force_array).{........
11260 20 20 20 20 20 2f 2f 20 72 65 74 75 72 6e 20 61 72 72 61 79 20 76 61 6c 75 65 73 0a 20 20 20 20 .....//.return.array.values.....
11280 20 20 20 20 20 20 20 20 2f 2f 20 58 58 58 20 74 68 69 73 20 70 61 72 74 20 63 61 6e 20 62 65 20 ........//.XXX.this.part.can.be.
112a0 6f 70 74 69 6d 69 7a 65 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 24 66 65 74 63 68 optimized.............if.($fetch
112c0 6d 6f 64 65 20 3d 3d 20 44 42 5f 46 45 54 43 48 4d 4f 44 45 5f 41 53 53 4f 43 29 20 7b 0a 20 20 mode.==.DB_FETCHMODE_ASSOC).{...
112e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 77 68 69 6c 65 20 28 69 73 5f 61 72 72 61 79 28 24 72 ..............while.(is_array($r
11300 6f 77 20 3d 20 24 72 65 73 2d 3e 66 65 74 63 68 52 6f 77 28 44 42 5f 46 45 54 43 48 4d 4f 44 45 ow.=.$res->fetchRow(DB_FETCHMODE
11320 5f 41 53 53 4f 43 29 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 _ASSOC))).{.....................
11340 72 65 73 65 74 28 24 72 6f 77 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 reset($row);....................
11360 20 24 6b 65 79 20 3d 20 63 75 72 72 65 6e 74 28 24 72 6f 77 29 3b 0a 20 20 20 20 20 20 20 20 20 .$key.=.current($row);..........
11380 20 20 20 20 20 20 20 20 20 20 20 75 6e 73 65 74 28 24 72 6f 77 5b 6b 65 79 28 24 72 6f 77 29 5d ...........unset($row[key($row)]
113a0 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 24 67 72 6f 75 );.....................if.($grou
113c0 70 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 72 65 p).{.........................$re
113e0 73 75 6c 74 73 5b 24 6b 65 79 5d 5b 5d 20 3d 20 24 72 6f 77 3b 0a 20 20 20 20 20 20 20 20 20 20 sults[$key][].=.$row;...........
11400 20 20 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ..........}.else.{..............
11420 20 20 20 20 20 20 20 20 20 20 20 24 72 65 73 75 6c 74 73 5b 24 6b 65 79 5d 20 3d 20 24 72 6f 77 ...........$results[$key].=.$row
11440 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 ;.....................}.........
11460 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 20 ........}.............}.else.{..
11480 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 77 68 69 6c 65 20 28 69 73 5f 61 72 72 61 79 28 24 ...............while.(is_array($
114a0 72 6f 77 20 3d 20 24 72 65 73 2d 3e 66 65 74 63 68 52 6f 77 28 44 42 5f 46 45 54 43 48 4d 4f 44 row.=.$res->fetchRow(DB_FETCHMOD
114c0 45 5f 4f 52 44 45 52 45 44 29 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 E_ORDERED))).{..................
114e0 20 20 20 2f 2f 20 77 65 20 73 68 69 66 74 20 61 77 61 79 20 74 68 65 20 66 69 72 73 74 20 65 6c ...//.we.shift.away.the.first.el
11500 65 6d 65 6e 74 20 74 6f 20 67 65 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ement.to.get....................
11520 20 2f 2f 20 69 6e 64 69 63 65 73 20 72 75 6e 6e 69 6e 67 20 66 72 6f 6d 20 30 20 61 67 61 69 6e .//.indices.running.from.0.again
11540 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 6b 65 79 20 3d 20 61 72 72 61 .....................$key.=.arra
11560 79 5f 73 68 69 66 74 28 24 72 6f 77 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 y_shift($row);..................
11580 20 20 20 69 66 20 28 24 67 72 6f 75 70 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ...if.($group).{................
115a0 20 20 20 20 20 20 20 20 20 24 72 65 73 75 6c 74 73 5b 24 6b 65 79 5d 5b 5d 20 3d 20 24 72 6f 77 .........$results[$key][].=.$row
115c0 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 20 ;.....................}.else.{..
115e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 72 65 73 75 6c 74 73 5b .......................$results[
11600 24 6b 65 79 5d 20 3d 20 24 72 6f 77 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 $key].=.$row;...................
11620 20 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 20 ..}.................}...........
11640 20 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 44 42 3a 3a 69 73 45 72 72 6f 72 28 ..}.............if.(DB::isError(
11660 24 72 6f 77 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 72 65 73 75 6c 74 $row)).{.................$result
11680 73 20 3d 20 24 72 6f 77 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 s.=.$row;.............}.........
116a0 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 72 65 74 75 72 6e 20 73 }.else.{.............//.return.s
116c0 63 61 6c 61 72 20 76 61 6c 75 65 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 77 68 69 6c 65 20 28 calar.values.............while.(
116e0 69 73 5f 61 72 72 61 79 28 24 72 6f 77 20 3d 20 24 72 65 73 2d 3e 66 65 74 63 68 52 6f 77 28 44 is_array($row.=.$res->fetchRow(D
11700 42 5f 46 45 54 43 48 4d 4f 44 45 5f 4f 52 44 45 52 45 44 29 29 29 20 7b 0a 20 20 20 20 20 20 20 B_FETCHMODE_ORDERED))).{........
11720 20 20 20 20 20 20 20 20 20 69 66 20 28 24 67 72 6f 75 70 29 20 7b 0a 20 20 20 20 20 20 20 20 20 .........if.($group).{..........
11740 20 20 20 20 20 20 20 20 20 20 20 24 72 65 73 75 6c 74 73 5b 24 72 6f 77 5b 30 5d 5d 5b 5d 20 3d ...........$results[$row[0]][].=
11760 20 24 72 6f 77 5b 31 5d 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 .$row[1];.................}.else
11780 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 72 65 73 75 6c 74 73 5b .{.....................$results[
117a0 24 72 6f 77 5b 30 5d 5d 20 3d 20 24 72 6f 77 5b 31 5d 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 $row[0]].=.$row[1];.............
117c0 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 ....}.............}.............
117e0 69 66 20 28 44 42 3a 3a 69 73 45 72 72 6f 72 28 24 72 6f 77 29 29 20 7b 0a 20 20 20 20 20 20 20 if.(DB::isError($row)).{........
11800 20 20 20 20 20 20 20 20 20 24 72 65 73 75 6c 74 73 20 3d 20 24 72 6f 77 3b 0a 20 20 20 20 20 20 .........$results.=.$row;.......
11820 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 24 72 65 73 2d ......}.........}..........$res-
11840 3e 66 72 65 65 28 29 3b 0a 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 72 65 73 75 6c 74 >free();..........return.$result
11860 73 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 s;.....}......//.}}}.....//.{{{.
11880 67 65 74 41 6c 6c 28 29 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 46 65 74 63 68 20 61 getAll()....../**......*.Fetch.a
118a0 6c 6c 20 74 68 65 20 72 6f 77 73 20 72 65 74 75 72 6e 65 64 20 66 72 6f 6d 20 61 20 71 75 65 72 ll.the.rows.returned.from.a.quer
118c0 79 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 73 74 72 69 6e 67 20 24 y.......*......*.@param.string.$
118e0 71 75 65 72 79 20 74 68 65 20 53 51 4c 20 71 75 65 72 79 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 query.the.SQL.query......*......
11900 2a 20 40 70 61 72 61 6d 20 61 72 72 61 79 20 24 70 61 72 61 6d 73 20 61 72 72 61 79 20 69 66 20 *.@param.array.$params.array.if.
11920 73 75 70 70 6c 69 65 64 2c 20 70 72 65 70 61 72 65 2f 65 78 65 63 75 74 65 20 77 69 6c 6c 20 62 supplied,.prepare/execute.will.b
11940 65 20 75 73 65 64 0a 20 20 20 20 20 2a 20 20 20 20 20 20 20 20 77 69 74 68 20 74 68 69 73 20 61 e.used......*........with.this.a
11960 72 72 61 79 20 61 73 20 65 78 65 63 75 74 65 20 70 61 72 61 6d 65 74 65 72 73 0a 20 20 20 20 20 rray.as.execute.parameters......
11980 2a 20 40 70 61 72 61 6d 20 69 6e 74 65 67 65 72 20 24 66 65 74 63 68 6d 6f 64 65 20 74 68 65 20 *.@param.integer.$fetchmode.the.
119a0 66 65 74 63 68 20 6d 6f 64 65 20 74 6f 20 75 73 65 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 fetch.mode.to.use......*......*.
119c0 40 61 63 63 65 73 73 20 70 75 62 6c 69 63 0a 20 20 20 20 20 2a 20 40 72 65 74 75 72 6e 20 61 72 @access.public......*.@return.ar
119e0 72 61 79 20 61 6e 20 6e 65 73 74 65 64 20 61 72 72 61 79 2c 20 6f 72 20 61 20 44 42 20 65 72 72 ray.an.nested.array,.or.a.DB.err
11a00 6f 72 0a 20 20 20 20 20 2a 2f 0a 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 26 67 65 74 41 6c 6c or......*/......function.&getAll
11a20 28 24 71 75 65 72 79 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 70 ($query,......................$p
11a40 61 72 61 6d 73 20 3d 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 arams.=.null,...................
11a60 20 20 20 24 66 65 74 63 68 6d 6f 64 65 20 3d 20 44 42 5f 46 45 54 43 48 4d 4f 44 45 5f 44 45 46 ...$fetchmode.=.DB_FETCHMODE_DEF
11a80 41 55 4c 54 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 2f 2f 20 63 6f 6d 70 61 74 20 63 68 AULT).....{.........//.compat.ch
11aa0 65 63 6b 2c 20 74 68 65 20 70 61 72 61 6d 73 20 61 6e 64 20 66 65 74 63 68 6d 6f 64 65 20 70 61 eck,.the.params.and.fetchmode.pa
11ac0 72 61 6d 65 74 65 72 73 20 75 73 65 64 20 74 6f 0a 20 20 20 20 20 20 20 20 2f 2f 20 68 61 76 65 rameters.used.to.........//.have
11ae0 20 74 68 65 20 6f 70 70 6f 73 69 74 65 20 6f 72 64 65 72 0a 20 20 20 20 20 20 20 20 69 66 20 28 .the.opposite.order.........if.(
11b00 21 69 73 5f 61 72 72 61 79 28 24 70 61 72 61 6d 73 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 !is_array($params)).{...........
11b20 20 20 69 66 20 28 69 73 5f 61 72 72 61 79 28 24 66 65 74 63 68 6d 6f 64 65 29 29 20 7b 0a 20 20 ..if.(is_array($fetchmode)).{...
11b40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 74 6d 70 20 3d 20 24 70 61 72 61 6d 73 3b 0a 20 20 ..............$tmp.=.$params;...
11b60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 70 61 72 61 6d 73 20 3d 20 24 66 65 74 63 68 6d 6f ..............$params.=.$fetchmo
11b80 64 65 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 66 65 74 63 68 6d 6f 64 65 20 3d de;.................$fetchmode.=
11ba0 20 24 74 6d 70 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 69 66 20 28 24 70 61 .$tmp;.............}.elseif.($pa
11bc0 72 61 6d 73 20 21 3d 3d 20 6e 75 6c 6c 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 rams.!==.null).{................
11be0 20 24 66 65 74 63 68 6d 6f 64 65 20 3d 20 24 70 61 72 61 6d 73 3b 0a 20 20 20 20 20 20 20 20 20 .$fetchmode.=.$params;..........
11c00 20 20 20 20 20 20 20 24 70 61 72 61 6d 73 20 3d 20 6e 75 6c 6c 3b 0a 20 20 20 20 20 20 20 20 20 .......$params.=.null;..........
11c20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 24 70 61 72 61 6d 73 20 3d ...}.........}.........$params.=
11c40 20 28 65 6d 70 74 79 28 24 70 61 72 61 6d 73 29 29 20 3f 20 61 72 72 61 79 28 29 20 3a 20 24 70 .(empty($params)).?.array().:.$p
11c60 61 72 61 6d 73 3b 0a 20 20 20 20 20 20 20 20 24 66 65 74 63 68 6d 6f 64 65 20 3d 20 28 65 6d 70 arams;.........$fetchmode.=.(emp
11c80 74 79 28 24 66 65 74 63 68 6d 6f 64 65 29 29 20 3f 20 44 42 5f 46 45 54 43 48 4d 4f 44 45 5f 44 ty($fetchmode)).?.DB_FETCHMODE_D
11ca0 45 46 41 55 4c 54 20 3a 20 24 66 65 74 63 68 6d 6f 64 65 3b 0a 20 20 20 20 20 20 20 20 73 65 74 EFAULT.:.$fetchmode;.........set
11cc0 74 79 70 65 28 24 70 61 72 61 6d 73 2c 20 22 61 72 72 61 79 22 29 3b 0a 20 20 20 20 20 20 20 20 type($params,."array");.........
11ce0 69 66 20 28 73 69 7a 65 6f 66 28 24 70 61 72 61 6d 73 29 20 3e 20 30 29 20 7b 0a 20 20 20 20 20 if.(sizeof($params).>.0).{......
11d00 20 20 20 20 20 20 20 24 73 74 68 20 3d 20 24 74 68 69 73 2d 3e 70 72 65 70 61 72 65 28 24 71 75 .......$sth.=.$this->prepare($qu
11d20 65 72 79 29 3b 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 44 42 3a 3a 69 73 45 72 72 ery);..............if.(DB::isErr
11d40 6f 72 28 24 73 74 68 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 or($sth)).{.................retu
11d60 72 6e 20 24 73 74 68 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 rn.$sth;.............}..........
11d80 20 20 20 20 24 72 65 73 20 3d 20 24 74 68 69 73 2d 3e 65 78 65 63 75 74 65 28 24 73 74 68 2c 20 ....$res.=.$this->execute($sth,.
11da0 24 70 61 72 61 6d 73 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 66 72 65 $params);.............$this->fre
11dc0 65 50 72 65 70 61 72 65 64 28 24 73 74 68 29 3b 0a 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 ePrepared($sth);.........}.else.
11de0 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 72 65 73 20 3d 20 24 74 68 69 73 2d 3e 71 75 65 72 {.............$res.=.$this->quer
11e00 79 28 24 71 75 65 72 79 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 69 66 y($query);.........}..........if
11e20 20 28 44 42 3a 3a 69 73 45 72 72 6f 72 28 24 72 65 73 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 .(DB::isError($res)).{..........
11e40 20 20 20 72 65 74 75 72 6e 20 24 72 65 73 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 ...return.$res;.........}.......
11e60 20 20 20 24 72 65 73 75 6c 74 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 20 20 20 20 20 20 20 20 77 ...$results.=.array();.........w
11e80 68 69 6c 65 20 28 44 42 5f 4f 4b 20 3d 3d 3d 20 24 72 65 73 2d 3e 66 65 74 63 68 49 6e 74 6f 28 hile.(DB_OK.===.$res->fetchInto(
11ea0 24 72 6f 77 2c 20 24 66 65 74 63 68 6d 6f 64 65 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 $row,.$fetchmode)).{............
11ec0 20 69 66 20 28 24 66 65 74 63 68 6d 6f 64 65 20 26 20 44 42 5f 46 45 54 43 48 4d 4f 44 45 5f 46 .if.($fetchmode.&.DB_FETCHMODE_F
11ee0 4c 49 50 50 45 44 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 65 61 63 LIPPED).{.................foreac
11f00 68 20 28 24 72 6f 77 20 61 73 20 24 6b 65 79 20 3d 3e 20 24 76 61 6c 29 20 7b 0a 20 20 20 20 20 h.($row.as.$key.=>.$val).{......
11f20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 72 65 73 75 6c 74 73 5b 24 6b 65 79 5d 5b 5d 20 ...............$results[$key][].
11f40 3d 20 24 76 61 6c 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 =.$val;.................}.......
11f60 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 ......}.else.{.................$
11f80 72 65 73 75 6c 74 73 5b 5d 20 3d 20 24 72 6f 77 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a results[].=.$row;.............}.
11fa0 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 24 72 65 73 2d 3e 66 72 65 65 28 29 3b ........}..........$res->free();
11fc0 0a 0a 20 20 20 20 20 20 20 20 69 66 20 28 44 42 3a 3a 69 73 45 72 72 6f 72 28 24 72 6f 77 29 29 ..........if.(DB::isError($row))
11fe0 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 61 69 .{.............return.$this->rai
12000 73 65 45 72 72 6f 72 28 24 72 6f 77 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 seError($row);.........}........
12020 20 72 65 74 75 72 6e 20 24 72 65 73 75 6c 74 73 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 .return.$results;.....}......//.
12040 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 61 75 74 6f 43 6f 6d 6d 69 74 28 29 0a 20 20 20 20 }}}.....//.{{{.autoCommit().....
12060 2f 2a 2a 0a 20 20 20 20 2a 20 65 6e 61 62 6c 65 20 61 75 74 6f 6d 61 74 69 63 20 43 6f 6d 6d 69 /**.....*.enable.automatic.Commi
12080 74 0a 20 20 20 20 2a 0a 20 20 20 20 2a 20 40 70 61 72 61 6d 20 62 6f 6f 6c 65 61 6e 20 24 6f 6e t.....*.....*.@param.boolean.$on
120a0 6f 66 66 0a 20 20 20 20 2a 20 40 72 65 74 75 72 6e 20 6d 69 78 65 64 20 44 42 5f 45 72 72 6f 72 off.....*.@return.mixed.DB_Error
120c0 0a 20 20 20 20 2a 0a 20 20 20 20 2a 20 40 61 63 63 65 73 73 20 70 75 62 6c 69 63 0a 20 20 20 20 .....*.....*.@access.public.....
120e0 2a 2f 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 61 75 74 6f 43 6f 6d 6d 69 74 28 24 6f 6e 6f 66 */.....function.autoCommit($onof
12100 66 3d 66 61 6c 73 65 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 f=false).....{.........return.$t
12120 68 69 73 2d 3e 72 61 69 73 65 45 72 72 6f 72 28 44 42 5f 45 52 52 4f 52 5f 4e 4f 54 5f 43 41 50 his->raiseError(DB_ERROR_NOT_CAP
12140 41 42 4c 45 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 ABLE);.....}......//.}}}.....//.
12160 7b 7b 7b 20 63 6f 6d 6d 69 74 28 29 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 2a 20 73 74 61 72 74 {{{.commit()...../**.....*.start
12180 73 20 61 20 43 6f 6d 6d 69 74 0a 20 20 20 20 2a 0a 20 20 20 20 2a 20 40 72 65 74 75 72 6e 20 6d s.a.Commit.....*.....*.@return.m
121a0 69 78 65 64 20 44 42 5f 45 72 72 6f 72 0a 20 20 20 20 2a 0a 20 20 20 20 2a 20 40 61 63 63 65 73 ixed.DB_Error.....*.....*.@acces
121c0 73 20 70 75 62 6c 69 63 0a 20 20 20 20 2a 2f 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6d s.public.....*/.....function.com
121e0 6d 69 74 28 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 mit().....{.........return.$this
12200 2d 3e 72 61 69 73 65 45 72 72 6f 72 28 44 42 5f 45 52 52 4f 52 5f 4e 4f 54 5f 43 41 50 41 42 4c ->raiseError(DB_ERROR_NOT_CAPABL
12220 45 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b E);.....}......//.}}}.....//.{{{
12240 20 72 6f 6c 6c 62 61 63 6b 28 29 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 2a 20 73 74 61 72 74 73 .rollback()...../**.....*.starts
12260 20 61 20 72 6f 6c 6c 62 61 63 6b 0a 20 20 20 20 2a 0a 20 20 20 20 2a 20 40 72 65 74 75 72 6e 20 .a.rollback.....*.....*.@return.
12280 6d 69 78 65 64 20 44 42 5f 45 72 72 6f 72 0a 20 20 20 20 2a 0a 20 20 20 20 2a 20 40 61 63 63 65 mixed.DB_Error.....*.....*.@acce
122a0 73 73 20 70 75 62 6c 69 63 0a 20 20 20 20 2a 2f 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 72 6f ss.public.....*/.....function.ro
122c0 6c 6c 62 61 63 6b 28 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 llback().....{.........return.$t
122e0 68 69 73 2d 3e 72 61 69 73 65 45 72 72 6f 72 28 44 42 5f 45 52 52 4f 52 5f 4e 4f 54 5f 43 41 50 his->raiseError(DB_ERROR_NOT_CAP
12300 41 42 4c 45 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 ABLE);.....}......//.}}}.....//.
12320 7b 7b 7b 20 6e 75 6d 52 6f 77 73 28 29 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 2a 20 72 65 74 75 {{{.numRows()...../**.....*.retu
12340 72 6e 73 20 74 68 65 20 6e 75 6d 62 65 72 20 6f 66 20 72 6f 77 73 20 69 6e 20 61 20 72 65 73 75 rns.the.number.of.rows.in.a.resu
12360 6c 74 20 6f 62 6a 65 63 74 0a 20 20 20 20 2a 0a 20 20 20 20 2a 20 40 70 61 72 61 6d 20 6f 62 6a lt.object.....*.....*.@param.obj
12380 65 63 74 20 44 42 5f 52 65 73 75 6c 74 20 74 68 65 20 72 65 73 75 6c 74 20 6f 62 6a 65 63 74 20 ect.DB_Result.the.result.object.
123a0 74 6f 20 63 68 65 63 6b 0a 20 20 20 20 2a 0a 20 20 20 20 2a 20 40 72 65 74 75 72 6e 20 6d 69 78 to.check.....*.....*.@return.mix
123c0 65 64 20 44 42 5f 45 72 72 6f 72 20 6f 72 20 74 68 65 20 6e 75 6d 62 65 72 20 6f 66 20 72 6f 77 ed.DB_Error.or.the.number.of.row
123e0 73 0a 20 20 20 20 2a 0a 20 20 20 20 2a 20 40 61 63 63 65 73 73 20 70 75 62 6c 69 63 0a 20 20 20 s.....*.....*.@access.public....
12400 20 2a 2f 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 6e 75 6d 52 6f 77 73 28 24 72 65 73 75 6c 74 .*/.....function.numRows($result
12420 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 61 ).....{.........return.$this->ra
12440 69 73 65 45 72 72 6f 72 28 44 42 5f 45 52 52 4f 52 5f 4e 4f 54 5f 43 41 50 41 42 4c 45 29 3b 0a iseError(DB_ERROR_NOT_CAPABLE);.
12460 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 61 66 66 ....}......//.}}}.....//.{{{.aff
12480 65 63 74 65 64 52 6f 77 73 28 29 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 2a 20 72 65 74 75 72 6e ectedRows()...../**.....*.return
124a0 73 20 74 68 65 20 61 66 66 65 63 74 65 64 20 72 6f 77 73 20 6f 66 20 61 20 71 75 65 72 79 0a 20 s.the.affected.rows.of.a.query..
124c0 20 20 20 2a 0a 20 20 20 20 2a 20 40 72 65 74 75 72 6e 20 6d 69 78 65 64 20 44 42 5f 45 72 72 6f ...*.....*.@return.mixed.DB_Erro
124e0 72 20 6f 72 20 6e 75 6d 62 65 72 20 6f 66 20 72 6f 77 73 0a 20 20 20 20 2a 0a 20 20 20 20 2a 20 r.or.number.of.rows.....*.....*.
12500 40 61 63 63 65 73 73 20 70 75 62 6c 69 63 0a 20 20 20 20 2a 2f 0a 20 20 20 20 66 75 6e 63 74 69 @access.public.....*/.....functi
12520 6f 6e 20 61 66 66 65 63 74 65 64 52 6f 77 73 28 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 on.affectedRows().....{.........
12540 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 61 69 73 65 45 72 72 6f 72 28 44 42 5f 45 52 52 4f return.$this->raiseError(DB_ERRO
12560 52 5f 4e 4f 54 5f 43 41 50 41 42 4c 45 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d R_NOT_CAPABLE);.....}......//.}}
12580 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 65 72 72 6f 72 4e 61 74 69 76 65 28 29 0a 20 20 20 20 2f }.....//.{{{.errorNative()...../
125a0 2a 2a 0a 20 20 20 20 2a 20 72 65 74 75 72 6e 73 20 61 6e 20 65 72 72 6f 72 6d 65 73 73 61 67 65 **.....*.returns.an.errormessage
125c0 2c 20 70 72 6f 76 69 64 65 73 20 62 79 20 74 68 65 20 64 61 74 61 62 61 73 65 0a 20 20 20 20 2a ,.provides.by.the.database.....*
125e0 0a 20 20 20 20 2a 20 40 72 65 74 75 72 6e 20 6d 69 78 65 64 20 44 42 5f 45 72 72 6f 72 20 6f 72 .....*.@return.mixed.DB_Error.or
12600 20 6d 65 73 73 61 67 65 0a 20 20 20 20 2a 0a 20 20 20 20 2a 20 40 61 63 63 65 73 73 20 70 75 62 .message.....*.....*.@access.pub
12620 6c 69 63 0a 20 20 20 20 2a 2f 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 65 72 72 6f 72 4e 61 74 lic.....*/.....function.errorNat
12640 69 76 65 28 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 ive().....{.........return.$this
12660 2d 3e 72 61 69 73 65 45 72 72 6f 72 28 44 42 5f 45 52 52 4f 52 5f 4e 4f 54 5f 43 41 50 41 42 4c ->raiseError(DB_ERROR_NOT_CAPABL
12680 45 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b E);.....}......//.}}}.....//.{{{
126a0 20 6e 65 78 74 49 64 28 29 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 2a 20 72 65 74 75 72 6e 73 20 .nextId()...../**.....*.returns.
126c0 74 68 65 20 6e 65 78 74 20 66 72 65 65 20 69 64 20 6f 66 20 61 20 73 65 71 75 65 6e 63 65 0a 20 the.next.free.id.of.a.sequence..
126e0 20 20 20 2a 0a 20 20 20 20 2a 20 40 70 61 72 61 6d 20 73 74 72 69 6e 67 20 20 24 73 65 71 5f 6e ...*.....*.@param.string..$seq_n
12700 61 6d 65 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 73 65 71 75 65 6e 63 65 0a 20 20 20 20 2a 20 40 ame.name.of.the.sequence.....*.@
12720 70 61 72 61 6d 20 62 6f 6f 6c 65 61 6e 20 24 6f 6e 64 65 6d 61 6e 64 20 77 68 65 6e 20 74 72 75 param.boolean.$ondemand.when.tru
12740 65 20 74 68 65 20 73 65 71 65 6e 63 65 20 69 73 0a 20 20 20 20 2a 20 20 20 20 20 20 20 20 20 20 e.the.seqence.is.....*..........
12760 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 61 75 74 6f 6d 61 74 69 63 20 63 72 65 61 74 65 ................automatic.create
12780 64 2c 20 69 66 20 69 74 0a 20 20 20 20 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 d,.if.it.....*..................
127a0 20 20 20 20 20 20 20 20 6e 6f 74 20 65 78 69 73 74 73 0a 20 20 20 20 2a 0a 20 20 20 20 2a 20 40 ........not.exists.....*.....*.@
127c0 72 65 74 75 72 6e 20 6d 69 78 65 64 20 44 42 5f 45 72 72 6f 72 20 6f 72 20 69 64 0a 20 20 20 20 return.mixed.DB_Error.or.id.....
127e0 2a 2f 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 6e 65 78 74 49 64 28 24 73 65 71 5f 6e 61 6d 65 */.....function.nextId($seq_name
12800 2c 20 24 6f 6e 64 65 6d 61 6e 64 20 3d 20 74 72 75 65 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 ,.$ondemand.=.true).....{.......
12820 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 61 69 73 65 45 72 72 6f 72 28 44 42 5f 45 52 ..return.$this->raiseError(DB_ER
12840 52 4f 52 5f 4e 4f 54 5f 43 41 50 41 42 4c 45 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 ROR_NOT_CAPABLE);.....}......//.
12860 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 63 72 65 61 74 65 53 65 71 75 65 6e 63 65 28 29 0a }}}.....//.{{{.createSequence().
12880 20 20 20 20 2f 2a 2a 0a 20 20 20 20 2a 20 63 72 65 61 74 65 73 20 61 20 6e 65 77 20 73 65 71 75 ..../**.....*.creates.a.new.sequ
128a0 65 6e 63 65 0a 20 20 20 20 2a 0a 20 20 20 20 2a 20 40 70 61 72 61 6d 20 73 74 72 69 6e 67 20 24 ence.....*.....*.@param.string.$
128c0 73 65 71 5f 6e 61 6d 65 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 6e 65 77 20 73 65 71 75 65 6e 63 seq_name.name.of.the.new.sequenc
128e0 65 0a 20 20 20 20 2a 0a 20 20 20 20 2a 20 40 72 65 74 75 72 6e 20 6d 69 78 65 64 20 44 42 5f 45 e.....*.....*.@return.mixed.DB_E
12900 72 72 6f 72 0a 20 20 20 20 2a 0a 20 20 20 20 2a 20 40 61 63 63 65 73 73 20 70 75 62 6c 69 63 0a rror.....*.....*.@access.public.
12920 20 20 20 20 2a 2f 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 63 72 65 61 74 65 53 65 71 75 65 6e ....*/.....function.createSequen
12940 63 65 28 24 73 65 71 5f 6e 61 6d 65 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 72 65 74 75 ce($seq_name).....{.........retu
12960 72 6e 20 24 74 68 69 73 2d 3e 72 61 69 73 65 45 72 72 6f 72 28 44 42 5f 45 52 52 4f 52 5f 4e 4f rn.$this->raiseError(DB_ERROR_NO
12980 54 5f 43 41 50 41 42 4c 45 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 T_CAPABLE);.....}......//.}}}...
129a0 20 20 2f 2f 20 7b 7b 7b 20 64 72 6f 70 53 65 71 75 65 6e 63 65 28 29 0a 20 20 20 20 2f 2a 2a 0a ..//.{{{.dropSequence()...../**.
129c0 20 20 20 20 2a 20 64 65 6c 65 74 65 73 20 61 20 73 65 71 75 65 6e 63 65 0a 20 20 20 20 2a 0a 20 ....*.deletes.a.sequence.....*..
129e0 20 20 20 2a 20 40 70 61 72 61 6d 20 73 74 72 69 6e 67 20 24 73 65 71 5f 6e 61 6d 65 20 6e 61 6d ...*.@param.string.$seq_name.nam
12a00 65 20 6f 66 20 74 68 65 20 73 65 71 75 65 6e 63 65 0a 20 20 20 20 2a 0a 20 20 20 20 2a 20 40 72 e.of.the.sequence.....*.....*.@r
12a20 65 74 75 72 6e 20 6d 69 78 65 64 20 44 42 5f 45 72 72 6f 72 0a 20 20 20 20 2a 0a 20 20 20 20 2a eturn.mixed.DB_Error.....*.....*
12a40 20 40 61 63 63 65 73 73 20 70 75 62 6c 69 63 0a 20 20 20 20 2a 2f 0a 20 20 20 20 66 75 6e 63 74 .@access.public.....*/.....funct
12a60 69 6f 6e 20 64 72 6f 70 53 65 71 75 65 6e 63 65 28 24 73 65 71 5f 6e 61 6d 65 29 0a 20 20 20 20 ion.dropSequence($seq_name).....
12a80 7b 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 61 69 73 65 45 72 72 {.........return.$this->raiseErr
12aa0 6f 72 28 44 42 5f 45 52 52 4f 52 5f 4e 4f 54 5f 43 41 50 41 42 4c 45 29 3b 0a 20 20 20 20 7d 0a or(DB_ERROR_NOT_CAPABLE);.....}.
12ac0 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 74 61 62 6c 65 49 6e 66 6f .....//.}}}.....//.{{{.tableInfo
12ae0 28 29 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 2a 20 72 65 74 75 72 6e 73 20 6d 65 74 61 20 64 61 ()...../**.....*.returns.meta.da
12b00 74 61 20 61 62 6f 75 74 20 74 68 65 20 72 65 73 75 6c 74 20 73 65 74 0a 20 20 20 20 2a 0a 20 20 ta.about.the.result.set.....*...
12b20 20 20 2a 20 40 70 61 72 61 6d 20 6f 62 6a 65 63 74 20 44 42 5f 52 65 73 75 6c 74 20 24 72 65 73 ..*.@param.object.DB_Result.$res
12b40 75 6c 74 20 74 68 65 20 72 65 73 75 6c 74 20 6f 62 6a 65 63 74 20 74 6f 20 61 6e 61 6c 79 73 65 ult.the.result.object.to.analyse
12b60 0a 20 20 20 20 2a 20 40 70 61 72 61 6d 20 6d 69 78 65 64 20 24 6d 6f 64 65 20 64 65 70 65 6e 64 .....*.@param.mixed.$mode.depend
12b80 73 20 6f 6e 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 0a 20 20 20 20 2a 0a 20 20 20 20 2a 20 s.on.implementation.....*.....*.
12ba0 40 72 65 74 75 72 6e 20 6d 69 78 65 64 20 44 42 5f 45 72 72 6f 72 0a 20 20 20 20 2a 0a 20 20 20 @return.mixed.DB_Error.....*....
12bc0 20 2a 20 40 61 63 63 65 73 73 20 70 75 62 6c 69 63 0a 20 20 20 20 2a 2f 0a 20 20 20 20 66 75 6e .*.@access.public.....*/.....fun
12be0 63 74 69 6f 6e 20 74 61 62 6c 65 49 6e 66 6f 28 24 72 65 73 75 6c 74 2c 20 24 6d 6f 64 65 20 3d ction.tableInfo($result,.$mode.=
12c00 20 6e 75 6c 6c 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 .null).....{.........return.$thi
12c20 73 2d 3e 72 61 69 73 65 45 72 72 6f 72 28 44 42 5f 45 52 52 4f 52 5f 4e 4f 54 5f 43 41 50 41 42 s->raiseError(DB_ERROR_NOT_CAPAB
12c40 4c 45 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b LE);.....}......//.}}}.....//.{{
12c60 7b 20 67 65 74 54 61 62 6c 65 73 28 29 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 2a 20 40 64 65 70 {.getTables()...../**.....*.@dep
12c80 72 65 63 61 74 65 64 0a 20 20 20 20 2a 2f 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 54 recated.....*/.....function.getT
12ca0 61 62 6c 65 73 28 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 ables().....{.........return.$th
12cc0 69 73 2d 3e 67 65 74 4c 69 73 74 4f 66 28 27 74 61 62 6c 65 73 27 29 3b 0a 20 20 20 20 7d 0a 0a is->getListOf('tables');.....}..
12ce0 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 67 65 74 4c 69 73 74 4f 66 28 ....//.}}}.....//.{{{.getListOf(
12d00 29 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 2a 20 6c 69 73 74 20 69 6e 74 65 72 6e 61 6c 20 44 42 )...../**.....*.list.internal.DB
12d20 20 69 6e 66 6f 0a 20 20 20 20 2a 20 76 61 6c 69 64 20 76 61 6c 75 65 73 20 66 6f 72 20 24 74 79 .info.....*.valid.values.for.$ty
12d40 70 65 20 61 72 65 20 64 62 20 64 65 70 65 6e 64 65 6e 74 2c 0a 20 20 20 20 2a 20 6f 66 74 65 6e pe.are.db.dependent,.....*.often
12d60 3a 20 64 61 74 61 62 61 73 65 73 2c 20 75 73 65 72 73 2c 20 76 69 65 77 2c 20 66 75 6e 63 74 69 :.databases,.users,.view,.functi
12d80 6f 6e 73 0a 20 20 20 20 2a 0a 20 20 20 20 2a 20 40 70 61 72 61 6d 20 73 74 72 69 6e 67 20 24 74 ons.....*.....*.@param.string.$t
12da0 79 70 65 20 74 79 70 65 20 6f 66 20 72 65 71 75 65 73 74 65 64 20 69 6e 66 6f 0a 20 20 20 20 2a ype.type.of.requested.info.....*
12dc0 0a 20 20 20 20 2a 20 40 72 65 74 75 72 6e 20 6d 69 78 65 64 20 44 42 5f 45 72 72 6f 72 20 6f 72 .....*.@return.mixed.DB_Error.or
12de0 20 74 68 65 20 72 65 71 75 65 73 74 65 64 20 64 61 74 61 0a 20 20 20 20 2a 0a 20 20 20 20 2a 20 .the.requested.data.....*.....*.
12e00 40 61 63 63 65 73 73 20 70 75 62 6c 69 63 0a 20 20 20 20 2a 2f 0a 20 20 20 20 66 75 6e 63 74 69 @access.public.....*/.....functi
12e20 6f 6e 20 67 65 74 4c 69 73 74 4f 66 28 24 74 79 70 65 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 on.getListOf($type).....{.......
12e40 20 20 24 73 71 6c 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 53 70 65 63 69 61 6c 51 75 65 72 79 28 ..$sql.=.$this->getSpecialQuery(
12e60 24 74 79 70 65 29 3b 0a 20 20 20 20 20 20 20 20 69 66 20 28 24 73 71 6c 20 3d 3d 3d 20 6e 75 6c $type);.........if.($sql.===.nul
12e80 6c 29 20 7b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 l).{............................
12ea0 20 20 20 20 2f 2f 20 4e 6f 20 73 75 70 70 6f 72 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 ....//.No.support.............re
12ec0 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 61 69 73 65 45 72 72 6f 72 28 44 42 5f 45 52 52 4f 52 5f turn.$this->raiseError(DB_ERROR_
12ee0 55 4e 53 55 50 50 4f 52 54 45 44 29 3b 0a 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 69 66 20 28 UNSUPPORTED);.........}.elseif.(
12f00 69 73 5f 69 6e 74 28 24 73 71 6c 29 20 7c 7c 20 44 42 3a 3a 69 73 45 72 72 6f 72 28 24 73 71 6c is_int($sql).||.DB::isError($sql
12f20 29 29 20 7b 20 20 20 20 20 20 2f 2f 20 50 72 65 76 69 6f 75 73 20 65 72 72 6f 72 0a 20 20 20 20 )).{......//.Previous.error.....
12f40 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 61 69 73 65 45 72 72 6f 72 ........return.$this->raiseError
12f60 28 24 73 71 6c 29 3b 0a 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 69 66 20 28 69 73 5f 61 72 72 ($sql);.........}.elseif.(is_arr
12f80 61 79 28 24 73 71 6c 29 29 20 7b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ay($sql)).{.....................
12fa0 20 20 20 20 2f 2f 20 41 6c 72 65 61 64 79 20 74 68 65 20 72 65 73 75 6c 74 0a 20 20 20 20 20 20 ....//.Already.the.result.......
12fc0 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 73 71 6c 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 ......return.$sql;.........}....
12fe0 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 67 65 74 43 6f 6c 28 24 73 71 6c 29 3b .....return.$this->getCol($sql);
13000 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 4c 61 75 6e .........................//.Laun
13020 63 68 20 74 68 69 73 20 71 75 65 72 79 0a 20 20 20 20 7d 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 ch.this.query.....}.....//.}}}..
13040 20 20 20 2f 2f 20 7b 7b 7b 20 67 65 74 53 65 71 75 65 6e 63 65 4e 61 6d 65 28 29 0a 0a 20 20 20 ...//.{{{.getSequenceName().....
13060 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 65 71 75 65 6e 63 65 4e 61 6d 65 28 24 73 71 6e 29 0a .function.getSequenceName($sqn).
13080 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 73 70 72 69 6e 74 66 28 24 74 68 ....{.........return.sprintf($th
130a0 69 73 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 22 73 65 71 6e 61 6d 65 5f 66 6f 72 6d 61 74 22 29 2c is->getOption("seqname_format"),
130c0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 72 65 67 5f 72 65 70 ........................preg_rep
130e0 6c 61 63 65 28 27 2f 5b 5e 61 2d 7a 30 2d 39 5f 5d 2f 69 27 2c 20 27 5f 27 2c 20 24 73 71 6e 29 lace('/[^a-z0-9_]/i',.'_',.$sqn)
13100 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 7d 0a 0a 2f 2f 20 55 73 65 64 20 );.....}......//.}}}.}..//.Used.
13120 62 79 20 6d 61 6e 79 20 64 72 69 76 65 72 73 0a 69 66 20 28 21 66 75 6e 63 74 69 6f 6e 5f 65 78 by.many.drivers.if.(!function_ex
13140 69 73 74 73 28 27 61 72 72 61 79 5f 63 68 61 6e 67 65 5f 6b 65 79 5f 63 61 73 65 27 29 29 20 7b ists('array_change_key_case')).{
13160 0a 20 20 20 20 64 65 66 69 6e 65 28 27 43 41 53 45 5f 55 50 50 45 52 27 2c 20 31 29 3b 0a 20 20 .....define('CASE_UPPER',.1);...
13180 20 20 64 65 66 69 6e 65 28 27 43 41 53 45 5f 4c 4f 57 45 52 27 2c 20 30 29 3b 0a 20 20 20 20 66 ..define('CASE_LOWER',.0);.....f
131a0 75 6e 63 74 69 6f 6e 20 26 61 72 72 61 79 5f 63 68 61 6e 67 65 5f 6b 65 79 5f 63 61 73 65 28 26 unction.&array_change_key_case(&
131c0 24 61 72 72 61 79 2c 20 24 63 61 73 65 29 20 7b 0a 20 20 20 20 20 20 20 20 24 63 61 73 65 66 75 $array,.$case).{.........$casefu
131e0 6e 63 20 3d 20 28 24 63 61 73 65 20 3d 3d 20 43 41 53 45 5f 4c 4f 57 45 52 29 20 3f 20 27 73 74 nc.=.($case.==.CASE_LOWER).?.'st
13200 72 74 6f 6c 6f 77 65 72 27 20 3a 20 27 73 74 72 74 6f 75 70 70 65 72 27 3b 0a 20 20 20 20 20 20 rtolower'.:.'strtoupper';.......
13220 20 20 24 72 65 74 20 3d 20 61 72 72 61 79 28 29 3b 0a 20 20 20 20 20 20 20 20 66 6f 72 65 61 63 ..$ret.=.array();.........foreac
13240 68 20 28 24 61 72 72 61 79 20 61 73 20 24 6b 65 79 20 3d 3e 20 24 76 61 6c 75 65 29 20 7b 0a 20 h.($array.as.$key.=>.$value).{..
13260 20 20 20 20 20 20 20 20 20 20 20 24 72 65 74 5b 24 63 61 73 65 66 75 6e 63 28 24 6b 65 79 29 5d ...........$ret[$casefunc($key)]
13280 20 3d 20 24 76 61 6c 75 65 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 72 65 74 .=.$value;.........}.........ret
132a0 75 72 6e 20 24 72 65 74 3b 0a 20 20 20 20 7d 0a 7d 0a 0a 3f 3e 0a 00 00 00 00 00 00 00 00 00 00 urn.$ret;.....}.}..?>...........
132c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
132e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
133a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
133c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
133e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13400 44 42 2d 31 2e 35 2e 30 52 43 31 2f 44 42 2f 64 62 61 73 65 2e 70 68 70 00 00 00 00 00 00 00 00 DB-1.5.0RC1/DB/dbase.php........
13420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13460 00 00 00 00 31 30 30 36 34 34 20 00 20 20 20 37 36 34 20 00 20 20 20 31 34 34 20 00 20 20 20 20 ....100644.....764.....144......
13480 20 20 20 37 36 30 36 20 20 37 36 35 36 32 33 35 34 36 34 20 20 20 37 35 36 30 20 00 00 00 00 00 ...7606..7656235464...7560......
134a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
134c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
134e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
135a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
135c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
135e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13600 3c 3f 70 68 70 0a 2f 2a 20 76 69 6d 3a 20 73 65 74 20 65 78 70 61 6e 64 74 61 62 20 74 61 62 73 <?php./*.vim:.set.expandtab.tabs
13620 74 6f 70 3d 34 20 73 68 69 66 74 77 69 64 74 68 3d 34 20 66 6f 6c 64 6d 65 74 68 6f 64 3d 6d 61 top=4.shiftwidth=4.foldmethod=ma
13640 72 6b 65 72 3a 20 2a 2f 0a 2f 2f 20 2b 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d rker:.*/.//.+-------------------
13660 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
13680 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2b 0a 2f 2f 20 7c 20 50 48 50 20 56 65 -------------------+.//.|.PHP.Ve
136a0 72 73 69 6f 6e 20 34 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 rsion.4.........................
136c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c ...............................|
136e0 0a 2f 2f 20 2b 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d .//.+---------------------------
13700 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
13720 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2b 0a 2f 2f 20 7c 20 43 6f 70 79 72 69 67 68 74 20 28 63 29 20 -----------+.//.|.Copyright.(c).
13740 31 39 39 37 2d 32 30 30 33 20 54 68 65 20 50 48 50 20 47 72 6f 75 70 20 20 20 20 20 20 20 20 20 1997-2003.The.PHP.Group.........
13760 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 2f 2f 20 2b 2d 2d 2d .......................|.//.+---
13780 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
137a0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
137c0 2d 2d 2d 2b 0a 2f 2f 20 7c 20 54 68 69 73 20 73 6f 75 72 63 65 20 66 69 6c 65 20 69 73 20 73 75 ---+.//.|.This.source.file.is.su
137e0 62 6a 65 63 74 20 74 6f 20 76 65 72 73 69 6f 6e 20 32 2e 30 32 20 6f 66 20 74 68 65 20 50 48 50 bject.to.version.2.02.of.the.PHP
13800 20 6c 69 63 65 6e 73 65 2c 20 20 20 20 20 20 7c 0a 2f 2f 20 7c 20 74 68 61 74 20 69 73 20 62 75 .license,......|.//.|.that.is.bu
13820 6e 64 6c 65 64 20 77 69 74 68 20 74 68 69 73 20 70 61 63 6b 61 67 65 20 69 6e 20 74 68 65 20 66 ndled.with.this.package.in.the.f
13840 69 6c 65 20 4c 49 43 45 4e 53 45 2c 20 61 6e 64 20 69 73 20 20 20 20 20 20 20 20 7c 0a 2f 2f 20 ile.LICENSE,.and.is........|.//.
13860 7c 20 61 76 61 69 6c 61 62 6c 65 20 61 74 20 74 68 72 6f 75 67 68 20 74 68 65 20 77 6f 72 6c 64 |.available.at.through.the.world
13880 2d 77 69 64 65 2d 77 65 62 20 61 74 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -wide-web.at....................
138a0 20 20 20 20 20 20 20 7c 0a 2f 2f 20 7c 20 68 74 74 70 3a 2f 2f 77 77 77 2e 70 68 70 2e 6e 65 74 .......|.//.|.http://www.php.net
138c0 2f 6c 69 63 65 6e 73 65 2f 32 5f 30 32 2e 74 78 74 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 /license/2_02.txt...............
138e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 2f 2f 20 7c 20 49 66 20 79 6f 75 ...................|.//.|.If.you
13900 20 64 69 64 20 6e 6f 74 20 72 65 63 65 69 76 65 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 50 .did.not.receive.a.copy.of.the.P
13920 48 50 20 6c 69 63 65 6e 73 65 20 61 6e 64 20 61 72 65 20 75 6e 61 62 6c 65 20 74 6f 20 20 20 7c HP.license.and.are.unable.to...|
13940 0a 2f 2f 20 7c 20 6f 62 74 61 69 6e 20 69 74 20 74 68 72 6f 75 67 68 20 74 68 65 20 77 6f 72 6c .//.|.obtain.it.through.the.worl
13960 64 2d 77 69 64 65 2d 77 65 62 2c 20 70 6c 65 61 73 65 20 73 65 6e 64 20 61 20 6e 6f 74 65 20 74 d-wide-web,.please.send.a.note.t
13980 6f 20 20 20 20 20 20 20 20 20 20 7c 0a 2f 2f 20 7c 20 6c 69 63 65 6e 73 65 40 70 68 70 2e 6e 65 o..........|.//.|.license@php.ne
139a0 74 20 73 6f 20 77 65 20 63 61 6e 20 6d 61 69 6c 20 79 6f 75 20 61 20 63 6f 70 79 20 69 6d 6d 65 t.so.we.can.mail.you.a.copy.imme
139c0 64 69 61 74 65 6c 79 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 2f 2f 20 2b 2d 2d 2d diately................|.//.+---
139e0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
13a00 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
13a20 2d 2d 2d 2b 0a 2f 2f 20 7c 20 41 75 74 68 6f 72 3a 20 54 6f 6d 61 73 20 56 2e 56 2e 43 6f 78 20 ---+.//.|.Author:.Tomas.V.V.Cox.
13a40 3c 63 6f 78 40 69 64 65 63 6e 65 74 2e 63 6f 6d 3e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 <cox@idecnet.com>...............
13a60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 2f 2f 20 2b 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ...............|.//.+-----------
13a80 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
13aa0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2b 0a 2f 2f 0a ---------------------------+.//.
13ac0 2f 2f 20 24 49 64 3a 20 64 62 61 73 65 2e 70 68 70 2c 76 20 31 2e 34 20 32 30 30 33 2f 30 35 2f //.$Id:.dbase.php,v.1.4.2003/05/
13ae0 30 37 20 31 36 3a 35 38 3a 32 38 20 6d 6a 20 45 78 70 20 24 0a 2f 2f 0a 2f 2f 20 44 61 74 61 62 07.16:58:28.mj.Exp.$.//.//.Datab
13b00 61 73 65 20 69 6e 64 65 70 65 6e 64 65 6e 74 20 71 75 65 72 79 20 69 6e 74 65 72 66 61 63 65 20 ase.independent.query.interface.
13b20 64 65 66 69 6e 69 74 69 6f 6e 20 66 6f 72 20 50 48 50 27 73 20 64 62 61 73 65 0a 2f 2f 20 65 78 definition.for.PHP's.dbase.//.ex
13b40 74 65 6e 73 69 6f 6e 2e 0a 2f 2f 0a 2f 2f 20 58 58 58 20 6c 65 67 65 6e 64 3a 0a 2f 2f 20 20 59 tension..//.//.XXX.legend:.//..Y
13b60 6f 75 20 68 61 76 65 20 74 6f 20 63 6f 6d 70 69 6c 65 20 79 6f 75 72 20 50 48 50 20 77 69 74 68 ou.have.to.compile.your.PHP.with
13b80 20 74 68 65 20 2d 2d 65 6e 61 62 6c 65 2d 64 62 61 73 65 20 6f 70 74 69 6f 6e 0a 2f 2f 0a 0a 72 .the.--enable-dbase.option.//..r
13ba0 65 71 75 69 72 65 5f 6f 6e 63 65 20 22 44 42 2f 63 6f 6d 6d 6f 6e 2e 70 68 70 22 3b 0a 0a 63 6c equire_once."DB/common.php";..cl
13bc0 61 73 73 20 44 42 5f 64 62 61 73 65 20 65 78 74 65 6e 64 73 20 44 42 5f 63 6f 6d 6d 6f 6e 0a 7b ass.DB_dbase.extends.DB_common.{
13be0 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 70 72 6f 70 65 72 74 69 65 73 0a 0a 20 20 20 20 76 61 72 20 .....//.{{{.properties......var.
13c00 24 63 6f 6e 6e 65 63 74 69 6f 6e 3b 0a 20 20 20 20 76 61 72 20 24 70 68 70 74 79 70 65 2c 20 24 $connection;.....var.$phptype,.$
13c20 64 62 73 79 6e 74 61 78 3b 0a 20 20 20 20 76 61 72 20 24 70 72 65 70 61 72 65 5f 74 6f 6b 65 6e dbsyntax;.....var.$prepare_token
13c40 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 20 20 20 20 76 61 72 20 24 70 72 65 70 61 72 65 5f 74 79 s.=.array();.....var.$prepare_ty
13c60 70 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 20 20 20 20 76 61 72 20 24 74 72 61 6e 73 61 63 74 pes.=.array();.....var.$transact
13c80 69 6f 6e 5f 6f 70 63 6f 75 6e 74 20 3d 20 30 3b 0a 20 20 20 20 76 61 72 20 24 72 65 73 5f 72 6f ion_opcount.=.0;.....var.$res_ro
13ca0 77 20 3d 20 61 72 72 61 79 28 29 3b 0a 20 20 20 20 76 61 72 20 24 72 65 73 75 6c 74 20 3d 20 30 w.=.array();.....var.$result.=.0
13cc0 3b 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 63 6f 6e 73 74 72 75 ;......//.}}}.....//.{{{.constru
13ce0 63 74 6f 72 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 44 42 5f 6d 79 73 71 6c 20 63 6f ctor....../**......*.DB_mysql.co
13d00 6e 73 74 72 75 63 74 6f 72 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 61 63 63 65 73 73 nstructor.......*......*.@access
13d20 20 70 75 62 6c 69 63 0a 20 20 20 20 20 2a 2f 0a 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 44 42 .public......*/......function.DB
13d40 5f 64 62 61 73 65 28 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 44 42 _dbase().....{.........$this->DB
13d60 5f 63 6f 6d 6d 6f 6e 28 29 3b 0a 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 70 68 70 74 79 70 _common();.........$this->phptyp
13d80 65 20 3d 20 27 64 62 61 73 65 27 3b 0a 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 64 62 73 79 e.=.'dbase';.........$this->dbsy
13da0 6e 74 61 78 20 3d 20 27 64 62 61 73 65 27 3b 0a 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 66 ntax.=.'dbase';.........$this->f
13dc0 65 61 74 75 72 65 73 20 3d 20 61 72 72 61 79 28 0a 20 20 20 20 20 20 20 20 20 20 20 20 27 70 72 eatures.=.array(.............'pr
13de0 65 70 61 72 65 27 20 20 20 20 20 20 20 3d 3e 20 66 61 6c 73 65 2c 0a 20 20 20 20 20 20 20 20 20 epare'.......=>.false,..........
13e00 20 20 20 27 70 63 6f 6e 6e 65 63 74 27 20 20 20 20 20 20 3d 3e 20 66 61 6c 73 65 2c 0a 20 20 20 ...'pconnect'......=>.false,....
13e20 20 20 20 20 20 20 20 20 20 27 74 72 61 6e 73 61 63 74 69 6f 6e 73 27 20 20 3d 3e 20 66 61 6c 73 .........'transactions'..=>.fals
13e40 65 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 27 6c 69 6d 69 74 27 20 20 20 20 20 20 20 20 20 3d e,.............'limit'.........=
13e60 3e 20 66 61 6c 73 65 0a 20 20 20 20 20 20 20 20 29 3b 0a 20 20 20 20 20 20 20 20 24 74 68 69 73 >.false.........);.........$this
13e80 2d 3e 65 72 72 6f 72 63 6f 64 65 5f 6d 61 70 20 3d 20 61 72 72 61 79 28 29 3b 0a 20 20 20 20 7d ->errorcode_map.=.array();.....}
13ea0 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 63 6f 6e 6e 65 63 74 28 ......//.}}}.....//.{{{.connect(
13ec0 29 0a 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6e 6e 65 63 74 28 24 64 73 6e 69 6e 66 6f )......function.connect($dsninfo
13ee0 2c 20 24 70 65 72 73 69 73 74 65 6e 74 20 3d 20 66 61 6c 73 65 29 0a 20 20 20 20 7b 0a 20 20 20 ,.$persistent.=.false).....{....
13f00 20 20 20 20 20 69 66 20 28 21 44 42 3a 3a 61 73 73 65 72 74 45 78 74 65 6e 73 69 6f 6e 28 27 64 .....if.(!DB::assertExtension('d
13f20 62 61 73 65 27 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 base')).{.............return.$th
13f40 69 73 2d 3e 72 61 69 73 65 45 72 72 6f 72 28 44 42 5f 45 52 52 4f 52 5f 45 58 54 45 4e 53 49 4f is->raiseError(DB_ERROR_EXTENSIO
13f60 4e 5f 4e 4f 54 5f 46 4f 55 4e 44 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 N_NOT_FOUND);.........}.........
13f80 24 74 68 69 73 2d 3e 64 73 6e 20 3d 20 24 64 73 6e 69 6e 66 6f 3b 0a 20 20 20 20 20 20 20 20 6f $this->dsn.=.$dsninfo;.........o
13fa0 62 5f 73 74 61 72 74 28 29 3b 0a 20 20 20 20 20 20 20 20 24 63 6f 6e 6e 20 20 3d 20 64 62 61 73 b_start();.........$conn..=.dbas
13fc0 65 5f 6f 70 65 6e 28 24 64 73 6e 69 6e 66 6f 5b 27 64 61 74 61 62 61 73 65 27 5d 2c 20 30 29 3b e_open($dsninfo['database'],.0);
13fe0 0a 20 20 20 20 20 20 20 20 24 65 72 72 6f 72 20 3d 20 6f 62 5f 67 65 74 5f 63 6f 6e 74 65 6e 74 .........$error.=.ob_get_content
14000 73 28 29 3b 0a 20 20 20 20 20 20 20 20 6f 62 5f 65 6e 64 5f 63 6c 65 61 6e 28 29 3b 0a 20 20 20 s();.........ob_end_clean();....
14020 20 20 20 20 20 69 66 20 28 21 24 63 6f 6e 6e 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 .....if.(!$conn).{.............r
14040 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 61 69 73 65 45 72 72 6f 72 28 44 42 5f 45 52 52 4f 52 eturn.$this->raiseError(DB_ERROR
14060 5f 43 4f 4e 4e 45 43 54 5f 46 41 49 4c 45 44 2c 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 20 20 20 _CONNECT_FAILED,.null,..........
14080 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 75 6c 6c ............................null
140a0 2c 20 6e 75 6c 6c 2c 20 73 74 72 69 70 5f 74 61 67 73 28 24 65 72 72 6f 72 29 29 3b 0a 20 20 20 ,.null,.strip_tags($error));....
140c0 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 63 6f 6e 6e 65 63 74 69 6f 6e .....}.........$this->connection
140e0 20 3d 20 24 63 6f 6e 6e 3b 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 44 42 5f 4f 4b 3b 0a .=.$conn;.........return.DB_OK;.
14100 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 64 69 73 ....}......//.}}}.....//.{{{.dis
14120 63 6f 6e 6e 65 63 74 28 29 0a 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 64 69 73 63 6f 6e 6e 65 connect()......function.disconne
14140 63 74 28 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 24 72 65 74 20 3d 20 64 62 61 73 65 5f ct().....{.........$ret.=.dbase_
14160 63 6c 6f 73 65 28 24 74 68 69 73 2d 3e 63 6f 6e 6e 65 63 74 69 6f 6e 29 3b 0a 20 20 20 20 20 20 close($this->connection);.......
14180 20 20 24 74 68 69 73 2d 3e 63 6f 6e 6e 65 63 74 69 6f 6e 20 3d 20 6e 75 6c 6c 3b 0a 20 20 20 20 ..$this->connection.=.null;.....
141a0 20 20 20 20 72 65 74 75 72 6e 20 24 72 65 74 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d ....return.$ret;.....}......//.}
141c0 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 26 71 75 65 72 79 28 29 0a 0a 20 20 20 20 66 75 6e 63 }}.....//.{{{.&query()......func
141e0 74 69 6f 6e 20 26 71 75 65 72 79 28 24 71 75 65 72 79 20 3d 20 6e 75 6c 6c 29 0a 20 20 20 20 7b tion.&query($query.=.null).....{
14200 0a 20 20 20 20 20 20 20 20 2f 2f 20 65 6d 75 6c 61 74 65 20 72 65 73 75 6c 74 20 72 65 73 6f 75 .........//.emulate.result.resou
14220 72 63 65 73 0a 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 72 65 73 5f 72 6f 77 5b 24 74 68 69 rces.........$this->res_row[$thi
14240 73 2d 3e 72 65 73 75 6c 74 5d 20 3d 20 30 3b 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 6e s->result].=.0;.........return.n
14260 65 77 20 44 42 5f 72 65 73 75 6c 74 28 24 74 68 69 73 2c 20 24 74 68 69 73 2d 3e 72 65 73 75 6c ew.DB_result($this,.$this->resul
14280 74 2b 2b 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b t++);.....}......//.}}}.....//.{
142a0 7b 7b 20 66 65 74 63 68 49 6e 74 6f 28 29 0a 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 66 65 74 {{.fetchInto()......function.fet
142c0 63 68 49 6e 74 6f 28 24 72 65 73 2c 20 26 24 72 6f 77 2c 20 24 66 65 74 63 68 6d 6f 64 65 2c 20 chInto($res,.&$row,.$fetchmode,.
142e0 24 72 6f 77 6e 75 6d 20 3d 20 6e 75 6c 6c 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 69 66 $rownum.=.null).....{.........if
14300 20 28 24 72 6f 77 6e 75 6d 20 3d 3d 3d 20 6e 75 6c 6c 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 .($rownum.===.null).{...........
14320 20 20 24 72 6f 77 6e 75 6d 20 3d 20 24 74 68 69 73 2d 3e 72 65 73 5f 72 6f 77 5b 24 72 65 73 5d ..$rownum.=.$this->res_row[$res]
14340 2b 2b 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 69 66 20 28 24 66 65 74 63 68 ++;.........}.........if.($fetch
14360 6d 6f 64 65 20 26 20 44 42 5f 46 45 54 43 48 4d 4f 44 45 5f 41 53 53 4f 43 29 20 7b 0a 20 20 20 mode.&.DB_FETCHMODE_ASSOC).{....
14380 20 20 20 20 20 20 20 20 20 24 72 6f 77 20 3d 20 40 64 62 61 73 65 5f 67 65 74 5f 72 65 63 6f 72 .........$row.=.@dbase_get_recor
143a0 64 5f 77 69 74 68 5f 6e 61 6d 65 73 28 24 74 68 69 73 2d 3e 63 6f 6e 6e 65 63 74 69 6f 6e 2c 20 d_with_names($this->connection,.
143c0 24 72 6f 77 6e 75 6d 29 3b 0a 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 $rownum);.........}.else.{......
143e0 20 20 20 20 20 20 20 24 72 6f 77 20 3d 20 40 64 62 61 73 65 5f 67 65 74 5f 72 65 63 6f 72 64 28 .......$row.=.@dbase_get_record(
14400 24 74 68 69 73 2d 3e 63 6f 6e 6e 65 63 74 69 6f 6e 2c 20 24 72 6f 77 6e 75 6d 29 3b 0a 20 20 20 $this->connection,.$rownum);....
14420 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 69 66 20 28 21 24 72 6f 77 29 20 7b 0a 20 20 20 20 .....}.........if.(!$row).{.....
14440 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 6e 75 6c 6c 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 ........return.null;.........}..
14460 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 44 42 5f 4f 4b 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 .......return.DB_OK;.....}......
14480 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 6e 75 6d 43 6f 6c 73 28 29 0a 0a 20 20 20 //.}}}.....//.{{{.numCols().....
144a0 20 66 75 6e 63 74 69 6f 6e 20 6e 75 6d 43 6f 6c 73 28 24 66 6f 6f 29 0a 20 20 20 20 7b 0a 20 20 .function.numCols($foo).....{...
144c0 20 20 20 20 20 20 72 65 74 75 72 6e 20 64 62 61 73 65 5f 6e 75 6d 66 69 65 6c 64 73 28 24 74 68 ......return.dbase_numfields($th
144e0 69 73 2d 3e 63 6f 6e 6e 65 63 74 69 6f 6e 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d is->connection);.....}......//.}
14500 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 6e 75 6d 52 6f 77 73 28 29 0a 0a 20 20 20 20 66 75 6e }}.....//.{{{.numRows()......fun
14520 63 74 69 6f 6e 20 6e 75 6d 52 6f 77 73 28 24 66 6f 6f 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 ction.numRows($foo).....{.......
14540 20 20 72 65 74 75 72 6e 20 64 62 61 73 65 5f 6e 75 6d 72 65 63 6f 72 64 73 28 24 74 68 69 73 2d ..return.dbase_numrecords($this-
14560 3e 63 6f 6e 6e 65 63 74 69 6f 6e 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a >connection);.....}......//.}}}.
14580 0a 7d 0a 3f 3e 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .}.?>...........................
145a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
145c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
145e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14600 44 42 2d 31 2e 35 2e 30 52 43 31 2f 44 42 2f 66 62 73 71 6c 2e 70 68 70 00 00 00 00 00 00 00 00 DB-1.5.0RC1/DB/fbsql.php........
14620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14660 00 00 00 00 31 30 30 36 34 34 20 00 20 20 20 37 36 34 20 00 20 20 20 31 34 34 20 00 20 20 20 20 ....100644.....764.....144......
14680 20 20 34 31 33 30 34 20 20 37 36 37 31 34 33 36 32 34 37 20 20 20 37 36 32 31 20 00 00 00 00 00 ..41304..7671436247...7621......
146a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
146c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
146e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
147a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
147c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
147e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14800 3c 3f 70 68 70 0a 2f 2a 20 76 69 6d 3a 20 73 65 74 20 65 78 70 61 6e 64 74 61 62 20 74 61 62 73 <?php./*.vim:.set.expandtab.tabs
14820 74 6f 70 3d 34 20 73 68 69 66 74 77 69 64 74 68 3d 34 20 66 6f 6c 64 6d 65 74 68 6f 64 3d 6d 61 top=4.shiftwidth=4.foldmethod=ma
14840 72 6b 65 72 3a 20 2a 2f 0a 2f 2f 20 2b 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d rker:.*/.//.+-------------------
14860 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
14880 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2b 0a 2f 2f 20 7c 20 50 48 50 20 56 65 -------------------+.//.|.PHP.Ve
148a0 72 73 69 6f 6e 20 34 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 rsion.4.........................
148c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c ...............................|
148e0 0a 2f 2f 20 2b 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d .//.+---------------------------
14900 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
14920 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2b 0a 2f 2f 20 7c 20 43 6f 70 79 72 69 67 68 74 20 28 63 29 20 -----------+.//.|.Copyright.(c).
14940 31 39 39 37 2d 32 30 30 33 20 54 68 65 20 50 48 50 20 47 72 6f 75 70 20 20 20 20 20 20 20 20 20 1997-2003.The.PHP.Group.........
14960 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 2f 2f 20 2b 2d 2d 2d .......................|.//.+---
14980 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
149a0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
149c0 2d 2d 2d 2b 0a 2f 2f 20 7c 20 54 68 69 73 20 73 6f 75 72 63 65 20 66 69 6c 65 20 69 73 20 73 75 ---+.//.|.This.source.file.is.su
149e0 62 6a 65 63 74 20 74 6f 20 76 65 72 73 69 6f 6e 20 32 2e 30 32 20 6f 66 20 74 68 65 20 50 48 50 bject.to.version.2.02.of.the.PHP
14a00 20 6c 69 63 65 6e 73 65 2c 20 20 20 20 20 20 7c 0a 2f 2f 20 7c 20 74 68 61 74 20 69 73 20 62 75 .license,......|.//.|.that.is.bu
14a20 6e 64 6c 65 64 20 77 69 74 68 20 74 68 69 73 20 70 61 63 6b 61 67 65 20 69 6e 20 74 68 65 20 66 ndled.with.this.package.in.the.f
14a40 69 6c 65 20 4c 49 43 45 4e 53 45 2c 20 61 6e 64 20 69 73 20 20 20 20 20 20 20 20 7c 0a 2f 2f 20 ile.LICENSE,.and.is........|.//.
14a60 7c 20 61 76 61 69 6c 61 62 6c 65 20 61 74 20 74 68 72 6f 75 67 68 20 74 68 65 20 77 6f 72 6c 64 |.available.at.through.the.world
14a80 2d 77 69 64 65 2d 77 65 62 20 61 74 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -wide-web.at....................
14aa0 20 20 20 20 20 20 20 7c 0a 2f 2f 20 7c 20 68 74 74 70 3a 2f 2f 77 77 77 2e 70 68 70 2e 6e 65 74 .......|.//.|.http://www.php.net
14ac0 2f 6c 69 63 65 6e 73 65 2f 32 5f 30 32 2e 74 78 74 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 /license/2_02.txt...............
14ae0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 2f 2f 20 7c 20 49 66 20 79 6f 75 ...................|.//.|.If.you
14b00 20 64 69 64 20 6e 6f 74 20 72 65 63 65 69 76 65 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 50 .did.not.receive.a.copy.of.the.P
14b20 48 50 20 6c 69 63 65 6e 73 65 20 61 6e 64 20 61 72 65 20 75 6e 61 62 6c 65 20 74 6f 20 20 20 7c HP.license.and.are.unable.to...|
14b40 0a 2f 2f 20 7c 20 6f 62 74 61 69 6e 20 69 74 20 74 68 72 6f 75 67 68 20 74 68 65 20 77 6f 72 6c .//.|.obtain.it.through.the.worl
14b60 64 2d 77 69 64 65 2d 77 65 62 2c 20 70 6c 65 61 73 65 20 73 65 6e 64 20 61 20 6e 6f 74 65 20 74 d-wide-web,.please.send.a.note.t
14b80 6f 20 20 20 20 20 20 20 20 20 20 7c 0a 2f 2f 20 7c 20 6c 69 63 65 6e 73 65 40 70 68 70 2e 6e 65 o..........|.//.|.license@php.ne
14ba0 74 20 73 6f 20 77 65 20 63 61 6e 20 6d 61 69 6c 20 79 6f 75 20 61 20 63 6f 70 79 20 69 6d 6d 65 t.so.we.can.mail.you.a.copy.imme
14bc0 64 69 61 74 65 6c 79 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 2f 2f 20 2b 2d 2d 2d diately................|.//.+---
14be0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
14c00 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
14c20 2d 2d 2d 2b 0a 2f 2f 20 7c 20 41 75 74 68 6f 72 3a 20 46 72 61 6e 6b 20 4d 2e 20 4b 72 6f 6d 61 ---+.//.|.Author:.Frank.M..Kroma
14c40 6e 6e 20 3c 66 72 61 6e 6b 40 66 72 6f 6e 74 62 61 73 65 2e 63 6f 6d 3e 20 20 20 20 20 20 20 20 nn.<frank@frontbase.com>........
14c60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 2f 2f 20 2b 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ...............|.//.+-----------
14c80 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
14ca0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2b 0a 2f 2f 0a ---------------------------+.//.
14cc0 2f 2f 20 24 49 64 3a 20 66 62 73 71 6c 2e 70 68 70 2c 76 20 31 2e 37 20 32 30 30 33 2f 30 36 2f //.$Id:.fbsql.php,v.1.7.2003/06/
14ce0 31 30 20 32 30 3a 31 36 3a 33 39 20 63 6f 78 20 45 78 70 20 24 0a 2f 2f 0a 2f 2f 20 44 61 74 61 10.20:16:39.cox.Exp.$.//.//.Data
14d00 62 61 73 65 20 69 6e 64 65 70 65 6e 64 65 6e 74 20 71 75 65 72 79 20 69 6e 74 65 72 66 61 63 65 base.independent.query.interface
14d20 20 64 65 66 69 6e 69 74 69 6f 6e 20 66 6f 72 20 50 48 50 27 73 20 46 72 6f 6e 74 42 61 73 65 0a .definition.for.PHP's.FrontBase.
14d40 2f 2f 20 65 78 74 65 6e 73 69 6f 6e 2e 0a 2f 2f 0a 0a 2f 2f 0a 2f 2f 20 58 58 58 20 6c 65 67 65 //.extension..//..//.//.XXX.lege
14d60 6e 64 3a 0a 2f 2f 0a 2f 2f 20 58 58 58 20 45 52 52 4f 52 4d 53 47 3a 20 54 68 65 20 65 72 72 6f nd:.//.//.XXX.ERRORMSG:.The.erro
14d80 72 20 6d 65 73 73 61 67 65 20 66 72 6f 6d 20 74 68 65 20 66 62 73 71 6c 20 66 75 6e 63 74 69 6f r.message.from.the.fbsql.functio
14da0 6e 20 73 68 6f 75 6c 64 0a 2f 2f 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 65 20 72 65 67 n.should.//...............be.reg
14dc0 69 73 74 65 72 65 64 20 68 65 72 65 2e 0a 2f 2f 0a 0a 72 65 71 75 69 72 65 5f 6f 6e 63 65 20 22 istered.here..//..require_once."
14de0 44 42 2f 63 6f 6d 6d 6f 6e 2e 70 68 70 22 3b 0a 0a 63 6c 61 73 73 20 44 42 5f 66 62 73 71 6c 20 DB/common.php";..class.DB_fbsql.
14e00 65 78 74 65 6e 64 73 20 44 42 5f 63 6f 6d 6d 6f 6e 0a 7b 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 70 extends.DB_common.{.....//.{{{.p
14e20 72 6f 70 65 72 74 69 65 73 0a 0a 20 20 20 20 76 61 72 20 24 63 6f 6e 6e 65 63 74 69 6f 6e 3b 0a roperties......var.$connection;.
14e40 20 20 20 20 76 61 72 20 24 70 68 70 74 79 70 65 2c 20 24 64 62 73 79 6e 74 61 78 3b 0a 20 20 20 ....var.$phptype,.$dbsyntax;....
14e60 20 76 61 72 20 24 70 72 65 70 61 72 65 5f 74 6f 6b 65 6e 73 20 3d 20 61 72 72 61 79 28 29 3b 0a .var.$prepare_tokens.=.array();.
14e80 20 20 20 20 76 61 72 20 24 70 72 65 70 61 72 65 5f 74 79 70 65 73 20 3d 20 61 72 72 61 79 28 29 ....var.$prepare_types.=.array()
14ea0 3b 0a 20 20 20 20 76 61 72 20 24 6e 75 6d 5f 72 6f 77 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 20 ;.....var.$num_rows.=.array();..
14ec0 20 20 20 76 61 72 20 24 66 65 74 63 68 6d 6f 64 65 20 3d 20 44 42 5f 46 45 54 43 48 4d 4f 44 45 ...var.$fetchmode.=.DB_FETCHMODE
14ee0 5f 4f 52 44 45 52 45 44 3b 20 2f 2a 20 44 65 66 61 75 6c 74 20 66 65 74 63 68 20 6d 6f 64 65 20 _ORDERED;./*.Default.fetch.mode.
14f00 2a 2f 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 63 6f 6e 73 74 72 */......//.}}}.....//.{{{.constr
14f20 75 63 74 6f 72 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 44 42 5f 66 62 73 71 6c 20 63 uctor....../**......*.DB_fbsql.c
14f40 6f 6e 73 74 72 75 63 74 6f 72 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 61 63 63 65 73 onstructor.......*......*.@acces
14f60 73 20 70 75 62 6c 69 63 0a 20 20 20 20 20 2a 2f 0a 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 44 s.public......*/......function.D
14f80 42 5f 66 62 73 71 6c 28 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 44 B_fbsql().....{.........$this->D
14fa0 42 5f 63 6f 6d 6d 6f 6e 28 29 3b 0a 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 70 68 70 74 79 B_common();.........$this->phpty
14fc0 70 65 20 3d 20 27 66 62 73 71 6c 27 3b 0a 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 64 62 73 pe.=.'fbsql';.........$this->dbs
14fe0 79 6e 74 61 78 20 3d 20 27 66 62 73 71 6c 27 3b 0a 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e yntax.=.'fbsql';.........$this->
15000 66 65 61 74 75 72 65 73 20 3d 20 61 72 72 61 79 28 0a 20 20 20 20 20 20 20 20 20 20 20 20 27 70 features.=.array(.............'p
15020 72 65 70 61 72 65 27 20 3d 3e 20 66 61 6c 73 65 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 27 70 repare'.=>.false,.............'p
15040 63 6f 6e 6e 65 63 74 27 20 3d 3e 20 74 72 75 65 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 27 74 connect'.=>.true,.............'t
15060 72 61 6e 73 61 63 74 69 6f 6e 73 27 20 3d 3e 20 74 72 75 65 2c 0a 20 20 20 20 20 20 20 20 20 20 ransactions'.=>.true,...........
15080 20 20 27 6c 69 6d 69 74 27 20 3d 3e 20 27 65 6d 75 6c 61 74 65 27 0a 20 20 20 20 20 20 20 20 29 ..'limit'.=>.'emulate'.........)
150a0 3b 0a 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 65 72 72 6f 72 63 6f 64 65 5f 6d 61 70 20 3d ;.........$this->errorcode_map.=
150c0 20 61 72 72 61 79 28 0a 20 20 20 20 20 20 20 20 20 20 20 20 31 30 30 34 20 3d 3e 20 44 42 5f 45 .array(.............1004.=>.DB_E
150e0 52 52 4f 52 5f 43 41 4e 4e 4f 54 5f 43 52 45 41 54 45 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 RROR_CANNOT_CREATE,.............
15100 31 30 30 35 20 3d 3e 20 44 42 5f 45 52 52 4f 52 5f 43 41 4e 4e 4f 54 5f 43 52 45 41 54 45 2c 0a 1005.=>.DB_ERROR_CANNOT_CREATE,.
15120 20 20 20 20 20 20 20 20 20 20 20 20 31 30 30 36 20 3d 3e 20 44 42 5f 45 52 52 4f 52 5f 43 41 4e ............1006.=>.DB_ERROR_CAN
15140 4e 4f 54 5f 43 52 45 41 54 45 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 31 30 30 37 20 3d 3e 20 NOT_CREATE,.............1007.=>.
15160 44 42 5f 45 52 52 4f 52 5f 41 4c 52 45 41 44 59 5f 45 58 49 53 54 53 2c 0a 20 20 20 20 20 20 20 DB_ERROR_ALREADY_EXISTS,........
15180 20 20 20 20 20 31 30 30 38 20 3d 3e 20 44 42 5f 45 52 52 4f 52 5f 43 41 4e 4e 4f 54 5f 44 52 4f .....1008.=>.DB_ERROR_CANNOT_DRO
151a0 50 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 31 30 34 36 20 3d 3e 20 44 42 5f 45 52 52 4f 52 5f P,.............1046.=>.DB_ERROR_
151c0 4e 4f 44 42 53 45 4c 45 43 54 45 44 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 31 30 35 30 20 3d NODBSELECTED,.............1050.=
151e0 3e 20 44 42 5f 45 52 52 4f 52 5f 41 4c 52 45 41 44 59 5f 45 58 49 53 54 53 2c 0a 20 20 20 20 20 >.DB_ERROR_ALREADY_EXISTS,......
15200 20 20 20 20 20 20 20 31 30 35 31 20 3d 3e 20 44 42 5f 45 52 52 4f 52 5f 4e 4f 53 55 43 48 54 41 .......1051.=>.DB_ERROR_NOSUCHTA
15220 42 4c 45 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 31 30 35 34 20 3d 3e 20 44 42 5f 45 52 52 4f BLE,.............1054.=>.DB_ERRO
15240 52 5f 4e 4f 53 55 43 48 46 49 45 4c 44 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 31 30 36 32 20 R_NOSUCHFIELD,.............1062.
15260 3d 3e 20 44 42 5f 45 52 52 4f 52 5f 41 4c 52 45 41 44 59 5f 45 58 49 53 54 53 2c 0a 20 20 20 20 =>.DB_ERROR_ALREADY_EXISTS,.....
15280 20 20 20 20 20 20 20 20 31 30 36 34 20 3d 3e 20 44 42 5f 45 52 52 4f 52 5f 53 59 4e 54 41 58 2c ........1064.=>.DB_ERROR_SYNTAX,
152a0 0a 20 20 20 20 20 20 20 20 20 20 20 20 31 31 30 30 20 3d 3e 20 44 42 5f 45 52 52 4f 52 5f 4e 4f .............1100.=>.DB_ERROR_NO
152c0 54 5f 4c 4f 43 4b 45 44 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 31 31 33 36 20 3d 3e 20 44 42 T_LOCKED,.............1136.=>.DB
152e0 5f 45 52 52 4f 52 5f 56 41 4c 55 45 5f 43 4f 55 4e 54 5f 4f 4e 5f 52 4f 57 2c 0a 20 20 20 20 20 _ERROR_VALUE_COUNT_ON_ROW,......
15300 20 20 20 20 20 20 20 31 31 34 36 20 3d 3e 20 44 42 5f 45 52 52 4f 52 5f 4e 4f 53 55 43 48 54 41 .......1146.=>.DB_ERROR_NOSUCHTA
15320 42 4c 45 2c 0a 20 20 20 20 20 20 20 20 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d BLE,.........);.....}......//.}}
15340 7d 0a 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 63 6f 6e 6e 65 63 74 28 29 0a 0a 20 20 20 20 2f 2a 2a }......//.{{{.connect()....../**
15360 0a 20 20 20 20 20 2a 20 43 6f 6e 6e 65 63 74 20 74 6f 20 61 20 64 61 74 61 62 61 73 65 20 61 6e ......*.Connect.to.a.database.an
15380 64 20 6c 6f 67 20 69 6e 20 61 73 20 74 68 65 20 73 70 65 63 69 66 69 65 64 20 75 73 65 72 2e 0a d.log.in.as.the.specified.user..
153a0 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 24 64 73 6e 20 74 68 65 20 64 61 .....*......*.@param.$dsn.the.da
153c0 74 61 20 73 6f 75 72 63 65 20 6e 61 6d 65 20 28 73 65 65 20 44 42 3a 3a 70 61 72 73 65 44 53 4e ta.source.name.(see.DB::parseDSN
153e0 20 66 6f 72 20 73 79 6e 74 61 78 29 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 24 70 65 72 73 .for.syntax)......*.@param.$pers
15400 69 73 74 65 6e 74 20 28 6f 70 74 69 6f 6e 61 6c 29 20 77 68 65 74 68 65 72 20 74 68 65 20 63 6f istent.(optional).whether.the.co
15420 6e 6e 65 63 74 69 6f 6e 20 73 68 6f 75 6c 64 0a 20 20 20 20 20 2a 20 20 20 20 20 20 20 20 62 65 nnection.should......*........be
15440 20 70 65 72 73 69 73 74 65 6e 74 0a 20 20 20 20 20 2a 20 40 61 63 63 65 73 73 20 70 75 62 6c 69 .persistent......*.@access.publi
15460 63 0a 20 20 20 20 20 2a 20 40 72 65 74 75 72 6e 20 69 6e 74 20 44 42 5f 4f 4b 20 6f 6e 20 73 75 c......*.@return.int.DB_OK.on.su
15480 63 63 65 73 73 2c 20 61 20 44 42 20 65 72 72 6f 72 20 6f 6e 20 66 61 69 6c 75 72 65 0a 20 20 20 ccess,.a.DB.error.on.failure....
154a0 20 20 2a 2f 0a 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6e 6e 65 63 74 28 24 64 73 6e 69 ..*/......function.connect($dsni
154c0 6e 66 6f 2c 20 24 70 65 72 73 69 73 74 65 6e 74 20 3d 20 66 61 6c 73 65 29 0a 20 20 20 20 7b 0a nfo,.$persistent.=.false).....{.
154e0 20 20 20 20 20 20 20 20 69 66 20 28 21 44 42 3a 3a 61 73 73 65 72 74 45 78 74 65 6e 73 69 6f 6e ........if.(!DB::assertExtension
15500 28 27 66 62 73 71 6c 27 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 ('fbsql')).............return.$t
15520 68 69 73 2d 3e 72 61 69 73 65 45 72 72 6f 72 28 44 42 5f 45 52 52 4f 52 5f 45 58 54 45 4e 53 49 his->raiseError(DB_ERROR_EXTENSI
15540 4f 4e 5f 4e 4f 54 5f 46 4f 55 4e 44 29 3b 0a 0a 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 64 ON_NOT_FOUND);..........$this->d
15560 73 6e 20 3d 20 24 64 73 6e 69 6e 66 6f 3b 0a 20 20 20 20 20 20 20 20 24 64 62 68 6f 73 74 20 3d sn.=.$dsninfo;.........$dbhost.=
15580 20 24 64 73 6e 69 6e 66 6f 5b 27 68 6f 73 74 73 70 65 63 27 5d 20 3f 20 24 64 73 6e 69 6e 66 6f .$dsninfo['hostspec'].?.$dsninfo
155a0 5b 27 68 6f 73 74 73 70 65 63 27 5d 20 3a 20 27 6c 6f 63 61 6c 68 6f 73 74 27 3b 0a 20 20 20 20 ['hostspec'].:.'localhost';.....
155c0 20 20 20 20 24 75 73 65 72 20 3d 20 24 64 73 6e 69 6e 66 6f 5b 27 75 73 65 72 6e 61 6d 65 27 5d ....$user.=.$dsninfo['username']
155e0 3b 0a 20 20 20 20 20 20 20 20 24 70 77 20 3d 20 24 64 73 6e 69 6e 66 6f 5b 27 70 61 73 73 77 6f ;.........$pw.=.$dsninfo['passwo
15600 72 64 27 5d 3b 0a 0a 20 20 20 20 20 20 20 20 24 63 6f 6e 6e 65 63 74 5f 66 75 6e 63 74 69 6f 6e rd'];..........$connect_function
15620 20 3d 20 24 70 65 72 73 69 73 74 65 6e 74 20 3f 20 27 66 62 73 71 6c 5f 70 63 6f 6e 6e 65 63 74 .=.$persistent.?.'fbsql_pconnect
15640 27 20 3a 20 27 66 62 73 71 6c 5f 63 6f 6e 6e 65 63 74 27 3b 0a 0a 20 20 20 20 20 20 20 20 69 66 '.:.'fbsql_connect';..........if
15660 20 28 24 64 62 68 6f 73 74 20 26 26 20 24 75 73 65 72 20 26 26 20 24 70 77 29 20 7b 0a 20 20 20 .($dbhost.&&.$user.&&.$pw).{....
15680 20 20 20 20 20 20 20 20 20 24 63 6f 6e 6e 20 3d 20 40 24 63 6f 6e 6e 65 63 74 5f 66 75 6e 63 74 .........$conn.=.@$connect_funct
156a0 69 6f 6e 28 24 64 62 68 6f 73 74 2c 20 24 75 73 65 72 2c 20 24 70 77 29 3b 0a 20 20 20 20 20 20 ion($dbhost,.$user,.$pw);.......
156c0 20 20 7d 20 65 6c 73 65 69 66 20 28 24 64 62 68 6f 73 74 20 26 26 20 24 75 73 65 72 29 20 7b 0a ..}.elseif.($dbhost.&&.$user).{.
156e0 20 20 20 20 20 20 20 20 20 20 20 20 24 63 6f 6e 6e 20 3d 20 40 24 63 6f 6e 6e 65 63 74 5f 66 75 ............$conn.=.@$connect_fu
15700 6e 63 74 69 6f 6e 28 24 64 62 68 6f 73 74 2c 20 24 75 73 65 72 29 3b 0a 20 20 20 20 20 20 20 20 nction($dbhost,.$user);.........
15720 7d 20 65 6c 73 65 69 66 20 28 24 64 62 68 6f 73 74 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 }.elseif.($dbhost).{............
15740 20 24 63 6f 6e 6e 20 3d 20 40 24 63 6f 6e 6e 65 63 74 5f 66 75 6e 63 74 69 6f 6e 28 24 64 62 68 .$conn.=.@$connect_function($dbh
15760 6f 73 74 29 3b 0a 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 20 20 ost);.........}.else.{..........
15780 20 20 20 24 63 6f 6e 6e 20 3d 20 66 61 6c 73 65 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 ...$conn.=.false;.........}.....
157a0 20 20 20 20 69 66 20 28 65 6d 70 74 79 28 24 63 6f 6e 6e 29 29 20 7b 0a 20 20 20 20 20 20 20 20 ....if.(empty($conn)).{.........
157c0 20 20 20 20 69 66 20 28 65 6d 70 74 79 28 24 70 68 70 5f 65 72 72 6f 72 6d 73 67 29 29 20 7b 0a ....if.(empty($php_errormsg)).{.
157e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 61 ................return.$this->ra
15800 69 73 65 45 72 72 6f 72 28 44 42 5f 45 52 52 4f 52 5f 43 4f 4e 4e 45 43 54 5f 46 41 49 4c 45 44 iseError(DB_ERROR_CONNECT_FAILED
15820 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 20 );.............}.else.{.........
15840 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 61 69 73 65 45 72 72 6f 72 ........return.$this->raiseError
15860 28 44 42 5f 45 52 52 4f 52 5f 43 4f 4e 4e 45 43 54 5f 46 41 49 4c 45 44 2c 20 6e 75 6c 6c 2c 20 (DB_ERROR_CONNECT_FAILED,.null,.
15880 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 null,...........................
158a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 75 6c 6c 2c 20 24 70 68 70 5f 65 72 72 6f 72 6d ...............null,.$php_errorm
158c0 73 67 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 sg);.............}.........}....
158e0 20 20 20 20 20 20 69 66 20 28 24 64 73 6e 69 6e 66 6f 5b 27 64 61 74 61 62 61 73 65 27 5d 29 20 ......if.($dsninfo['database']).
15900 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 21 66 62 73 71 6c 5f 73 65 6c 65 63 74 5f {.............if.(!fbsql_select_
15920 64 62 28 24 64 73 6e 69 6e 66 6f 5b 27 64 61 74 61 62 61 73 65 27 5d 2c 20 24 63 6f 6e 6e 29 29 db($dsninfo['database'],.$conn))
15940 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d .{.................return.$this-
15960 3e 66 62 73 71 6c 52 61 69 73 65 45 72 72 6f 72 28 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 >fbsqlRaiseError();.............
15980 7d 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 63 6f 6e 6e }.........}..........$this->conn
159a0 65 63 74 69 6f 6e 20 3d 20 24 63 6f 6e 6e 3b 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 44 ection.=.$conn;.........return.D
159c0 42 5f 4f 4b 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b B_OK;.....}......//.}}}.....//.{
159e0 7b 7b 20 64 69 73 63 6f 6e 6e 65 63 74 28 29 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 {{.disconnect()....../**......*.
15a00 4c 6f 67 20 6f 75 74 20 61 6e 64 20 64 69 73 63 6f 6e 6e 65 63 74 20 66 72 6f 6d 20 74 68 65 20 Log.out.and.disconnect.from.the.
15a20 64 61 74 61 62 61 73 65 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 61 63 63 65 73 73 20 database.......*......*.@access.
15a40 70 75 62 6c 69 63 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 72 65 74 75 72 6e 20 62 6f 6f public......*......*.@return.boo
15a60 6c 20 54 52 55 45 20 6f 6e 20 73 75 63 63 65 73 73 2c 20 46 41 4c 53 45 20 69 66 20 6e 6f 74 20 l.TRUE.on.success,.FALSE.if.not.
15a80 63 6f 6e 6e 65 63 74 65 64 2e 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 connected.......*/.....function.
15aa0 64 69 73 63 6f 6e 6e 65 63 74 28 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 24 72 65 74 20 disconnect().....{.........$ret.
15ac0 3d 20 66 62 73 71 6c 5f 63 6c 6f 73 65 28 24 74 68 69 73 2d 3e 63 6f 6e 6e 65 63 74 69 6f 6e 29 =.fbsql_close($this->connection)
15ae0 3b 0a 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 63 6f 6e 6e 65 63 74 69 6f 6e 20 3d 20 6e 75 ;.........$this->connection.=.nu
15b00 6c 6c 3b 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 72 65 74 3b 0a 20 20 20 20 7d 0a 0a ll;.........return.$ret;.....}..
15b20 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 73 69 6d 70 6c 65 51 75 65 72 ....//.}}}.....//.{{{.simpleQuer
15b40 79 28 29 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 53 65 6e 64 20 61 20 71 75 65 72 79 y()....../**......*.Send.a.query
15b60 20 74 6f 20 66 62 73 71 6c 20 61 6e 64 20 72 65 74 75 72 6e 20 74 68 65 20 72 65 73 75 6c 74 73 .to.fbsql.and.return.the.results
15b80 20 61 73 20 61 20 66 62 73 71 6c 20 72 65 73 6f 75 72 63 65 0a 20 20 20 20 20 2a 20 69 64 65 6e .as.a.fbsql.resource......*.iden
15ba0 74 69 66 69 65 72 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 74 68 65 tifier.......*......*.@param.the
15bc0 20 53 51 4c 20 71 75 65 72 79 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 61 63 63 65 73 73 .SQL.query......*......*.@access
15be0 20 70 75 62 6c 69 63 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 72 65 74 75 72 6e 20 6d 69 .public......*......*.@return.mi
15c00 78 65 64 20 72 65 74 75 72 6e 73 20 61 20 76 61 6c 69 64 20 66 62 73 71 6c 20 72 65 73 75 6c 74 xed.returns.a.valid.fbsql.result
15c20 20 66 6f 72 20 73 75 63 63 65 73 73 66 75 6c 20 53 45 4c 45 43 54 0a 20 20 20 20 20 2a 20 71 75 .for.successful.SELECT......*.qu
15c40 65 72 69 65 73 2c 20 44 42 5f 4f 4b 20 66 6f 72 20 6f 74 68 65 72 20 73 75 63 63 65 73 73 66 75 eries,.DB_OK.for.other.successfu
15c60 6c 20 71 75 65 72 69 65 73 2e 20 20 41 20 44 42 20 65 72 72 6f 72 20 69 73 0a 20 20 20 20 20 2a l.queries...A.DB.error.is......*
15c80 20 72 65 74 75 72 6e 65 64 20 6f 6e 20 66 61 69 6c 75 72 65 2e 0a 20 20 20 20 20 2a 2f 0a 20 20 .returned.on.failure.......*/...
15ca0 20 20 66 75 6e 63 74 69 6f 6e 20 73 69 6d 70 6c 65 51 75 65 72 79 28 24 71 75 65 72 79 29 0a 20 ..function.simpleQuery($query)..
15cc0 20 20 20 7b 0a 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 6c 61 73 74 5f 71 75 65 72 79 20 3d ...{.........$this->last_query.=
15ce0 20 24 71 75 65 72 79 3b 0a 20 20 20 20 20 20 20 20 24 71 75 65 72 79 20 3d 20 24 74 68 69 73 2d .$query;.........$query.=.$this-
15d00 3e 6d 6f 64 69 66 79 51 75 65 72 79 28 24 71 75 65 72 79 29 3b 0a 20 20 20 20 20 20 20 20 24 72 >modifyQuery($query);.........$r
15d20 65 73 75 6c 74 20 3d 20 40 66 62 73 71 6c 5f 71 75 65 72 79 28 22 24 71 75 65 72 79 3b 22 2c 20 esult.=.@fbsql_query("$query;",.
15d40 24 74 68 69 73 2d 3e 63 6f 6e 6e 65 63 74 69 6f 6e 29 3b 0a 20 20 20 20 20 20 20 20 69 66 20 28 $this->connection);.........if.(
15d60 21 24 72 65 73 75 6c 74 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 !$result).{.............return.$
15d80 74 68 69 73 2d 3e 66 62 73 71 6c 52 61 69 73 65 45 72 72 6f 72 28 29 3b 0a 20 20 20 20 20 20 20 this->fbsqlRaiseError();........
15da0 20 7d 0a 20 20 20 20 20 20 20 20 2f 2f 20 44 65 74 65 72 6d 69 6e 65 20 77 68 69 63 68 20 71 75 .}.........//.Determine.which.qu
15dc0 65 72 69 65 73 20 74 68 61 74 20 73 68 6f 75 6c 64 20 72 65 74 75 72 6e 20 64 61 74 61 2c 20 61 eries.that.should.return.data,.a
15de0 6e 64 20 77 68 69 63 68 0a 20 20 20 20 20 20 20 20 2f 2f 20 73 68 6f 75 6c 64 20 72 65 74 75 72 nd.which.........//.should.retur
15e00 6e 20 61 6e 20 65 72 72 6f 72 20 63 6f 64 65 20 6f 6e 6c 79 2e 0a 20 20 20 20 20 20 20 20 69 66 n.an.error.code.only..........if
15e20 20 28 44 42 3a 3a 69 73 4d 61 6e 69 70 28 24 71 75 65 72 79 29 29 20 7b 0a 20 20 20 20 20 20 20 .(DB::isManip($query)).{........
15e40 20 20 20 20 20 72 65 74 75 72 6e 20 44 42 5f 4f 4b 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 .....return.DB_OK;.........}....
15e60 20 20 20 20 20 24 6e 75 6d 72 6f 77 73 20 3d 20 24 74 68 69 73 2d 3e 6e 75 6d 72 6f 77 73 28 24 .....$numrows.=.$this->numrows($
15e80 72 65 73 75 6c 74 29 3b 0a 20 20 20 20 20 20 20 20 69 66 20 28 69 73 5f 6f 62 6a 65 63 74 28 24 result);.........if.(is_object($
15ea0 6e 75 6d 72 6f 77 73 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 numrows)).{.............return.$
15ec0 6e 75 6d 72 6f 77 73 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 24 74 68 69 73 numrows;.........}.........$this
15ee0 2d 3e 6e 75 6d 5f 72 6f 77 73 5b 24 72 65 73 75 6c 74 5d 20 3d 20 24 6e 75 6d 72 6f 77 73 3b 0a ->num_rows[$result].=.$numrows;.
15f00 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 72 65 73 75 6c 74 3b 0a 20 20 20 20 7d 0a 0a 20 ........return.$result;.....}...
15f20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 6e 65 78 74 52 65 73 75 6c 74 28 ...//.}}}.....//.{{{.nextResult(
15f40 29 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 4d 6f 76 65 20 74 68 65 20 69 6e 74 65 72 )....../**......*.Move.the.inter
15f60 6e 61 6c 20 66 62 73 71 6c 20 72 65 73 75 6c 74 20 70 6f 69 6e 74 65 72 20 74 6f 20 74 68 65 20 nal.fbsql.result.pointer.to.the.
15f80 6e 65 78 74 20 61 76 61 69 6c 61 62 6c 65 20 72 65 73 75 6c 74 0a 20 20 20 20 20 2a 0a 20 20 20 next.available.result......*....
15fa0 20 20 2a 20 40 70 61 72 61 6d 20 61 20 76 61 6c 69 64 20 66 62 73 71 6c 20 72 65 73 75 6c 74 20 ..*.@param.a.valid.fbsql.result.
15fc0 72 65 73 6f 75 72 63 65 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 61 63 63 65 73 73 20 70 resource......*......*.@access.p
15fe0 75 62 6c 69 63 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 72 65 74 75 72 6e 20 74 72 75 65 ublic......*......*.@return.true
16000 20 69 66 20 61 20 72 65 73 75 6c 74 20 69 73 20 61 76 61 69 6c 61 62 6c 65 20 6f 74 68 65 72 77 .if.a.result.is.available.otherw
16020 69 73 65 20 72 65 74 75 72 6e 20 66 61 6c 73 65 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 66 75 6e ise.return.false......*/.....fun
16040 63 74 69 6f 6e 20 6e 65 78 74 52 65 73 75 6c 74 28 24 72 65 73 75 6c 74 29 0a 20 20 20 20 7b 0a ction.nextResult($result).....{.
16060 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 40 66 62 73 71 6c 5f 6e 65 78 74 5f 72 65 73 75 6c ........return.@fbsql_next_resul
16080 74 28 24 72 65 73 75 6c 74 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 t($result);.....}......//.}}}...
160a0 20 20 2f 2f 20 7b 7b 7b 20 66 65 74 63 68 49 6e 74 6f 28 29 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 ..//.{{{.fetchInto()....../**...
160c0 20 20 20 2a 20 46 65 74 63 68 20 61 20 72 6f 77 20 61 6e 64 20 69 6e 73 65 72 74 20 74 68 65 20 ...*.Fetch.a.row.and.insert.the.
160e0 64 61 74 61 20 69 6e 74 6f 20 61 6e 20 65 78 69 73 74 69 6e 67 20 61 72 72 61 79 2e 0a 20 20 20 data.into.an.existing.array.....
16100 20 20 2a 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 24 72 65 73 75 6c 74 20 66 62 73 71 6c 20 ..*......*.@param.$result.fbsql.
16120 72 65 73 75 6c 74 20 69 64 65 6e 74 69 66 69 65 72 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 result.identifier......*.@param.
16140 24 61 72 72 20 28 72 65 66 65 72 65 6e 63 65 29 20 61 72 72 61 79 20 77 68 65 72 65 20 64 61 74 $arr.(reference).array.where.dat
16160 61 20 66 72 6f 6d 20 74 68 65 20 72 6f 77 20 69 73 20 73 74 6f 72 65 64 0a 20 20 20 20 20 2a 20 a.from.the.row.is.stored......*.
16180 40 70 61 72 61 6d 20 24 66 65 74 63 68 6d 6f 64 65 20 68 6f 77 20 74 68 65 20 61 72 72 61 79 20 @param.$fetchmode.how.the.array.
161a0 64 61 74 61 20 73 68 6f 75 6c 64 20 62 65 20 69 6e 64 65 78 65 64 0a 20 20 20 20 20 2a 20 40 70 data.should.be.indexed......*.@p
161c0 61 72 61 6d 20 20 20 24 72 6f 77 6e 75 6d 20 74 68 65 20 72 6f 77 20 6e 75 6d 62 65 72 20 74 6f aram...$rownum.the.row.number.to
161e0 20 66 65 74 63 68 0a 20 20 20 20 20 2a 20 40 61 63 63 65 73 73 20 70 75 62 6c 69 63 0a 20 20 20 .fetch......*.@access.public....
16200 20 20 2a 0a 20 20 20 20 20 2a 20 40 72 65 74 75 72 6e 20 69 6e 74 20 44 42 5f 4f 4b 20 6f 6e 20 ..*......*.@return.int.DB_OK.on.
16220 73 75 63 63 65 73 73 2c 20 61 20 44 42 20 65 72 72 6f 72 20 6f 6e 20 66 61 69 6c 75 72 65 0a 20 success,.a.DB.error.on.failure..
16240 20 20 20 20 2a 2f 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 66 65 74 63 68 49 6e 74 6f 28 24 72 ....*/.....function.fetchInto($r
16260 65 73 75 6c 74 2c 20 26 24 61 72 72 2c 20 24 66 65 74 63 68 6d 6f 64 65 2c 20 24 72 6f 77 6e 75 esult,.&$arr,.$fetchmode,.$rownu
16280 6d 3d 6e 75 6c 6c 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 69 66 20 28 24 72 6f 77 6e 75 m=null).....{.........if.($rownu
162a0 6d 20 21 3d 3d 20 6e 75 6c 6c 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 21 40 m.!==.null).{.............if.(!@
162c0 66 62 73 71 6c 5f 64 61 74 61 5f 73 65 65 6b 28 24 72 65 73 75 6c 74 2c 20 24 72 6f 77 6e 75 6d fbsql_data_seek($result,.$rownum
162e0 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 6e 75 6c 6c )).{.................return.null
16300 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 ;.............}.........}.......
16320 20 20 69 66 20 28 24 66 65 74 63 68 6d 6f 64 65 20 26 20 44 42 5f 46 45 54 43 48 4d 4f 44 45 5f ..if.($fetchmode.&.DB_FETCHMODE_
16340 41 53 53 4f 43 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 61 72 72 20 3d 20 40 66 62 73 ASSOC).{.............$arr.=.@fbs
16360 71 6c 5f 66 65 74 63 68 5f 61 72 72 61 79 28 24 72 65 73 75 6c 74 2c 20 46 42 53 51 4c 5f 41 53 ql_fetch_array($result,.FBSQL_AS
16380 53 4f 43 29 3b 0a 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 20 20 SOC);.........}.else.{..........
163a0 20 20 20 24 61 72 72 20 3d 20 40 66 62 73 71 6c 5f 66 65 74 63 68 5f 72 6f 77 28 24 72 65 73 75 ...$arr.=.@fbsql_fetch_row($resu
163c0 6c 74 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 69 66 20 28 21 24 61 72 72 lt);.........}.........if.(!$arr
163e0 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 65 72 72 6e 6f 20 3d 20 40 66 62 73 71 6c 5f ).{.............$errno.=.@fbsql_
16400 65 72 72 6e 6f 28 24 74 68 69 73 2d 3e 63 6f 6e 6e 65 63 74 69 6f 6e 29 3b 0a 20 20 20 20 20 20 errno($this->connection);.......
16420 20 20 20 20 20 20 69 66 20 28 21 24 65 72 72 6e 6f 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 ......if.(!$errno).{............
16440 20 20 20 20 20 72 65 74 75 72 6e 20 4e 55 4c 4c 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a .....return.NULL;.............}.
16460 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 66 62 73 71 6c 52 ............return.$this->fbsqlR
16480 61 69 73 65 45 72 72 6f 72 28 24 65 72 72 6e 6f 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 aiseError($errno);.........}....
164a0 20 20 20 20 20 72 65 74 75 72 6e 20 44 42 5f 4f 4b 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f .....return.DB_OK;.....}......//
164c0 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 66 72 65 65 52 65 73 75 6c 74 28 29 0a 0a 20 20 .}}}.....//.{{{.freeResult()....
164e0 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 46 72 65 65 20 74 68 65 20 69 6e 74 65 72 6e 61 6c 20 72 ../**......*.Free.the.internal.r
16500 65 73 6f 75 72 63 65 73 20 61 73 73 6f 63 69 61 74 65 64 20 77 69 74 68 20 24 72 65 73 75 6c 74 esources.associated.with.$result
16520 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 24 72 65 73 75 6c 74 20 66 .......*......*.@param.$result.f
16540 62 73 71 6c 20 72 65 73 75 6c 74 20 69 64 65 6e 74 69 66 69 65 72 20 6f 72 20 44 42 20 73 74 61 bsql.result.identifier.or.DB.sta
16560 74 65 6d 65 6e 74 20 69 64 65 6e 74 69 66 69 65 72 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 tement.identifier......*......*.
16580 40 61 63 63 65 73 73 20 70 75 62 6c 69 63 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 72 65 @access.public......*......*.@re
165a0 74 75 72 6e 20 62 6f 6f 6c 20 54 52 55 45 20 6f 6e 20 73 75 63 63 65 73 73 2c 20 46 41 4c 53 45 turn.bool.TRUE.on.success,.FALSE
165c0 20 69 66 20 24 72 65 73 75 6c 74 20 69 73 20 69 6e 76 61 6c 69 64 0a 20 20 20 20 20 2a 2f 0a 20 .if.$result.is.invalid......*/..
165e0 20 20 20 66 75 6e 63 74 69 6f 6e 20 66 72 65 65 52 65 73 75 6c 74 28 24 72 65 73 75 6c 74 29 0a ...function.freeResult($result).
16600 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 69 66 20 28 69 73 5f 72 65 73 6f 75 72 63 65 28 24 72 ....{.........if.(is_resource($r
16620 65 73 75 6c 74 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 66 62 73 esult)).{.............return.fbs
16640 71 6c 5f 66 72 65 65 5f 72 65 73 75 6c 74 28 24 72 65 73 75 6c 74 29 3b 0a 20 20 20 20 20 20 20 ql_free_result($result);........
16660 20 7d 0a 0a 20 20 20 20 20 20 20 20 69 66 20 28 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 70 72 .}..........if.(!isset($this->pr
16680 65 70 61 72 65 5f 74 6f 6b 65 6e 73 5b 28 69 6e 74 29 24 72 65 73 75 6c 74 5d 29 29 20 7b 0a 20 epare_tokens[(int)$result])).{..
166a0 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 20 20 20 20 20 20 20 ...........return.false;........
166c0 20 7d 0a 0a 20 20 20 20 20 20 20 20 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 70 72 65 70 61 72 65 .}..........unset($this->prepare
166e0 5f 74 6f 6b 65 6e 73 5b 28 69 6e 74 29 24 72 65 73 75 6c 74 5d 29 3b 0a 20 20 20 20 20 20 20 20 _tokens[(int)$result]);.........
16700 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 70 72 65 70 61 72 65 5f 74 79 70 65 73 5b 28 69 6e 74 29 unset($this->prepare_types[(int)
16720 24 72 65 73 75 6c 74 5d 29 3b 0a 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 74 72 75 65 3b $result]);..........return.true;
16740 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 61 75 .....}......//.}}}.....//.{{{.au
16760 74 6f 43 6f 6d 6d 69 74 28 29 0a 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 61 75 74 6f 43 6f 6d toCommit()......function.autoCom
16780 6d 69 74 28 24 6f 6e 6f 66 66 3d 66 61 6c 73 65 29 0a 20 20 20 20 7b 0a 20 20 20 20 09 69 66 20 mit($onoff=false).....{......if.
167a0 28 24 6f 6e 6f 66 66 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 71 75 ($onoff).{.............$this->qu
167c0 65 72 79 28 22 53 45 54 20 43 4f 4d 4d 49 54 20 54 52 55 45 22 29 3b 0a 20 20 20 20 09 7d 20 65 ery("SET.COMMIT.TRUE");......}.e
167e0 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 71 75 65 72 79 28 22 lse.{.............$this->query("
16800 53 45 54 20 43 4f 4d 4d 49 54 20 46 41 4c 53 45 22 29 3b 0a 20 20 20 20 09 7d 0a 20 20 20 20 7d SET.COMMIT.FALSE");......}.....}
16820 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 63 6f 6d 6d 69 74 28 29 ......//.}}}.....//.{{{.commit()
16840 0a 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6d 6d 69 74 28 29 0a 20 20 20 20 7b 0a 20 20 ......function.commit().....{...
16860 20 20 20 20 20 20 66 62 73 71 6c 5f 63 6f 6d 6d 69 74 28 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 ......fbsql_commit();.....}.....
16880 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 72 6f 6c 6c 62 61 63 6b 28 29 0a 0a 20 .//.}}}.....//.{{{.rollback()...
168a0 20 20 20 66 75 6e 63 74 69 6f 6e 20 72 6f 6c 6c 62 61 63 6b 28 29 0a 20 20 20 20 7b 0a 20 20 20 ...function.rollback().....{....
168c0 20 20 20 20 20 66 62 73 71 6c 5f 72 6f 6c 6c 62 61 63 6b 28 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 .....fbsql_rollback();.....}....
168e0 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 6e 75 6d 43 6f 6c 73 28 29 0a 0a 20 ..//.}}}.....//.{{{.numCols()...
16900 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 47 65 74 20 74 68 65 20 6e 75 6d 62 65 72 20 6f 66 20 .../**......*.Get.the.number.of.
16920 63 6f 6c 75 6d 6e 73 20 69 6e 20 61 20 72 65 73 75 6c 74 20 73 65 74 2e 0a 20 20 20 20 20 2a 0a columns.in.a.result.set.......*.
16940 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 24 72 65 73 75 6c 74 20 66 62 73 71 6c 20 72 65 73 75 .....*.@param.$result.fbsql.resu
16960 6c 74 20 69 64 65 6e 74 69 66 69 65 72 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 61 63 63 lt.identifier......*......*.@acc
16980 65 73 73 20 70 75 62 6c 69 63 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 72 65 74 75 72 6e ess.public......*......*.@return
169a0 20 69 6e 74 20 74 68 65 20 6e 75 6d 62 65 72 20 6f 66 20 63 6f 6c 75 6d 6e 73 20 70 65 72 20 72 .int.the.number.of.columns.per.r
169c0 6f 77 20 69 6e 20 24 72 65 73 75 6c 74 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 66 75 6e 63 74 69 ow.in.$result......*/.....functi
169e0 6f 6e 20 6e 75 6d 43 6f 6c 73 28 24 72 65 73 75 6c 74 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 on.numCols($result).....{.......
16a00 20 20 24 63 6f 6c 73 20 3d 20 40 66 62 73 71 6c 5f 6e 75 6d 5f 66 69 65 6c 64 73 28 24 72 65 73 ..$cols.=.@fbsql_num_fields($res
16a20 75 6c 74 29 3b 0a 0a 20 20 20 20 20 20 20 20 69 66 20 28 21 24 63 6f 6c 73 29 20 7b 0a 20 20 20 ult);..........if.(!$cols).{....
16a40 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 66 62 73 71 6c 52 61 69 73 .........return.$this->fbsqlRais
16a60 65 45 72 72 6f 72 28 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 72 65 74 eError();.........}..........ret
16a80 75 72 6e 20 24 63 6f 6c 73 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 urn.$cols;.....}......//.}}}....
16aa0 20 2f 2f 20 7b 7b 7b 20 6e 75 6d 52 6f 77 73 28 29 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 .//.{{{.numRows()....../**......
16ac0 2a 20 47 65 74 20 74 68 65 20 6e 75 6d 62 65 72 20 6f 66 20 72 6f 77 73 20 69 6e 20 61 20 72 65 *.Get.the.number.of.rows.in.a.re
16ae0 73 75 6c 74 20 73 65 74 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 24 sult.set.......*......*.@param.$
16b00 72 65 73 75 6c 74 20 66 62 73 71 6c 20 72 65 73 75 6c 74 20 69 64 65 6e 74 69 66 69 65 72 0a 20 result.fbsql.result.identifier..
16b20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 61 63 63 65 73 73 20 70 75 62 6c 69 63 0a 20 20 20 20 ....*......*.@access.public.....
16b40 20 2a 0a 20 20 20 20 20 2a 20 40 72 65 74 75 72 6e 20 69 6e 74 20 74 68 65 20 6e 75 6d 62 65 72 .*......*.@return.int.the.number
16b60 20 6f 66 20 72 6f 77 73 20 69 6e 20 24 72 65 73 75 6c 74 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 .of.rows.in.$result......*/.....
16b80 66 75 6e 63 74 69 6f 6e 20 6e 75 6d 52 6f 77 73 28 24 72 65 73 75 6c 74 29 0a 20 20 20 20 7b 0a function.numRows($result).....{.
16ba0 20 20 20 20 20 20 20 20 24 72 6f 77 73 20 3d 20 40 66 62 73 71 6c 5f 6e 75 6d 5f 72 6f 77 73 28 ........$rows.=.@fbsql_num_rows(
16bc0 24 72 65 73 75 6c 74 29 3b 0a 20 20 20 20 20 20 20 20 69 66 20 28 24 72 6f 77 73 20 3d 3d 3d 20 $result);.........if.($rows.===.
16be0 6e 75 6c 6c 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 null).{.............return.$this
16c00 2d 3e 66 62 73 71 6c 52 61 69 73 65 45 72 72 6f 72 28 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 ->fbsqlRaiseError();.........}..
16c20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 72 6f 77 73 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 .......return.$rows;.....}......
16c40 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 61 66 66 65 63 74 65 64 52 6f 77 73 28 29 //.}}}.....//.{{{.affectedRows()
16c60 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 47 65 74 73 20 74 68 65 20 6e 75 6d 62 65 72 ....../**......*.Gets.the.number
16c80 20 6f 66 20 72 6f 77 73 20 61 66 66 65 63 74 65 64 20 62 79 20 74 68 65 20 64 61 74 61 20 6d 61 .of.rows.affected.by.the.data.ma
16ca0 6e 69 70 75 6c 61 74 69 6f 6e 0a 20 20 20 20 20 2a 20 71 75 65 72 79 2e 20 20 46 6f 72 20 6f 74 nipulation......*.query...For.ot
16cc0 68 65 72 20 71 75 65 72 69 65 73 2c 20 74 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 72 65 74 75 72 her.queries,.this.function.retur
16ce0 6e 73 20 30 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 72 65 74 75 72 6e 20 6e 75 6d 62 ns.0.......*......*.@return.numb
16d00 65 72 20 6f 66 20 72 6f 77 73 20 61 66 66 65 63 74 65 64 20 62 79 20 74 68 65 20 6c 61 73 74 20 er.of.rows.affected.by.the.last.
16d20 71 75 65 72 79 0a 20 20 20 20 20 2a 2f 0a 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 61 66 66 65 query......*/......function.affe
16d40 63 74 65 64 52 6f 77 73 28 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 69 66 20 28 44 42 3a ctedRows().....{.........if.(DB:
16d60 3a 69 73 4d 61 6e 69 70 28 24 74 68 69 73 2d 3e 6c 61 73 74 5f 71 75 65 72 79 29 29 20 7b 0a 20 :isManip($this->last_query)).{..
16d80 20 20 20 20 20 20 20 20 20 20 20 24 72 65 73 75 6c 74 20 3d 20 40 66 62 73 71 6c 5f 61 66 66 65 ...........$result.=.@fbsql_affe
16da0 63 74 65 64 5f 72 6f 77 73 28 24 74 68 69 73 2d 3e 63 6f 6e 6e 65 63 74 69 6f 6e 29 3b 0a 20 20 cted_rows($this->connection);...
16dc0 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 72 65 73 75 ......}.else.{.............$resu
16de0 6c 74 20 3d 20 30 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e lt.=.0;.........}.........return
16e00 20 24 72 65 73 75 6c 74 3b 0a 20 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 .$result;......}......//.}}}....
16e20 20 2f 2f 20 7b 7b 7b 20 65 72 72 6f 72 4e 61 74 69 76 65 28 29 0a 0a 20 20 20 20 2f 2a 2a 0a 20 .//.{{{.errorNative()....../**..
16e40 20 20 20 20 2a 20 47 65 74 20 74 68 65 20 6e 61 74 69 76 65 20 65 72 72 6f 72 20 63 6f 64 65 20 ....*.Get.the.native.error.code.
16e60 6f 66 20 74 68 65 20 6c 61 73 74 20 65 72 72 6f 72 20 28 69 66 20 61 6e 79 29 20 74 68 61 74 0a of.the.last.error.(if.any).that.
16e80 20 20 20 20 20 2a 20 6f 63 63 75 72 65 64 20 6f 6e 20 74 68 65 20 63 75 72 72 65 6e 74 20 63 6f .....*.occured.on.the.current.co
16ea0 6e 6e 65 63 74 69 6f 6e 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 61 63 63 65 73 73 20 nnection.......*......*.@access.
16ec0 70 75 62 6c 69 63 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 72 65 74 75 72 6e 20 69 6e 74 public......*......*.@return.int
16ee0 20 6e 61 74 69 76 65 20 66 62 73 71 6c 20 65 72 72 6f 72 20 63 6f 64 65 0a 20 20 20 20 20 2a 2f .native.fbsql.error.code......*/
16f00 0a 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 65 72 72 6f 72 4e 61 74 69 76 65 28 29 0a 20 20 20 ......function.errorNative()....
16f20 20 7b 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 66 62 73 71 6c 5f 65 72 72 6e 6f 28 24 74 .{.........return.fbsql_errno($t
16f40 68 69 73 2d 3e 63 6f 6e 6e 65 63 74 69 6f 6e 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 his->connection);.....}......//.
16f60 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 6e 65 78 74 49 64 28 29 0a 0a 20 20 20 20 2f 2a 2a }}}.....//.{{{.nextId()....../**
16f80 0a 20 20 20 20 20 2a 20 47 65 74 20 74 68 65 20 6e 65 78 74 20 76 61 6c 75 65 20 69 6e 20 61 20 ......*.Get.the.next.value.in.a.
16fa0 73 65 71 75 65 6e 63 65 2e 20 20 57 65 20 65 6d 75 6c 61 74 65 20 73 65 71 75 65 6e 63 65 73 0a sequence...We.emulate.sequences.
16fc0 20 20 20 20 20 2a 20 66 6f 72 20 66 62 73 71 6c 2e 20 20 57 69 6c 6c 20 63 72 65 61 74 65 20 74 .....*.for.fbsql...Will.create.t
16fe0 68 65 20 73 65 71 75 65 6e 63 65 20 69 66 20 69 74 20 64 6f 65 73 20 6e 6f 74 20 65 78 69 73 74 he.sequence.if.it.does.not.exist
17000 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 61 63 63 65 73 73 20 70 75 62 6c 69 63 0a 20 .......*......*.@access.public..
17020 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 24 73 65 71 5f 6e 61 6d 65 20 74 68 ....*......*.@param.$seq_name.th
17040 65 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 73 65 71 75 65 6e 63 65 0a 20 20 20 20 20 2a 0a 20 20 e.name.of.the.sequence......*...
17060 20 20 20 2a 20 40 70 61 72 61 6d 20 24 6f 6e 64 65 6d 61 6e 64 20 77 68 65 74 68 65 72 20 74 6f ...*.@param.$ondemand.whether.to
17080 20 63 72 65 61 74 65 20 74 68 65 20 73 65 71 75 65 6e 63 65 20 74 61 62 6c 65 20 6f 6e 20 64 65 .create.the.sequence.table.on.de
170a0 6d 61 6e 64 0a 20 20 20 20 20 2a 20 28 64 65 66 61 75 6c 74 20 69 73 20 74 72 75 65 29 0a 20 20 mand......*.(default.is.true)...
170c0 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 72 65 74 75 72 6e 20 61 20 73 65 71 75 65 6e 63 65 20 69 ...*......*.@return.a.sequence.i
170e0 6e 74 65 67 65 72 2c 20 6f 72 20 61 20 44 42 20 65 72 72 6f 72 0a 20 20 20 20 20 2a 2f 0a 20 20 nteger,.or.a.DB.error......*/...
17100 20 20 66 75 6e 63 74 69 6f 6e 20 6e 65 78 74 49 64 28 24 73 65 71 5f 6e 61 6d 65 2c 20 24 6f 6e ..function.nextId($seq_name,.$on
17120 64 65 6d 61 6e 64 20 3d 20 74 72 75 65 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 24 73 71 demand.=.true).....{.........$sq
17140 6e 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 2f 5b 5e 61 2d 7a 30 2d 39 5f 5d 2f 69 27 n.=.preg_replace('/[^a-z0-9_]/i'
17160 2c 20 27 5f 27 2c 20 24 73 65 71 5f 6e 61 6d 65 29 3b 0a 20 20 20 20 20 20 20 20 24 72 65 70 65 ,.'_',.$seq_name);.........$repe
17180 61 74 20 3d 20 30 3b 0a 20 20 20 20 20 20 20 20 64 6f 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 at.=.0;.........do.{............
171a0 20 24 73 65 71 6e 61 6d 65 20 3d 20 73 70 72 69 6e 74 66 28 24 74 68 69 73 2d 3e 67 65 74 4f 70 .$seqname.=.sprintf($this->getOp
171c0 74 69 6f 6e 28 22 73 65 71 6e 61 6d 65 5f 66 6f 72 6d 61 74 22 29 2c 20 24 73 71 6e 29 3b 0a 20 tion("seqname_format"),.$sqn);..
171e0 20 20 20 20 20 20 20 20 20 20 20 24 72 65 73 75 6c 74 20 3d 20 24 74 68 69 73 2d 3e 71 75 65 72 ...........$result.=.$this->quer
17200 79 28 22 49 4e 53 45 52 54 20 49 4e 54 4f 20 24 7b 73 65 71 6e 61 6d 65 7d 20 56 41 4c 55 45 53 y("INSERT.INTO.${seqname}.VALUES
17220 28 4e 55 4c 4c 29 22 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 24 6f 6e 64 65 6d (NULL)");.............if.($ondem
17240 61 6e 64 20 26 26 20 44 42 3a 3a 69 73 45 72 72 6f 72 28 24 72 65 73 75 6c 74 29 20 26 26 0a 20 and.&&.DB::isError($result).&&..
17260 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 72 65 73 75 6c 74 2d 3e 67 65 74 43 6f 64 65 28 ...............$result->getCode(
17280 29 20 3d 3d 20 44 42 5f 45 52 52 4f 52 5f 4e 4f 53 55 43 48 54 41 42 4c 45 29 20 7b 0a 20 20 20 ).==.DB_ERROR_NOSUCHTABLE).{....
172a0 20 20 20 20 20 20 20 20 20 20 20 20 20 24 72 65 70 65 61 74 20 3d 20 31 3b 0a 20 20 20 20 20 20 .............$repeat.=.1;.......
172c0 20 20 20 20 20 20 20 20 20 20 24 72 65 73 75 6c 74 20 3d 20 24 74 68 69 73 2d 3e 63 72 65 61 74 ..........$result.=.$this->creat
172e0 65 53 65 71 75 65 6e 63 65 28 24 73 65 71 5f 6e 61 6d 65 29 3b 0a 20 20 20 20 20 20 20 20 20 20 eSequence($seq_name);...........
17300 20 20 20 20 20 20 69 66 20 28 44 42 3a 3a 69 73 45 72 72 6f 72 28 24 72 65 73 75 6c 74 29 29 20 ......if.(DB::isError($result)).
17320 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 72 65 {.....................return.$re
17340 73 75 6c 74 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 sult;.................}.........
17360 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 72 65 ....}.else.{.................$re
17380 70 65 61 74 20 3d 20 30 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 peat.=.0;.............}.........
173a0 7d 20 77 68 69 6c 65 20 28 24 72 65 70 65 61 74 29 3b 0a 20 20 20 20 20 20 20 20 69 66 20 28 44 }.while.($repeat);.........if.(D
173c0 42 3a 3a 69 73 45 72 72 6f 72 28 24 72 65 73 75 6c 74 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 B::isError($result)).{..........
173e0 20 20 20 72 65 74 75 72 6e 20 24 72 65 73 75 6c 74 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 ...return.$result;.........}....
17400 20 20 20 20 20 72 65 74 75 72 6e 20 66 62 73 71 6c 5f 69 6e 73 65 72 74 5f 69 64 28 24 74 68 69 .....return.fbsql_insert_id($thi
17420 73 2d 3e 63 6f 6e 6e 65 63 74 69 6f 6e 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d s->connection);.....}......//.}}
17440 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 63 72 65 61 74 65 53 65 71 75 65 6e 63 65 28 29 0a 0a 20 }.....//.{{{.createSequence()...
17460 20 20 20 66 75 6e 63 74 69 6f 6e 20 63 72 65 61 74 65 53 65 71 75 65 6e 63 65 28 24 73 65 71 5f ...function.createSequence($seq_
17480 6e 61 6d 65 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 24 73 71 6e 20 3d 20 70 72 65 67 5f name).....{.........$sqn.=.preg_
174a0 72 65 70 6c 61 63 65 28 27 2f 5b 5e 61 2d 7a 30 2d 39 5f 5d 2f 69 27 2c 20 27 5f 27 2c 20 24 73 replace('/[^a-z0-9_]/i',.'_',.$s
174c0 65 71 5f 6e 61 6d 65 29 3b 0a 20 20 20 20 20 20 20 20 24 73 65 71 6e 61 6d 65 20 3d 20 73 70 72 eq_name);.........$seqname.=.spr
174e0 69 6e 74 66 28 24 74 68 69 73 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 22 73 65 71 6e 61 6d 65 5f 66 intf($this->getOption("seqname_f
17500 6f 72 6d 61 74 22 29 2c 20 24 73 71 6e 29 3b 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 ormat"),.$sqn);.........return.$
17520 74 68 69 73 2d 3e 71 75 65 72 79 28 22 43 52 45 41 54 45 20 54 41 42 4c 45 20 24 7b 73 65 71 6e this->query("CREATE.TABLE.${seqn
17540 61 6d 65 7d 20 22 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ame}."..........................
17560 20 20 20 20 27 28 69 64 20 49 4e 54 45 47 45 52 20 55 4e 53 49 47 4e 45 44 20 41 55 54 4f 5f 49 ....'(id.INTEGER.UNSIGNED.AUTO_I
17580 4e 43 52 45 4d 45 4e 54 20 4e 4f 54 20 4e 55 4c 4c 2c 27 2e 0a 20 20 20 20 20 20 20 20 20 20 20 NCREMENT.NOT.NULL,'.............
175a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 20 50 52 49 4d 41 52 59 20 4b 45 59 28 69 .................'.PRIMARY.KEY(i
175c0 64 29 29 27 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 d))');.....}......//.}}}.....//.
175e0 7b 7b 7b 20 64 72 6f 70 53 65 71 75 65 6e 63 65 28 29 0a 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e {{{.dropSequence()......function
17600 20 64 72 6f 70 53 65 71 75 65 6e 63 65 28 24 73 65 71 5f 6e 61 6d 65 29 0a 20 20 20 20 7b 0a 20 .dropSequence($seq_name).....{..
17620 20 20 20 20 20 20 20 24 73 71 6e 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 2f 5b 5e 61 .......$sqn.=.preg_replace('/[^a
17640 2d 7a 30 2d 39 5f 5d 2f 69 27 2c 20 27 5f 27 2c 20 24 73 65 71 5f 6e 61 6d 65 29 3b 0a 20 20 20 -z0-9_]/i',.'_',.$seq_name);....
17660 20 20 20 20 20 24 73 65 71 6e 61 6d 65 20 3d 20 73 70 72 69 6e 74 66 28 24 74 68 69 73 2d 3e 67 .....$seqname.=.sprintf($this->g
17680 65 74 4f 70 74 69 6f 6e 28 22 73 65 71 6e 61 6d 65 5f 66 6f 72 6d 61 74 22 29 2c 20 24 73 71 6e etOption("seqname_format"),.$sqn
176a0 29 3b 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 71 75 65 72 79 28 22 );.........return.$this->query("
176c0 44 52 4f 50 20 54 41 42 4c 45 20 24 7b 73 65 71 6e 61 6d 65 7d 20 52 45 53 54 52 49 43 54 22 29 DROP.TABLE.${seqname}.RESTRICT")
176e0 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 6d ;.....}......//.}}}.....//.{{{.m
17700 6f 64 69 66 79 51 75 65 72 79 28 29 0a 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 6d 6f 64 69 66 odifyQuery()......function.modif
17720 79 51 75 65 72 79 28 24 71 75 65 72 79 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 69 66 20 yQuery($query).....{.........if.
17740 28 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 5b 27 6f 70 74 69 6d 69 7a 65 27 5d 20 3d 3d 20 27 ($this->options['optimize'].==.'
17760 70 6f 72 74 61 62 69 6c 69 74 79 27 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 22 portability').{.............//."
17780 44 45 4c 45 54 45 20 46 52 4f 4d 20 74 61 62 6c 65 22 20 67 69 76 65 73 20 30 20 61 66 66 65 63 DELETE.FROM.table".gives.0.affec
177a0 74 65 64 20 72 6f 77 73 20 69 6e 20 66 62 73 71 6c 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f ted.rows.in.fbsql............../
177c0 2f 20 54 68 69 73 20 6c 69 74 74 6c 65 20 68 61 63 6b 20 6c 65 74 73 20 79 6f 75 20 6b 6e 6f 77 /.This.little.hack.lets.you.know
177e0 20 68 6f 77 20 6d 61 6e 79 20 72 6f 77 73 20 77 65 72 65 20 64 65 6c 65 74 65 64 2e 0a 20 20 20 .how.many.rows.were.deleted.....
17800 20 20 20 20 20 20 20 20 20 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 2f 5e 5c 73 2a 44 45 .........if.(preg_match('/^\s*DE
17820 4c 45 54 45 5c 73 2b 46 52 4f 4d 5c 73 2b 28 5c 53 2b 29 5c 73 2a 24 2f 69 27 2c 20 24 71 75 65 LETE\s+FROM\s+(\S+)\s*$/i',.$que
17840 72 79 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 71 75 65 72 79 20 3d 20 ry)).{.................$query.=.
17860 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 2f 5e 5c 73 2a 44 45 4c 45 54 45 5c 73 2b 46 52 4f 4d preg_replace('/^\s*DELETE\s+FROM
17880 5c 73 2b 28 5c 53 2b 29 5c 73 2a 24 2f 27 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 \s+(\S+)\s*$/',.................
178a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 44 45 4c 45 54 45 20 46 52 ......................'DELETE.FR
178c0 4f 4d 20 5c 31 20 57 48 45 52 45 20 31 3d 31 27 2c 20 24 71 75 65 72 79 29 3b 0a 20 20 20 20 20 OM.\1.WHERE.1=1',.$query);......
178e0 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 .......}.........}.........retur
17900 6e 20 24 71 75 65 72 79 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 n.$query;.....}......//.}}}.....
17920 2f 2f 20 7b 7b 7b 20 66 62 73 71 6c 52 61 69 73 65 45 72 72 6f 72 28 29 0a 0a 20 20 20 20 66 75 //.{{{.fbsqlRaiseError()......fu
17940 6e 63 74 69 6f 6e 20 66 62 73 71 6c 52 61 69 73 65 45 72 72 6f 72 28 24 65 72 72 6e 6f 20 3d 20 nction.fbsqlRaiseError($errno.=.
17960 6e 75 6c 6c 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 69 66 20 28 24 65 72 72 6e 6f 20 3d null).....{.........if.($errno.=
17980 3d 3d 20 6e 75 6c 6c 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 65 72 72 6e 6f 20 3d 20 ==.null).{.............$errno.=.
179a0 24 74 68 69 73 2d 3e 65 72 72 6f 72 43 6f 64 65 28 66 62 73 71 6c 5f 65 72 72 6e 6f 28 24 74 68 $this->errorCode(fbsql_errno($th
179c0 69 73 2d 3e 63 6f 6e 6e 65 63 74 69 6f 6e 29 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 is->connection));.........}.....
179e0 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 61 69 73 65 45 72 72 6f 72 28 24 65 72 ....return.$this->raiseError($er
17a00 72 6e 6f 2c 20 6e 75 6c 6c 2c 20 6e 75 6c 6c 2c 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 20 20 20 rno,.null,.null,.null,..........
17a20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 62 73 71 6c 5f 65 72 72 6f 72 28 24 74 68 69 73 ...............fbsql_error($this
17a40 2d 3e 63 6f 6e 6e 65 63 74 69 6f 6e 29 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d ->connection));.....}......//.}}
17a60 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 74 61 62 6c 65 49 6e 66 6f 28 29 0a 0a 20 20 20 20 66 75 }.....//.{{{.tableInfo()......fu
17a80 6e 63 74 69 6f 6e 20 74 61 62 6c 65 49 6e 66 6f 28 24 72 65 73 75 6c 74 2c 20 24 6d 6f 64 65 20 nction.tableInfo($result,.$mode.
17aa0 3d 20 6e 75 6c 6c 29 20 7b 0a 20 20 20 20 20 20 20 20 24 63 6f 75 6e 74 20 3d 20 30 3b 0a 20 20 =.null).{.........$count.=.0;...
17ac0 20 20 20 20 20 20 24 69 64 20 20 20 20 3d 20 30 3b 0a 20 20 20 20 20 20 20 20 24 72 65 73 20 20 ......$id....=.0;.........$res..
17ae0 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 20 20 20 20 20 20 20 20 2f 2a 0a 20 20 20 20 20 20 20 20 .=.array();........../*.........
17b00 20 2a 20 64 65 70 65 6e 64 69 6e 67 20 6f 6e 20 24 6d 6f 64 65 2c 20 6d 65 74 61 64 61 74 61 20 .*.depending.on.$mode,.metadata.
17b20 72 65 74 75 72 6e 73 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 76 61 6c 75 65 73 3a 0a 20 20 returns.the.following.values:...
17b40 20 20 20 20 20 20 20 2a 0a 20 20 20 20 20 20 20 20 20 2a 20 2d 20 6d 6f 64 65 20 69 73 20 66 61 .......*..........*.-.mode.is.fa
17b60 6c 73 65 20 28 64 65 66 61 75 6c 74 29 3a 0a 20 20 20 20 20 20 20 20 20 2a 20 24 72 65 73 75 6c lse.(default):..........*.$resul
17b80 74 5b 5d 3a 0a 20 20 20 20 20 20 20 20 20 2a 20 20 20 5b 30 5d 5b 22 74 61 62 6c 65 22 5d 20 20 t[]:..........*...[0]["table"]..
17ba0 74 61 62 6c 65 20 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 2a 20 20 20 5b 30 5d 5b 22 6e 61 6d table.name..........*...[0]["nam
17bc0 65 22 5d 20 20 20 66 69 65 6c 64 20 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 2a 20 20 20 5b 30 e"]...field.name..........*...[0
17be0 5d 5b 22 74 79 70 65 22 5d 20 20 20 66 69 65 6c 64 20 74 79 70 65 0a 20 20 20 20 20 20 20 20 20 ]["type"]...field.type..........
17c00 2a 20 20 20 5b 30 5d 5b 22 6c 65 6e 22 5d 20 20 20 20 66 69 65 6c 64 20 6c 65 6e 67 74 68 0a 20 *...[0]["len"]....field.length..
17c20 20 20 20 20 20 20 20 20 2a 20 20 20 5b 30 5d 5b 22 66 6c 61 67 73 22 5d 20 20 66 69 65 6c 64 20 ........*...[0]["flags"]..field.
17c40 66 6c 61 67 73 0a 20 20 20 20 20 20 20 20 20 2a 0a 20 20 20 20 20 20 20 20 20 2a 20 2d 20 6d 6f flags..........*..........*.-.mo
17c60 64 65 20 69 73 20 44 42 5f 54 41 42 4c 45 49 4e 46 4f 5f 4f 52 44 45 52 0a 20 20 20 20 20 20 20 de.is.DB_TABLEINFO_ORDER........
17c80 20 20 2a 20 24 72 65 73 75 6c 74 5b 5d 3a 0a 20 20 20 20 20 20 20 20 20 2a 20 20 20 5b 22 6e 75 ..*.$result[]:..........*...["nu
17ca0 6d 5f 66 69 65 6c 64 73 22 5d 20 6e 75 6d 62 65 72 20 6f 66 20 6d 65 74 61 64 61 74 61 20 72 65 m_fields"].number.of.metadata.re
17cc0 63 6f 72 64 73 0a 20 20 20 20 20 20 20 20 20 2a 20 20 20 5b 30 5d 5b 22 74 61 62 6c 65 22 5d 20 cords..........*...[0]["table"].
17ce0 20 74 61 62 6c 65 20 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 2a 20 20 20 5b 30 5d 5b 22 6e 61 .table.name..........*...[0]["na
17d00 6d 65 22 5d 20 20 20 66 69 65 6c 64 20 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 2a 20 20 20 5b me"]...field.name..........*...[
17d20 30 5d 5b 22 74 79 70 65 22 5d 20 20 20 66 69 65 6c 64 20 74 79 70 65 0a 20 20 20 20 20 20 20 20 0]["type"]...field.type.........
17d40 20 2a 20 20 20 5b 30 5d 5b 22 6c 65 6e 22 5d 20 20 20 20 66 69 65 6c 64 20 6c 65 6e 67 74 68 0a .*...[0]["len"]....field.length.
17d60 20 20 20 20 20 20 20 20 20 2a 20 20 20 5b 30 5d 5b 22 66 6c 61 67 73 22 5d 20 20 66 69 65 6c 64 .........*...[0]["flags"]..field
17d80 20 66 6c 61 67 73 0a 20 20 20 20 20 20 20 20 20 2a 20 20 20 5b 22 6f 72 64 65 72 22 5d 5b 66 69 .flags..........*...["order"][fi
17da0 65 6c 64 20 6e 61 6d 65 5d 20 20 69 6e 64 65 78 20 6f 66 20 66 69 65 6c 64 20 6e 61 6d 65 64 20 eld.name]..index.of.field.named.
17dc0 22 66 69 65 6c 64 20 6e 61 6d 65 22 0a 20 20 20 20 20 20 20 20 20 2a 20 20 20 54 68 65 20 6c 61 "field.name"..........*...The.la
17de0 73 74 20 6f 6e 65 20 69 73 20 75 73 65 64 2c 20 69 66 20 79 6f 75 20 68 61 76 65 20 61 20 66 69 st.one.is.used,.if.you.have.a.fi
17e00 65 6c 64 20 6e 61 6d 65 2c 20 62 75 74 20 6e 6f 20 69 6e 64 65 78 2e 0a 20 20 20 20 20 20 20 20 eld.name,.but.no.index..........
17e20 20 2a 20 20 20 54 65 73 74 3a 20 20 69 66 20 28 69 73 73 65 74 28 24 72 65 73 75 6c 74 5b 27 6d .*...Test:..if.(isset($result['m
17e40 65 74 61 27 5d 5b 27 6d 79 66 69 65 6c 64 27 5d 29 29 20 7b 20 2e 2e 2e 0a 20 20 20 20 20 20 20 eta']['myfield'])).{............
17e60 20 20 2a 0a 20 20 20 20 20 20 20 20 20 2a 20 2d 20 6d 6f 64 65 20 69 73 20 44 42 5f 54 41 42 4c ..*..........*.-.mode.is.DB_TABL
17e80 45 49 4e 46 4f 5f 4f 52 44 45 52 54 41 42 4c 45 0a 20 20 20 20 20 20 20 20 20 2a 20 20 20 20 74 EINFO_ORDERTABLE..........*....t
17ea0 68 65 20 73 61 6d 65 20 61 73 20 61 62 6f 76 65 2e 20 62 75 74 20 61 64 64 69 74 69 6f 6e 61 6c he.same.as.above..but.additional
17ec0 6c 79 0a 20 20 20 20 20 20 20 20 20 2a 20 20 20 5b 22 6f 72 64 65 72 74 61 62 6c 65 22 5d 5b 74 ly..........*...["ordertable"][t
17ee0 61 62 6c 65 20 6e 61 6d 65 5d 5b 66 69 65 6c 64 20 6e 61 6d 65 5d 20 69 6e 64 65 78 20 6f 66 20 able.name][field.name].index.of.
17f00 66 69 65 6c 64 0a 20 20 20 20 20 20 20 20 20 2a 20 20 20 20 20 20 6e 61 6d 65 64 20 22 66 69 65 field..........*......named."fie
17f20 6c 64 20 6e 61 6d 65 22 0a 20 20 20 20 20 20 20 20 20 2a 0a 20 20 20 20 20 20 20 20 20 2a 20 20 ld.name"..........*..........*..
17f40 20 20 20 20 74 68 69 73 20 69 73 2c 20 62 65 63 61 75 73 65 20 69 66 20 79 6f 75 20 68 61 76 65 ....this.is,.because.if.you.have
17f60 20 66 69 65 6c 64 73 20 66 72 6f 6d 20 64 69 66 66 65 72 65 6e 74 0a 20 20 20 20 20 20 20 20 20 .fields.from.different..........
17f80 2a 20 20 20 20 20 20 74 61 62 6c 65 73 20 77 69 74 68 20 74 68 65 20 73 61 6d 65 20 66 69 65 6c *......tables.with.the.same.fiel
17fa0 64 20 6e 61 6d 65 20 2a 20 74 68 65 79 20 6f 76 65 72 72 69 64 65 20 65 61 63 68 0a 20 20 20 20 d.name.*.they.override.each.....
17fc0 20 20 20 20 20 2a 20 20 20 20 20 20 6f 74 68 65 72 20 77 69 74 68 20 44 42 5f 54 41 42 4c 45 49 .....*......other.with.DB_TABLEI
17fe0 4e 46 4f 5f 4f 52 44 45 52 0a 20 20 20 20 20 20 20 20 20 2a 0a 20 20 20 20 20 20 20 20 20 2a 20 NFO_ORDER..........*..........*.
18000 20 20 20 20 20 79 6f 75 20 63 61 6e 20 63 6f 6d 62 69 6e 65 20 44 42 5f 54 41 42 4c 45 49 4e 46 .....you.can.combine.DB_TABLEINF
18020 4f 5f 4f 52 44 45 52 20 61 6e 64 0a 20 20 20 20 20 20 20 20 20 2a 20 20 20 20 20 20 44 42 5f 54 O_ORDER.and..........*......DB_T
18040 41 42 4c 45 49 4e 46 4f 5f 4f 52 44 45 52 54 41 42 4c 45 20 77 69 74 68 20 44 42 5f 54 41 42 4c ABLEINFO_ORDERTABLE.with.DB_TABL
18060 45 49 4e 46 4f 5f 4f 52 44 45 52 20 7c 0a 20 20 20 20 20 20 20 20 20 2a 20 20 20 20 20 20 44 42 EINFO_ORDER.|..........*......DB
18080 5f 54 41 42 4c 45 49 4e 46 4f 5f 4f 52 44 45 52 54 41 42 4c 45 20 2a 20 6f 72 20 77 69 74 68 20 _TABLEINFO_ORDERTABLE.*.or.with.
180a0 44 42 5f 54 41 42 4c 45 49 4e 46 4f 5f 46 55 4c 4c 0a 20 20 20 20 20 20 20 20 20 2a 2f 0a 0a 20 DB_TABLEINFO_FULL..........*/...
180c0 20 20 20 20 20 20 20 2f 2f 20 69 66 20 24 72 65 73 75 6c 74 20 69 73 20 61 20 73 74 72 69 6e 67 .......//.if.$result.is.a.string
180e0 2c 20 74 68 65 6e 20 77 65 20 77 61 6e 74 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 61 62 6f 75 74 ,.then.we.want.information.about
18100 20 61 0a 20 20 20 20 20 20 20 20 2f 2f 20 74 61 62 6c 65 20 77 69 74 68 6f 75 74 20 61 20 72 65 .a.........//.table.without.a.re
18120 73 75 6c 74 73 65 74 0a 20 20 20 20 20 20 20 20 69 66 20 28 69 73 5f 73 74 72 69 6e 67 28 24 72 sultset.........if.(is_string($r
18140 65 73 75 6c 74 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 69 64 20 3d 20 40 66 62 73 esult)).{.............$id.=.@fbs
18160 71 6c 5f 6c 69 73 74 5f 66 69 65 6c 64 73 28 24 74 68 69 73 2d 3e 64 73 6e 5b 27 64 61 74 61 62 ql_list_fields($this->dsn['datab
18180 61 73 65 27 5d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ase'],..........................
181a0 20 20 20 20 20 20 20 20 20 20 20 20 24 72 65 73 75 6c 74 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 6e ............$result,.$this->conn
181c0 65 63 74 69 6f 6e 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 65 6d 70 74 79 28 24 ection);.............if.(empty($
181e0 69 64 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 id)).{.................return.$t
18200 68 69 73 2d 3e 66 62 73 71 6c 52 61 69 73 65 45 72 72 6f 72 28 29 3b 0a 20 20 20 20 20 20 20 20 his->fbsqlRaiseError();.........
18220 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 20 2f 2f 20 65 6c 73 65 20 77 ....}.........}.else.{.//.else.w
18240 65 20 77 61 6e 74 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 61 62 6f 75 74 20 61 20 72 65 73 75 6c e.want.information.about.a.resul
18260 74 73 65 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 69 64 20 3d 20 24 72 65 73 75 6c 74 3b 0a tset.............$id.=.$result;.
18280 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 65 6d 70 74 79 28 24 69 64 29 29 20 7b 0a 20 20 ............if.(empty($id)).{...
182a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 66 62 73 71 ..............return.$this->fbsq
182c0 6c 52 61 69 73 65 45 72 72 6f 72 28 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 lRaiseError();.............}....
182e0 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 24 63 6f 75 6e 74 20 3d 20 40 66 62 73 71 6c 5f .....}..........$count.=.@fbsql_
18300 6e 75 6d 5f 66 69 65 6c 64 73 28 24 69 64 29 3b 0a 0a 20 20 20 20 20 20 20 20 2f 2f 20 6d 61 64 num_fields($id);..........//.mad
18320 65 20 74 68 69 73 20 49 46 20 64 75 65 20 74 6f 20 70 65 72 66 6f 72 6d 61 6e 63 65 20 28 6f 6e e.this.IF.due.to.performance.(on
18340 65 20 69 66 20 69 73 20 66 61 73 74 65 72 20 74 68 61 6e 20 24 63 6f 75 6e 74 20 69 66 27 73 29 e.if.is.faster.than.$count.if's)
18360 0a 20 20 20 20 20 20 20 20 69 66 20 28 65 6d 70 74 79 28 24 6d 6f 64 65 29 29 20 7b 0a 20 20 20 .........if.(empty($mode)).{....
18380 20 20 20 20 20 20 20 20 20 66 6f 72 20 28 24 69 3d 30 3b 20 24 69 3c 24 63 6f 75 6e 74 3b 20 24 .........for.($i=0;.$i<$count;.$
183a0 69 2b 2b 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 72 65 73 5b 24 69 5d 5b i++).{.................$res[$i][
183c0 27 74 61 62 6c 65 27 5d 20 3d 20 40 66 62 73 71 6c 5f 66 69 65 6c 64 5f 74 61 62 6c 65 20 28 24 'table'].=.@fbsql_field_table.($
183e0 69 64 2c 20 24 69 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 72 65 73 5b 24 69 id,.$i);.................$res[$i
18400 5d 5b 27 6e 61 6d 65 27 5d 20 20 3d 20 40 66 62 73 71 6c 5f 66 69 65 6c 64 5f 6e 61 6d 65 20 20 ]['name']..=.@fbsql_field_name..
18420 28 24 69 64 2c 20 24 69 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 72 65 73 5b ($id,.$i);.................$res[
18440 24 69 5d 5b 27 74 79 70 65 27 5d 20 20 3d 20 40 66 62 73 71 6c 5f 66 69 65 6c 64 5f 74 79 70 65 $i]['type']..=.@fbsql_field_type
18460 20 20 28 24 69 64 2c 20 24 69 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 72 65 ..($id,.$i);.................$re
18480 73 5b 24 69 5d 5b 27 6c 65 6e 27 5d 20 20 20 3d 20 40 66 62 73 71 6c 5f 66 69 65 6c 64 5f 6c 65 s[$i]['len']...=.@fbsql_field_le
184a0 6e 20 20 20 28 24 69 64 2c 20 24 69 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 n...($id,.$i);.................$
184c0 72 65 73 5b 24 69 5d 5b 27 66 6c 61 67 73 27 5d 20 3d 20 40 66 62 73 71 6c 5f 66 69 65 6c 64 5f res[$i]['flags'].=.@fbsql_field_
184e0 66 6c 61 67 73 20 28 24 69 64 2c 20 24 69 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 flags.($id,.$i);.............}..
18500 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 20 2f 2f 20 66 75 6c 6c 0a 20 20 20 20 20 20 20 20 .......}.else.{.//.full.........
18520 20 20 20 20 24 72 65 73 5b 22 6e 75 6d 5f 66 69 65 6c 64 73 22 5d 3d 20 24 63 6f 75 6e 74 3b 0a ....$res["num_fields"]=.$count;.
18540 0a 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 20 28 24 69 3d 30 3b 20 24 69 3c 24 63 6f 75 6e .............for.($i=0;.$i<$coun
18560 74 3b 20 24 69 2b 2b 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 72 65 73 5b t;.$i++).{.................$res[
18580 24 69 5d 5b 27 74 61 62 6c 65 27 5d 20 3d 20 40 66 62 73 71 6c 5f 66 69 65 6c 64 5f 74 61 62 6c $i]['table'].=.@fbsql_field_tabl
185a0 65 20 28 24 69 64 2c 20 24 69 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 72 65 e.($id,.$i);.................$re
185c0 73 5b 24 69 5d 5b 27 6e 61 6d 65 27 5d 20 20 3d 20 40 66 62 73 71 6c 5f 66 69 65 6c 64 5f 6e 61 s[$i]['name']..=.@fbsql_field_na
185e0 6d 65 20 20 28 24 69 64 2c 20 24 69 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 me..($id,.$i);.................$
18600 72 65 73 5b 24 69 5d 5b 27 74 79 70 65 27 5d 20 20 3d 20 40 66 62 73 71 6c 5f 66 69 65 6c 64 5f res[$i]['type']..=.@fbsql_field_
18620 74 79 70 65 20 20 28 24 69 64 2c 20 24 69 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 type..($id,.$i);................
18640 20 24 72 65 73 5b 24 69 5d 5b 27 6c 65 6e 27 5d 20 20 20 3d 20 40 66 62 73 71 6c 5f 66 69 65 6c .$res[$i]['len']...=.@fbsql_fiel
18660 64 5f 6c 65 6e 20 20 20 28 24 69 64 2c 20 24 69 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 d_len...($id,.$i);..............
18680 20 20 20 24 72 65 73 5b 24 69 5d 5b 27 66 6c 61 67 73 27 5d 20 3d 20 40 66 62 73 71 6c 5f 66 69 ...$res[$i]['flags'].=.@fbsql_fi
186a0 65 6c 64 5f 66 6c 61 67 73 20 28 24 69 64 2c 20 24 69 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 eld_flags.($id,.$i);............
186c0 20 20 20 20 20 69 66 20 28 24 6d 6f 64 65 20 26 20 44 42 5f 54 41 42 4c 45 49 4e 46 4f 5f 4f 52 .....if.($mode.&.DB_TABLEINFO_OR
186e0 44 45 52 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 72 65 73 5b DER).{.....................$res[
18700 27 6f 72 64 65 72 27 5d 5b 24 72 65 73 5b 24 69 5d 5b 27 6e 61 6d 65 27 5d 5d 20 3d 20 24 69 3b 'order'][$res[$i]['name']].=.$i;
18720 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 .................}..............
18740 20 20 20 69 66 20 28 24 6d 6f 64 65 20 26 20 44 42 5f 54 41 42 4c 45 49 4e 46 4f 5f 4f 52 44 45 ...if.($mode.&.DB_TABLEINFO_ORDE
18760 52 54 41 42 4c 45 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 72 RTABLE).{.....................$r
18780 65 73 5b 27 6f 72 64 65 72 74 61 62 6c 65 27 5d 5b 24 72 65 73 5b 24 69 5d 5b 27 74 61 62 6c 65 es['ordertable'][$res[$i]['table
187a0 27 5d 5d 5b 24 72 65 73 5b 24 69 5d 5b 27 6e 61 6d 65 27 5d 5d 20 3d 20 24 69 3b 0a 20 20 20 20 ']][$res[$i]['name']].=.$i;.....
187c0 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 ............}.............}.....
187e0 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 2f 2f 20 66 72 65 65 20 74 68 65 20 72 65 73 75 6c ....}..........//.free.the.resul
18800 74 20 6f 6e 6c 79 20 69 66 20 77 65 20 77 65 72 65 20 63 61 6c 6c 65 64 20 6f 6e 20 61 20 74 61 t.only.if.we.were.called.on.a.ta
18820 62 6c 65 0a 20 20 20 20 20 20 20 20 69 66 20 28 69 73 5f 73 74 72 69 6e 67 28 24 72 65 73 75 6c ble.........if.(is_string($resul
18840 74 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 40 66 62 73 71 6c 5f 66 72 65 65 5f 72 65 t)).{.............@fbsql_free_re
18860 73 75 6c 74 28 24 69 64 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 72 65 74 sult($id);.........}.........ret
18880 75 72 6e 20 24 72 65 73 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 urn.$res;.....}......//.}}}.....
188a0 2f 2f 20 7b 7b 7b 20 67 65 74 53 70 65 63 69 61 6c 51 75 65 72 79 28 29 0a 0a 20 20 20 20 2f 2a //.{{{.getSpecialQuery()....../*
188c0 2a 0a 20 20 20 20 2a 20 52 65 74 75 72 6e 73 20 74 68 65 20 71 75 65 72 79 20 6e 65 65 64 65 64 *.....*.Returns.the.query.needed
188e0 20 74 6f 20 67 65 74 20 73 6f 6d 65 20 62 61 63 6b 65 6e 64 20 69 6e 66 6f 0a 20 20 20 20 2a 20 .to.get.some.backend.info.....*.
18900 40 70 61 72 61 6d 20 73 74 72 69 6e 67 20 24 74 79 70 65 20 57 68 61 74 20 6b 69 6e 64 20 6f 66 @param.string.$type.What.kind.of
18920 20 69 6e 66 6f 20 79 6f 75 20 77 61 6e 74 20 74 6f 20 72 65 74 72 69 65 76 65 0a 20 20 20 20 2a .info.you.want.to.retrieve.....*
18940 20 40 72 65 74 75 72 6e 20 73 74 72 69 6e 67 20 54 68 65 20 53 51 4c 20 71 75 65 72 79 20 73 74 .@return.string.The.SQL.query.st
18960 72 69 6e 67 0a 20 20 20 20 2a 2f 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 70 65 63 ring.....*/.....function.getSpec
18980 69 61 6c 51 75 65 72 79 28 24 74 79 70 65 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 73 77 ialQuery($type).....{.........sw
189a0 69 74 63 68 20 28 24 74 79 70 65 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 63 61 73 65 20 itch.($type).{.............case.
189c0 27 74 61 62 6c 65 73 27 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 73 71 6c 20 3d 'tables':.................$sql.=
189e0 20 27 73 65 6c 65 63 74 20 22 74 61 62 6c 65 5f 6e 61 6d 65 22 20 66 72 6f 6d 20 69 6e 66 6f 72 .'select."table_name".from.infor
18a00 6d 61 74 69 6f 6e 5f 73 63 68 65 6d 61 2e 74 61 62 6c 65 73 27 3b 0a 20 20 20 20 20 20 20 20 20 mation_schema.tables';..........
18a20 20 20 20 20 20 20 20 62 72 65 61 6b 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 64 65 66 61 75 6c .......break;.............defaul
18a40 74 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 6e 75 6c 6c 3b 0a t:.................return.null;.
18a60 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 73 71 6c 3b 0a 20 ........}.........return.$sql;..
18a80 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 7d 0a 0a 2f 2f 20 54 4f 44 4f 2f 77 69 73 68 ...}......//.}}}.}..//.TODO/wish
18aa0 6c 69 73 74 3a 0a 2f 2f 20 6c 6f 6e 67 52 65 61 64 6c 65 6e 0a 2f 2f 20 62 69 6e 6d 6f 64 65 0a list:.//.longReadlen.//.binmode.
18ac0 0a 3f 3e 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .?>.............................
18ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
18b00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
18b20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
18b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
18b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
18b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
18ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
18bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
18be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
18c00 44 42 2d 31 2e 35 2e 30 52 43 31 2f 44 42 2f 69 62 61 73 65 2e 70 68 70 00 00 00 00 00 00 00 00 DB-1.5.0RC1/DB/ibase.php........
18c20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
18c40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
18c60 00 00 00 00 31 30 30 36 34 34 20 00 20 20 20 37 36 34 20 00 20 20 20 31 34 34 20 00 20 20 20 20 ....100644.....764.....144......
18c80 20 20 35 37 31 36 30 20 20 37 36 37 34 36 37 32 37 37 33 20 20 20 37 36 31 35 20 00 00 00 00 00 ..57160..7674672773...7615......
18ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
18cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
18ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
18d00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
18d20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
18d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
18d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
18d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
18da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
18dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
18de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
18e00 3c 3f 70 68 70 0a 2f 2a 20 76 69 6d 3a 20 73 65 74 20 65 78 70 61 6e 64 74 61 62 20 74 61 62 73 <?php./*.vim:.set.expandtab.tabs
18e20 74 6f 70 3d 34 20 73 68 69 66 74 77 69 64 74 68 3d 34 20 66 6f 6c 64 6d 65 74 68 6f 64 3d 6d 61 top=4.shiftwidth=4.foldmethod=ma
18e40 72 6b 65 72 3a 20 2a 2f 0a 2f 2f 20 2b 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d rker:.*/.//.+-------------------
18e60 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
18e80 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2b 0a 2f 2f 20 7c 20 50 48 50 20 56 65 -------------------+.//.|.PHP.Ve
18ea0 72 73 69 6f 6e 20 34 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 rsion.4.........................
18ec0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c ...............................|
18ee0 0a 2f 2f 20 2b 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d .//.+---------------------------
18f00 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
18f20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2b 0a 2f 2f 20 7c 20 43 6f 70 79 72 69 67 68 74 20 28 63 29 20 -----------+.//.|.Copyright.(c).
18f40 31 39 39 37 2d 32 30 30 33 20 54 68 65 20 50 48 50 20 47 72 6f 75 70 20 20 20 20 20 20 20 20 20 1997-2003.The.PHP.Group.........
18f60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 2f 2f 20 2b 2d 2d 2d .......................|.//.+---
18f80 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
18fa0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
18fc0 2d 2d 2d 2b 0a 2f 2f 20 7c 20 54 68 69 73 20 73 6f 75 72 63 65 20 66 69 6c 65 20 69 73 20 73 75 ---+.//.|.This.source.file.is.su
18fe0 62 6a 65 63 74 20 74 6f 20 76 65 72 73 69 6f 6e 20 32 2e 30 32 20 6f 66 20 74 68 65 20 50 48 50 bject.to.version.2.02.of.the.PHP
19000 20 6c 69 63 65 6e 73 65 2c 20 20 20 20 20 20 7c 0a 2f 2f 20 7c 20 74 68 61 74 20 69 73 20 62 75 .license,......|.//.|.that.is.bu
19020 6e 64 6c 65 64 20 77 69 74 68 20 74 68 69 73 20 70 61 63 6b 61 67 65 20 69 6e 20 74 68 65 20 66 ndled.with.this.package.in.the.f
19040 69 6c 65 20 4c 49 43 45 4e 53 45 2c 20 61 6e 64 20 69 73 20 20 20 20 20 20 20 20 7c 0a 2f 2f 20 ile.LICENSE,.and.is........|.//.
19060 7c 20 61 76 61 69 6c 61 62 6c 65 20 61 74 20 74 68 72 6f 75 67 68 20 74 68 65 20 77 6f 72 6c 64 |.available.at.through.the.world
19080 2d 77 69 64 65 2d 77 65 62 20 61 74 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -wide-web.at....................
190a0 20 20 20 20 20 20 20 7c 0a 2f 2f 20 7c 20 68 74 74 70 3a 2f 2f 77 77 77 2e 70 68 70 2e 6e 65 74 .......|.//.|.http://www.php.net
190c0 2f 6c 69 63 65 6e 73 65 2f 32 5f 30 32 2e 74 78 74 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 /license/2_02.txt...............
190e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 2f 2f 20 7c 20 49 66 20 79 6f 75 ...................|.//.|.If.you
19100 20 64 69 64 20 6e 6f 74 20 72 65 63 65 69 76 65 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 50 .did.not.receive.a.copy.of.the.P
19120 48 50 20 6c 69 63 65 6e 73 65 20 61 6e 64 20 61 72 65 20 75 6e 61 62 6c 65 20 74 6f 20 20 20 7c HP.license.and.are.unable.to...|
19140 0a 2f 2f 20 7c 20 6f 62 74 61 69 6e 20 69 74 20 74 68 72 6f 75 67 68 20 74 68 65 20 77 6f 72 6c .//.|.obtain.it.through.the.worl
19160 64 2d 77 69 64 65 2d 77 65 62 2c 20 70 6c 65 61 73 65 20 73 65 6e 64 20 61 20 6e 6f 74 65 20 74 d-wide-web,.please.send.a.note.t
19180 6f 20 20 20 20 20 20 20 20 20 20 7c 0a 2f 2f 20 7c 20 6c 69 63 65 6e 73 65 40 70 68 70 2e 6e 65 o..........|.//.|.license@php.ne
191a0 74 20 73 6f 20 77 65 20 63 61 6e 20 6d 61 69 6c 20 79 6f 75 20 61 20 63 6f 70 79 20 69 6d 6d 65 t.so.we.can.mail.you.a.copy.imme
191c0 64 69 61 74 65 6c 79 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 2f 2f 20 2b 2d 2d 2d diately................|.//.+---
191e0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
19200 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
19220 2d 2d 2d 2b 0a 2f 2f 20 7c 20 41 75 74 68 6f 72 3a 20 53 74 65 72 6c 69 6e 67 20 48 75 67 68 65 ---+.//.|.Author:.Sterling.Hughe
19240 73 20 3c 73 74 65 72 6c 69 6e 67 40 70 68 70 2e 6e 65 74 3e 20 20 20 20 20 20 20 20 20 20 20 20 s.<sterling@php.net>............
19260 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 2f 2f 20 2b 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ...............|.//.+-----------
19280 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
192a0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2b 0a 2f 2f 0a ---------------------------+.//.
192c0 2f 2f 20 24 49 64 3a 20 69 62 61 73 65 2e 70 68 70 2c 76 20 31 2e 31 32 20 32 30 30 33 2f 30 36 //.$Id:.ibase.php,v.1.12.2003/06
192e0 2f 32 30 20 32 31 3a 30 30 3a 34 33 20 63 6f 78 20 45 78 70 20 24 0a 2f 2f 0a 2f 2f 20 44 61 74 /20.21:00:43.cox.Exp.$.//.//.Dat
19300 61 62 61 73 65 20 69 6e 64 65 70 65 6e 64 65 6e 74 20 71 75 65 72 79 20 69 6e 74 65 72 66 61 63 abase.independent.query.interfac
19320 65 20 64 65 66 69 6e 69 74 69 6f 6e 20 66 6f 72 20 50 48 50 27 73 20 49 6e 74 65 72 62 61 73 65 e.definition.for.PHP's.Interbase
19340 0a 2f 2f 20 65 78 74 65 6e 73 69 6f 6e 2e 0a 2f 2f 0d 0a 2f 2f 20 42 75 67 73 3a 0d 0a 2f 2f 20 .//.extension..//..//.Bugs:..//.
19360 20 2d 20 49 66 20 64 62 73 79 6e 74 61 78 20 69 73 20 6e 6f 74 20 66 69 72 65 62 69 72 64 2c 20 .-.If.dbsyntax.is.not.firebird,.
19380 74 68 65 20 6c 69 6d 69 74 51 75 65 72 79 20 6d 61 79 20 66 61 69 6c 0d 0a 2f 2f 20 20 2d 20 54 the.limitQuery.may.fail..//..-.T
193a0 68 65 20 70 61 6c 63 65 68 6f 6c 64 65 72 73 20 27 26 27 20 61 6e 64 20 27 21 27 20 64 6f 6e 27 he.palceholders.'&'.and.'!'.don'
193c0 74 20 77 6f 72 6b 20 68 65 72 65 0a 0a 72 65 71 75 69 72 65 5f 6f 6e 63 65 20 27 44 42 2f 63 6f t.work.here..require_once.'DB/co
193e0 6d 6d 6f 6e 2e 70 68 70 27 3b 0a 0a 63 6c 61 73 73 20 44 42 5f 69 62 61 73 65 20 65 78 74 65 6e mmon.php';..class.DB_ibase.exten
19400 64 73 20 44 42 5f 63 6f 6d 6d 6f 6e 0a 7b 0a 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 70 72 6f 70 65 ds.DB_common.{......//.{{{.prope
19420 72 74 69 65 73 0a 0a 20 20 20 20 76 61 72 20 24 63 6f 6e 6e 65 63 74 69 6f 6e 3b 0a 20 20 20 20 rties......var.$connection;.....
19440 76 61 72 20 24 70 68 70 74 79 70 65 2c 20 24 64 62 73 79 6e 74 61 78 3b 0a 20 20 20 20 76 61 72 var.$phptype,.$dbsyntax;.....var
19460 20 24 61 75 74 6f 63 6f 6d 6d 69 74 20 3d 20 31 3b 0a 20 20 20 20 76 61 72 20 24 6d 61 6e 69 70 .$autocommit.=.1;.....var.$manip
19480 5f 71 75 65 72 79 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 _query.=.array();......//.}}}...
194a0 20 20 2f 2f 20 7b 7b 7b 20 63 6f 6e 73 74 72 75 63 74 6f 72 0a 0a 20 20 20 20 66 75 6e 63 74 69 ..//.{{{.constructor......functi
194c0 6f 6e 20 44 42 5f 69 62 61 73 65 28 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 24 74 68 69 on.DB_ibase().....{.........$thi
194e0 73 2d 3e 44 42 5f 63 6f 6d 6d 6f 6e 28 29 3b 0a 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 70 s->DB_common();.........$this->p
19500 68 70 74 79 70 65 20 3d 20 27 69 62 61 73 65 27 3b 0a 20 20 20 20 20 20 20 20 24 74 68 69 73 2d hptype.=.'ibase';.........$this-
19520 3e 64 62 73 79 6e 74 61 78 20 3d 20 27 69 62 61 73 65 27 3b 0a 20 20 20 20 20 20 20 20 24 74 68 >dbsyntax.=.'ibase';.........$th
19540 69 73 2d 3e 66 65 61 74 75 72 65 73 20 3d 20 61 72 72 61 79 28 0a 20 20 20 20 20 20 20 20 20 20 is->features.=.array(...........
19560 20 20 27 70 72 65 70 61 72 65 27 20 3d 3e 20 74 72 75 65 2c 0a 20 20 20 20 20 20 20 20 20 20 20 ..'prepare'.=>.true,............
19580 20 27 70 63 6f 6e 6e 65 63 74 27 20 3d 3e 20 74 72 75 65 2c 0a 20 20 20 20 20 20 20 20 20 20 20 .'pconnect'.=>.true,............
195a0 20 27 74 72 61 6e 73 61 63 74 69 6f 6e 73 27 20 3d 3e 20 74 72 75 65 2c 0a 20 20 20 20 20 20 20 .'transactions'.=>.true,........
195c0 20 20 20 20 20 27 6c 69 6d 69 74 27 20 3d 3e 20 66 61 6c 73 65 0a 20 20 20 20 20 20 20 20 29 3b .....'limit'.=>.false.........);
195e0 0d 0a 20 20 20 20 20 20 20 20 2f 2f 20 6a 75 73 74 20 61 20 66 65 77 20 6f 66 20 74 68 65 20 74 ..........//.just.a.few.of.the.t
19600 6f 6e 73 20 6f 66 20 49 6e 74 65 72 62 61 73 65 20 65 72 72 6f 72 20 63 6f 64 65 73 20 6c 69 73 ons.of.Interbase.error.codes.lis
19620 74 65 64 20 69 6e 20 74 68 65 0a 20 20 20 20 20 20 20 20 2f 2f 20 4c 61 6e 67 75 61 67 65 20 52 ted.in.the.........//.Language.R
19640 65 66 65 72 65 6e 63 65 20 73 65 63 74 69 6f 6e 20 6f 66 20 74 68 65 20 49 6e 74 65 72 62 61 73 eference.section.of.the.Interbas
19660 65 20 6d 61 6e 75 61 6c 0a 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 65 72 72 6f 72 63 6f 64 e.manual.........$this->errorcod
19680 65 5f 6d 61 70 20 3d 20 61 72 72 61 79 28 0a 20 20 20 20 20 20 20 20 20 20 20 20 2d 31 30 34 20 e_map.=.array(.............-104.
196a0 3d 3e 20 44 42 5f 45 52 52 4f 52 5f 53 59 4e 54 41 58 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 =>.DB_ERROR_SYNTAX,.............
196c0 2d 31 35 30 20 3d 3e 20 44 42 5f 45 52 52 4f 52 5f 41 43 43 45 53 53 5f 56 49 4f 4c 41 54 49 4f -150.=>.DB_ERROR_ACCESS_VIOLATIO
196e0 4e 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 2d 31 35 31 20 3d 3e 20 44 42 5f 45 52 52 4f 52 5f N,.............-151.=>.DB_ERROR_
19700 41 43 43 45 53 53 5f 56 49 4f 4c 41 54 49 4f 4e 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 2d 31 ACCESS_VIOLATION,.............-1
19720 35 35 20 3d 3e 20 44 42 5f 45 52 52 4f 52 5f 4e 4f 53 55 43 48 54 41 42 4c 45 2c 0a 20 20 20 20 55.=>.DB_ERROR_NOSUCHTABLE,.....
19740 20 20 20 20 20 20 20 20 38 38 20 20 20 3d 3e 20 44 42 5f 45 52 52 4f 52 5f 4e 4f 53 55 43 48 54 ........88...=>.DB_ERROR_NOSUCHT
19760 41 42 4c 45 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 2d 31 35 37 20 3d 3e 20 44 42 5f 45 52 52 ABLE,.............-157.=>.DB_ERR
19780 4f 52 5f 4e 4f 53 55 43 48 46 49 45 4c 44 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 2d 31 35 38 OR_NOSUCHFIELD,.............-158
197a0 20 3d 3e 20 44 42 5f 45 52 52 4f 52 5f 56 41 4c 55 45 5f 43 4f 55 4e 54 5f 4f 4e 5f 52 4f 57 2c .=>.DB_ERROR_VALUE_COUNT_ON_ROW,
197c0 0a 20 20 20 20 20 20 20 20 20 20 20 20 2d 31 37 30 20 3d 3e 20 44 42 5f 45 52 52 4f 52 5f 4d 49 .............-170.=>.DB_ERROR_MI
197e0 53 4d 41 54 43 48 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 2d 31 37 31 20 3d 3e 20 44 42 5f 45 SMATCH,.............-171.=>.DB_E
19800 52 52 4f 52 5f 4d 49 53 4d 41 54 43 48 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 2d 31 37 32 20 RROR_MISMATCH,.............-172.
19820 3d 3e 20 44 42 5f 45 52 52 4f 52 5f 49 4e 56 41 4c 49 44 2c 0a 20 20 20 20 20 20 20 20 20 20 20 =>.DB_ERROR_INVALID,............
19840 20 2d 32 30 34 20 3d 3e 20 44 42 5f 45 52 52 4f 52 5f 49 4e 56 41 4c 49 44 2c 0a 20 20 20 20 20 .-204.=>.DB_ERROR_INVALID,......
19860 20 20 20 20 20 20 20 2d 32 30 35 20 3d 3e 20 44 42 5f 45 52 52 4f 52 5f 4e 4f 53 55 43 48 46 49 .......-205.=>.DB_ERROR_NOSUCHFI
19880 45 4c 44 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 2d 32 30 36 20 3d 3e 20 44 42 5f 45 52 52 4f ELD,.............-206.=>.DB_ERRO
198a0 52 5f 4e 4f 53 55 43 48 46 49 45 4c 44 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 2d 32 30 38 20 R_NOSUCHFIELD,.............-208.
198c0 3d 3e 20 44 42 5f 45 52 52 4f 52 5f 49 4e 56 41 4c 49 44 2c 0a 20 20 20 20 20 20 20 20 20 20 20 =>.DB_ERROR_INVALID,............
198e0 20 2d 32 31 39 20 3d 3e 20 44 42 5f 45 52 52 4f 52 5f 4e 4f 53 55 43 48 54 41 42 4c 45 2c 0a 20 .-219.=>.DB_ERROR_NOSUCHTABLE,..
19900 20 20 20 20 20 20 20 20 20 20 20 2d 32 39 37 20 3d 3e 20 44 42 5f 45 52 52 4f 52 5f 43 4f 4e 53 ...........-297.=>.DB_ERROR_CONS
19920 54 52 41 49 4e 54 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 2d 35 33 30 20 3d 3e 20 44 42 5f 45 TRAINT,.............-530.=>.DB_E
19940 52 52 4f 52 5f 43 4f 4e 53 54 52 41 49 4e 54 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 2d 36 30 RROR_CONSTRAINT,.............-60
19960 37 20 3d 3e 20 44 42 5f 45 52 52 4f 52 5f 4e 4f 53 55 43 48 54 41 42 4c 45 2c 0a 20 20 20 20 20 7.=>.DB_ERROR_NOSUCHTABLE,......
19980 20 20 20 20 20 20 20 2d 38 30 33 20 3d 3e 20 44 42 5f 45 52 52 4f 52 5f 43 4f 4e 53 54 52 41 49 .......-803.=>.DB_ERROR_CONSTRAI
199a0 4e 54 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 2d 35 35 31 20 3d 3e 20 44 42 5f 45 52 52 4f 52 NT,.............-551.=>.DB_ERROR
199c0 5f 41 43 43 45 53 53 5f 56 49 4f 4c 41 54 49 4f 4e 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 2d _ACCESS_VIOLATION,.............-
199e0 35 35 32 20 3d 3e 20 44 42 5f 45 52 52 4f 52 5f 41 43 43 45 53 53 5f 56 49 4f 4c 41 54 49 4f 4e 552.=>.DB_ERROR_ACCESS_VIOLATION
19a00 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 2d 39 32 32 20 3d 3e 20 44 42 5f 45 52 52 4f 52 5f 4e ,.............-922.=>.DB_ERROR_N
19a20 4f 53 55 43 48 44 42 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 2d 39 32 33 20 3d 3e 20 44 42 5f OSUCHDB,.............-923.=>.DB_
19a40 45 52 52 4f 52 5f 43 4f 4e 4e 45 43 54 5f 46 41 49 4c 45 44 2c 0a 20 20 20 20 20 20 20 20 20 20 ERROR_CONNECT_FAILED,...........
19a60 20 20 2d 39 32 34 20 3d 3e 20 44 42 5f 45 52 52 4f 52 5f 43 4f 4e 4e 45 43 54 5f 46 41 49 4c 45 ..-924.=>.DB_ERROR_CONNECT_FAILE
19a80 44 0a 20 20 20 20 20 20 20 20 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 D.........);.....}......//.}}}..
19aa0 20 20 20 2f 2f 20 7b 7b 7b 20 63 6f 6e 6e 65 63 74 28 29 0a 0a 20 20 20 20 66 75 6e 63 74 69 6f ...//.{{{.connect()......functio
19ac0 6e 20 63 6f 6e 6e 65 63 74 28 24 64 73 6e 69 6e 66 6f 2c 20 24 70 65 72 73 69 73 74 65 6e 74 20 n.connect($dsninfo,.$persistent.
19ae0 3d 20 66 61 6c 73 65 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 69 66 20 28 21 44 42 3a 3a =.false).....{.........if.(!DB::
19b00 61 73 73 65 72 74 45 78 74 65 6e 73 69 6f 6e 28 27 69 6e 74 65 72 62 61 73 65 27 29 29 20 7b 0a assertExtension('interbase')).{.
19b20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 61 69 73 65 45 ............return.$this->raiseE
19b40 72 72 6f 72 28 44 42 5f 45 52 52 4f 52 5f 45 58 54 45 4e 53 49 4f 4e 5f 4e 4f 54 5f 46 4f 55 4e rror(DB_ERROR_EXTENSION_NOT_FOUN
19b60 44 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 64 73 6e D);.........}.........$this->dsn
19b80 20 3d 20 24 64 73 6e 69 6e 66 6f 3b 0a 20 20 20 20 20 20 20 20 24 75 73 65 72 20 3d 20 24 64 73 .=.$dsninfo;.........$user.=.$ds
19ba0 6e 69 6e 66 6f 5b 27 75 73 65 72 6e 61 6d 65 27 5d 3b 0a 20 20 20 20 20 20 20 20 24 70 77 20 20 ninfo['username'];.........$pw..
19bc0 20 3d 20 24 64 73 6e 69 6e 66 6f 5b 27 70 61 73 73 77 6f 72 64 27 5d 3b 0a 20 20 20 20 20 20 20 .=.$dsninfo['password'];........
19be0 20 24 64 62 68 6f 73 74 20 3d 20 24 64 73 6e 69 6e 66 6f 5b 27 68 6f 73 74 73 70 65 63 27 5d 20 .$dbhost.=.$dsninfo['hostspec'].
19c00 3f 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 24 64 73 6e 69 6e 66 6f 5b 27 68 ?...................($dsninfo['h
19c20 6f 73 74 73 70 65 63 27 5d 20 2e 20 27 3a 27 20 2e 20 24 64 73 6e 69 6e 66 6f 5b 27 64 61 74 61 ostspec']...':'...$dsninfo['data
19c40 62 61 73 65 27 5d 29 20 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 64 73 6e base']).:...................$dsn
19c60 69 6e 66 6f 5b 27 64 61 74 61 62 61 73 65 27 5d 3b 0a 0a 20 20 20 20 20 20 20 20 24 63 6f 6e 6e info['database'];..........$conn
19c80 65 63 74 5f 66 75 6e 63 74 69 6f 6e 20 3d 20 24 70 65 72 73 69 73 74 65 6e 74 20 3f 20 27 69 62 ect_function.=.$persistent.?.'ib
19ca0 61 73 65 5f 70 63 6f 6e 6e 65 63 74 27 20 3a 20 27 69 62 61 73 65 5f 63 6f 6e 6e 65 63 74 27 3b ase_pconnect'.:.'ibase_connect';
19cc0 0a 0a 20 20 20 20 20 20 20 20 24 70 61 72 61 6d 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 20 20 20 ..........$params.=.array();....
19ce0 20 20 20 20 20 24 70 61 72 61 6d 73 5b 5d 20 3d 20 24 64 62 68 6f 73 74 3b 0a 20 20 20 20 20 20 .....$params[].=.$dbhost;.......
19d00 20 20 24 70 61 72 61 6d 73 5b 5d 20 3d 20 21 65 6d 70 74 79 28 24 75 73 65 72 29 20 3f 20 24 75 ..$params[].=.!empty($user).?.$u
19d20 73 65 72 20 3a 20 6e 75 6c 6c 3b 0a 20 20 20 20 20 20 20 20 24 70 61 72 61 6d 73 5b 5d 20 3d 20 ser.:.null;.........$params[].=.
19d40 21 65 6d 70 74 79 28 24 70 77 29 20 3f 20 24 70 77 20 3a 20 6e 75 6c 6c 3b 0a 20 20 20 20 20 20 !empty($pw).?.$pw.:.null;.......
19d60 20 20 24 70 61 72 61 6d 73 5b 5d 20 3d 20 69 73 73 65 74 28 24 64 73 6e 69 6e 66 6f 5b 27 63 68 ..$params[].=.isset($dsninfo['ch
19d80 61 72 73 65 74 27 5d 29 20 3f 20 24 64 73 6e 69 6e 66 6f 5b 27 63 68 61 72 73 65 74 27 5d 20 3a arset']).?.$dsninfo['charset'].:
19da0 20 6e 75 6c 6c 3b 0a 20 20 20 20 20 20 20 20 24 70 61 72 61 6d 73 5b 5d 20 3d 20 69 73 73 65 74 .null;.........$params[].=.isset
19dc0 28 24 64 73 6e 69 6e 66 6f 5b 27 62 75 66 66 65 72 73 27 5d 29 20 3f 20 24 64 73 6e 69 6e 66 6f ($dsninfo['buffers']).?.$dsninfo
19de0 5b 27 62 75 66 66 65 72 73 27 5d 20 3a 20 6e 75 6c 6c 3b 0a 20 20 20 20 20 20 20 20 24 70 61 72 ['buffers'].:.null;.........$par
19e00 61 6d 73 5b 5d 20 3d 20 69 73 73 65 74 28 24 64 73 6e 69 6e 66 6f 5b 27 64 69 61 6c 65 63 74 27 ams[].=.isset($dsninfo['dialect'
19e20 5d 29 20 3f 20 24 64 73 6e 69 6e 66 6f 5b 27 64 69 61 6c 65 63 74 27 5d 20 3a 20 6e 75 6c 6c 3b ]).?.$dsninfo['dialect'].:.null;
19e40 0a 20 20 20 20 20 20 20 20 24 70 61 72 61 6d 73 5b 5d 20 3d 20 69 73 73 65 74 28 24 64 73 6e 69 .........$params[].=.isset($dsni
19e60 6e 66 6f 5b 27 72 6f 6c 65 27 5d 29 20 20 20 20 3f 20 24 64 73 6e 69 6e 66 6f 5b 27 72 6f 6c 65 nfo['role'])....?.$dsninfo['role
19e80 27 5d 20 3a 20 6e 75 6c 6c 3b 0a 0a 20 20 20 20 20 20 20 20 2f 2a 0a 20 20 20 20 20 20 20 20 69 '].:.null;........../*.........i
19ea0 66 20 28 24 64 62 68 6f 73 74 20 26 26 20 24 75 73 65 72 20 26 26 20 24 70 77 29 20 7b 0a 20 20 f.($dbhost.&&.$user.&&.$pw).{...
19ec0 20 20 20 20 20 20 20 20 20 20 24 63 6f 6e 6e 20 3d 20 24 63 6f 6e 6e 65 63 74 5f 66 75 6e 63 74 ..........$conn.=.$connect_funct
19ee0 69 6f 6e 28 24 64 62 68 6f 73 74 2c 20 24 75 73 65 72 2c 20 24 70 77 29 3b 0a 20 20 20 20 20 20 ion($dbhost,.$user,.$pw);.......
19f00 20 20 7d 20 65 6c 73 65 69 66 20 28 24 64 62 68 6f 73 74 20 26 26 20 24 75 73 65 72 29 20 7b 0a ..}.elseif.($dbhost.&&.$user).{.
19f20 20 20 20 20 20 20 20 20 20 20 20 20 24 63 6f 6e 6e 20 3d 20 24 63 6f 6e 6e 65 63 74 5f 66 75 6e ............$conn.=.$connect_fun
19f40 63 74 69 6f 6e 28 24 64 62 68 6f 73 74 2c 20 24 75 73 65 72 29 3b 0a 20 20 20 20 20 20 20 20 7d ction($dbhost,.$user);.........}
19f60 20 65 6c 73 65 69 66 20 28 24 64 62 68 6f 73 74 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 .elseif.($dbhost).{.............
19f80 24 63 6f 6e 6e 20 3d 20 24 63 6f 6e 6e 65 63 74 5f 66 75 6e 63 74 69 6f 6e 28 24 64 62 68 6f 73 $conn.=.$connect_function($dbhos
19fa0 74 29 3b 0a 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 t);.........}.else.{............
19fc0 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 61 69 73 65 45 72 72 6f 72 28 22 6e 6f 20 68 6f .return.$this->raiseError("no.ho
19fe0 73 74 2c 20 75 73 65 72 20 6f 72 20 70 61 73 73 77 6f 72 64 22 29 3b 0a 20 20 20 20 20 20 20 20 st,.user.or.password");.........
1a000 7d 0a 20 20 20 20 20 20 20 20 2a 2f 0a 20 20 20 20 20 20 20 20 24 63 6f 6e 6e 20 3d 20 40 63 61 }.........*/.........$conn.=.@ca
1a020 6c 6c 5f 75 73 65 72 5f 66 75 6e 63 5f 61 72 72 61 79 28 24 63 6f 6e 6e 65 63 74 5f 66 75 6e 63 ll_user_func_array($connect_func
1a040 74 69 6f 6e 2c 20 24 70 61 72 61 6d 73 29 3b 0a 20 20 20 20 20 20 20 20 69 66 20 28 21 24 63 6f tion,.$params);.........if.(!$co
1a060 6e 6e 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e nn).{.............return.$this->
1a080 69 62 61 73 65 52 61 69 73 65 45 72 72 6f 72 28 44 42 5f 45 52 52 4f 52 5f 43 4f 4e 4e 45 43 54 ibaseRaiseError(DB_ERROR_CONNECT
1a0a0 5f 46 41 49 4c 45 44 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 24 74 68 69 _FAILED);.........}.........$thi
1a0c0 73 2d 3e 63 6f 6e 6e 65 63 74 69 6f 6e 20 3d 20 24 63 6f 6e 6e 3b 0d 0a 20 20 20 20 20 20 20 20 s->connection.=.$conn;..........
1a0e0 69 66 20 28 24 74 68 69 73 2d 3e 64 73 6e 5b 27 64 62 73 79 6e 74 61 78 27 5d 20 3d 3d 20 27 66 if.($this->dsn['dbsyntax'].==.'f
1a100 69 72 65 62 69 72 64 27 29 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e irebird').{..............$this->
1a120 66 65 61 74 75 72 65 73 5b 27 6c 69 6d 69 74 27 5d 20 3d 20 27 61 6c 74 65 72 27 3b 0d 0a 20 20 features['limit'].=.'alter';....
1a140 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 44 42 5f 4f 4b 3b 0a 20 20 ......}.........return.DB_OK;...
1a160 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 64 69 73 63 6f ..}......//.}}}.....//.{{{.disco
1a180 6e 6e 65 63 74 28 29 0a 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 64 69 73 63 6f 6e 6e 65 63 74 nnect()......function.disconnect
1a1a0 28 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 24 72 65 74 20 3d 20 40 69 62 61 73 65 5f 63 ().....{.........$ret.=.@ibase_c
1a1c0 6c 6f 73 65 28 24 74 68 69 73 2d 3e 63 6f 6e 6e 65 63 74 69 6f 6e 29 3b 0a 20 20 20 20 20 20 20 lose($this->connection);........
1a1e0 20 24 74 68 69 73 2d 3e 63 6f 6e 6e 65 63 74 69 6f 6e 20 3d 20 6e 75 6c 6c 3b 0a 20 20 20 20 20 .$this->connection.=.null;......
1a200 20 20 20 72 65 74 75 72 6e 20 24 72 65 74 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d ...return.$ret;.....}......//.}}
1a220 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 73 69 6d 70 6c 65 51 75 65 72 79 28 29 0a 0a 20 20 20 20 }.....//.{{{.simpleQuery()......
1a240 66 75 6e 63 74 69 6f 6e 20 73 69 6d 70 6c 65 51 75 65 72 79 28 24 71 75 65 72 79 29 0a 20 20 20 function.simpleQuery($query)....
1a260 20 7b 0a 20 20 20 20 20 20 20 20 24 69 73 6d 61 6e 69 70 20 3d 20 44 42 3a 3a 69 73 4d 61 6e 69 .{.........$ismanip.=.DB::isMani
1a280 70 28 24 71 75 65 72 79 29 3b 0a 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 6c 61 73 74 5f 71 p($query);.........$this->last_q
1a2a0 75 65 72 79 20 3d 20 24 71 75 65 72 79 3b 0a 20 20 20 20 20 20 20 20 24 71 75 65 72 79 20 3d 20 uery.=.$query;.........$query.=.
1a2c0 24 74 68 69 73 2d 3e 6d 6f 64 69 66 79 51 75 65 72 79 28 24 71 75 65 72 79 29 3b 0d 0a 20 20 20 $this->modifyQuery($query);.....
1a2e0 20 20 20 20 20 24 72 65 73 75 6c 74 20 3d 20 40 69 62 61 73 65 5f 71 75 65 72 79 28 24 74 68 69 .....$result.=.@ibase_query($thi
1a300 73 2d 3e 63 6f 6e 6e 65 63 74 69 6f 6e 2c 20 24 71 75 65 72 79 29 3b 0a 20 20 20 20 20 20 20 20 s->connection,.$query);.........
1a320 69 66 20 28 21 24 72 65 73 75 6c 74 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 if.(!$result).{.............retu
1a340 72 6e 20 24 74 68 69 73 2d 3e 69 62 61 73 65 52 61 69 73 65 45 72 72 6f 72 28 29 3b 0a 20 20 20 rn.$this->ibaseRaiseError();....
1a360 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 69 66 20 28 24 74 68 69 73 2d 3e 61 75 74 6f 63 6f .....}.........if.($this->autoco
1a380 6d 6d 69 74 20 26 26 20 24 69 73 6d 61 6e 69 70 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 mmit.&&.$ismanip).{.............
1a3a0 69 62 61 73 65 5f 63 6f 6d 6d 69 74 28 24 74 68 69 73 2d 3e 63 6f 6e 6e 65 63 74 69 6f 6e 29 3b ibase_commit($this->connection);
1a3c0 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 2f 2f 20 44 65 74 65 72 6d 69 6e 65 20 .........}.........//.Determine.
1a3e0 77 68 69 63 68 20 71 75 65 72 69 65 73 20 74 68 61 74 20 73 68 6f 75 6c 64 20 72 65 74 75 72 6e which.queries.that.should.return
1a400 20 64 61 74 61 2c 20 61 6e 64 20 77 68 69 63 68 0a 20 20 20 20 20 20 20 20 2f 2f 20 73 68 6f 75 .data,.and.which.........//.shou
1a420 6c 64 20 72 65 74 75 72 6e 20 61 6e 20 65 72 72 6f 72 20 63 6f 64 65 20 6f 6e 6c 79 2e 0a 20 20 ld.return.an.error.code.only....
1a440 20 20 20 20 20 20 72 65 74 75 72 6e 20 44 42 3a 3a 69 73 4d 61 6e 69 70 28 24 71 75 65 72 79 29 ......return.DB::isManip($query)
1a460 20 3f 20 44 42 5f 4f 4b 20 3a 20 24 72 65 73 75 6c 74 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f .?.DB_OK.:.$result;.....}....../
1a480 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 6d 6f 64 69 66 79 4c 69 6d 69 74 51 75 65 72 /.}}}.....//.{{{.modifyLimitQuer
1a4a0 79 28 29 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 2a 20 54 68 69 73 20 6d 65 74 68 6f 64 20 69 y()....../**.....*.This.method.i
1a4c0 73 20 75 73 65 64 20 62 79 20 62 61 63 6b 65 6e 64 73 20 74 6f 20 61 6c 74 65 72 20 6c 69 6d 69 s.used.by.backends.to.alter.limi
1a4e0 74 65 64 20 71 75 65 72 69 65 73 0a 20 20 20 20 2a 20 55 73 65 73 20 74 68 65 20 6e 65 77 20 46 ted.queries.....*.Uses.the.new.F
1a500 49 52 53 54 20 6e 20 53 4b 49 50 20 6e 20 46 69 72 65 62 69 72 64 20 31 2e 30 20 73 79 6e 74 61 IRST.n.SKIP.n.Firebird.1.0.synta
1a520 78 2c 20 73 6f 20 69 74 20 69 73 0a 20 20 20 20 2a 20 6f 6e 6c 79 20 63 6f 6d 70 61 74 69 62 6c x,.so.it.is.....*.only.compatibl
1a540 65 20 77 69 74 68 20 46 69 72 65 62 69 72 64 20 31 2e 78 0a 20 20 20 20 2a 0a 20 20 20 20 2a 20 e.with.Firebird.1.x.....*.....*.
1a560 40 70 61 72 61 6d 20 73 74 72 69 6e 67 20 20 24 71 75 65 72 79 20 71 75 65 72 79 20 74 6f 20 6d @param.string..$query.query.to.m
1a580 6f 64 69 66 79 0a 20 20 20 20 2a 20 40 70 61 72 61 6d 20 69 6e 74 65 67 65 72 20 24 66 72 6f 6d odify.....*.@param.integer.$from
1a5a0 20 20 74 68 65 20 72 6f 77 20 74 6f 20 73 74 61 72 74 20 74 6f 20 66 65 74 63 68 69 6e 67 0a 20 ..the.row.to.start.to.fetching..
1a5c0 20 20 20 2a 20 40 70 61 72 61 6d 20 69 6e 74 65 67 65 72 20 24 63 6f 75 6e 74 20 74 68 65 20 6e ...*.@param.integer.$count.the.n
1a5e0 75 6d 62 65 72 73 20 6f 66 20 72 6f 77 73 20 74 6f 20 66 65 74 63 68 0a 20 20 20 20 2a 0a 20 20 umbers.of.rows.to.fetch.....*...
1a600 20 20 2a 20 40 72 65 74 75 72 6e 20 74 68 65 20 6e 65 77 20 28 6d 6f 64 69 66 69 65 64 29 20 71 ..*.@return.the.new.(modified).q
1a620 75 65 72 79 0a 20 20 20 20 2a 20 40 61 75 74 68 6f 72 20 4c 75 64 6f 76 69 63 6f 20 4d 61 67 6e uery.....*.@author.Ludovico.Magn
1a640 6f 63 61 76 61 6c 6c 6f 20 3c 6c 75 64 6f 40 73 75 6d 61 74 72 61 73 6f 6c 75 74 69 6f 6e 73 2e ocavallo.<ludo@sumatrasolutions.
1a660 63 6f 6d 3e 0a 20 20 20 20 2a 20 40 61 63 63 65 73 73 20 70 72 69 76 61 74 65 0a 20 20 20 20 2a com>.....*.@access.private.....*
1a680 2f 0a 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 6d 6f 64 69 66 79 4c 69 6d 69 74 51 75 65 72 79 /......function.modifyLimitQuery
1a6a0 28 24 71 75 65 72 79 2c 20 24 66 72 6f 6d 2c 20 24 63 6f 75 6e 74 29 0a 20 20 20 20 7b 0a 20 20 ($query,.$from,.$count).....{...
1a6c0 20 20 20 20 20 20 69 66 20 28 24 74 68 69 73 2d 3e 64 73 6e 5b 27 64 62 73 79 6e 74 61 78 27 5d ......if.($this->dsn['dbsyntax']
1a6e0 20 3d 3d 20 27 66 69 72 65 62 69 72 64 27 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f .==.'firebird').{.............//
1a700 24 66 72 6f 6d 2b 2b 3b 20 2f 2f 20 53 4b 49 50 20 73 74 61 72 74 73 20 66 72 6f 6d 20 31 2c 20 $from++;.//.SKIP.starts.from.1,.
1a720 69 65 20 53 4b 49 50 20 31 20 73 74 61 72 74 73 20 66 72 6f 6d 20 74 68 65 20 66 69 72 73 74 20 ie.SKIP.1.starts.from.the.first.
1a740 72 65 63 6f 72 64 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 record..........................
1a760 20 20 20 2f 2f 20 28 63 6f 78 29 20 53 65 65 6d 73 20 74 68 61 74 20 53 4b 49 50 20 73 74 61 72 ...//.(cox).Seems.that.SKIP.star
1a780 74 73 20 69 6e 20 30 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 71 75 65 72 79 20 3d 20 70 72 65 ts.in.0.............$query.=.pre
1a7a0 67 5f 72 65 70 6c 61 63 65 28 27 2f 5e 5c 73 2a 73 65 6c 65 63 74 5c 73 28 2e 2a 29 24 2f 69 73 g_replace('/^\s*select\s(.*)$/is
1a7c0 27 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ',..............................
1a7e0 20 20 20 20 20 22 53 45 4c 45 43 54 20 46 49 52 53 54 20 24 63 6f 75 6e 74 20 53 4b 49 50 20 24 ....."SELECT.FIRST.$count.SKIP.$
1a800 66 72 6f 6d 20 24 31 22 2c 20 24 71 75 65 72 79 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 from.$1",.$query);.........}....
1a820 20 20 20 20 20 72 65 74 75 72 6e 20 24 71 75 65 72 79 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f .....return.$query;.....}....../
1a840 2f 20 7d 7d 7d 0a 0a 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 6e 65 78 74 52 65 73 75 6c 74 28 29 0a /.}}}.......//.{{{.nextResult().
1a860 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 4d 6f 76 65 20 74 68 65 20 69 6e 74 65 72 6e 61 ...../**......*.Move.the.interna
1a880 6c 20 69 62 61 73 65 20 72 65 73 75 6c 74 20 70 6f 69 6e 74 65 72 20 74 6f 20 74 68 65 20 6e 65 l.ibase.result.pointer.to.the.ne
1a8a0 78 74 20 61 76 61 69 6c 61 62 6c 65 20 72 65 73 75 6c 74 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 xt.available.result......*......
1a8c0 2a 20 40 70 61 72 61 6d 20 61 20 76 61 6c 69 64 20 66 62 73 71 6c 20 72 65 73 75 6c 74 20 72 65 *.@param.a.valid.fbsql.result.re
1a8e0 73 6f 75 72 63 65 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 61 63 63 65 73 73 20 70 75 62 source......*......*.@access.pub
1a900 6c 69 63 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 72 65 74 75 72 6e 20 74 72 75 65 20 69 lic......*......*.@return.true.i
1a920 66 20 61 20 72 65 73 75 6c 74 20 69 73 20 61 76 61 69 6c 61 62 6c 65 20 6f 74 68 65 72 77 69 73 f.a.result.is.available.otherwis
1a940 65 20 72 65 74 75 72 6e 20 66 61 6c 73 65 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 66 75 6e 63 74 e.return.false......*/.....funct
1a960 69 6f 6e 20 6e 65 78 74 52 65 73 75 6c 74 28 24 72 65 73 75 6c 74 29 0a 20 20 20 20 7b 0a 20 20 ion.nextResult($result).....{...
1a980 20 20 20 20 20 20 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f ......return.false;.....}....../
1a9a0 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 66 65 74 63 68 49 6e 74 6f 28 29 0a 0a 20 20 /.}}}.....//.{{{.fetchInto()....
1a9c0 20 20 66 75 6e 63 74 69 6f 6e 20 66 65 74 63 68 49 6e 74 6f 28 24 72 65 73 75 6c 74 2c 20 26 24 ..function.fetchInto($result,.&$
1a9e0 61 72 2c 20 24 66 65 74 63 68 6d 6f 64 65 2c 20 24 72 6f 77 6e 75 6d 20 3d 20 6e 75 6c 6c 29 0a ar,.$fetchmode,.$rownum.=.null).
1aa00 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 20 69 66 20 28 24 72 6f 77 6e 75 6d 20 21 3d 3d 20 4e ....{..........if.($rownum.!==.N
1aa20 55 4c 4c 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d ULL).{.............return.$this-
1aa40 3e 69 62 61 73 65 52 61 69 73 65 45 72 72 6f 72 28 44 42 5f 45 52 52 4f 52 5f 4e 4f 54 5f 43 41 >ibaseRaiseError(DB_ERROR_NOT_CA
1aa60 50 41 42 4c 45 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 69 66 20 28 24 66 PABLE);.........}.........if.($f
1aa80 65 74 63 68 6d 6f 64 65 20 26 20 44 42 5f 46 45 54 43 48 4d 4f 44 45 5f 41 53 53 4f 43 29 20 7b etchmode.&.DB_FETCHMODE_ASSOC).{
1aaa0 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 66 75 6e 63 74 69 6f 6e 5f 65 78 69 73 74 ..............if.(function_exist
1aac0 73 28 27 69 62 61 73 65 5f 66 65 74 63 68 5f 61 73 73 6f 63 27 29 29 20 7b 0d 0a 20 20 20 20 20 s('ibase_fetch_assoc')).{.......
1aae0 20 20 20 20 20 20 20 20 20 20 20 24 61 72 20 3d 20 40 69 62 61 73 65 5f 66 65 74 63 68 5f 61 73 ...........$ar.=.@ibase_fetch_as
1ab00 73 6f 63 28 24 72 65 73 75 6c 74 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 20 65 6c 73 soc($result);..............}.els
1ab20 65 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 61 72 20 3d 20 67 65 74 5f 6f 62 e.{.................$ar.=.get_ob
1ab40 6a 65 63 74 5f 76 61 72 73 28 69 62 61 73 65 5f 66 65 74 63 68 5f 6f 62 6a 65 63 74 28 24 72 65 ject_vars(ibase_fetch_object($re
1ab60 73 75 6c 74 29 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 sult));..............}..........
1ab80 20 20 20 69 66 20 28 24 61 72 20 26 26 20 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 5b 27 6f 70 ...if.($ar.&&.$this->options['op
1aba0 74 69 6d 69 7a 65 27 5d 20 3d 3d 20 27 70 6f 72 74 61 62 69 6c 69 74 79 27 29 20 7b 0a 20 20 20 timize'].==.'portability').{....
1abc0 20 20 20 20 20 20 20 20 20 20 20 20 20 24 61 72 20 3d 20 61 72 72 61 79 5f 63 68 61 6e 67 65 5f .............$ar.=.array_change_
1abe0 6b 65 79 5f 63 61 73 65 28 24 61 72 2c 20 43 41 53 45 5f 4c 4f 57 45 52 29 3b 0a 20 20 20 20 20 key_case($ar,.CASE_LOWER);......
1ac00 20 20 20 20 20 20 20 7d 0d 0a 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 .......}..........}.else.{......
1ac20 20 20 20 20 20 20 20 24 61 72 20 3d 20 40 69 62 61 73 65 5f 66 65 74 63 68 5f 72 6f 77 28 24 72 .......$ar.=.@ibase_fetch_row($r
1ac40 65 73 75 6c 74 29 3b 0a 20 20 20 20 20 20 20 20 7d 0d 0a 20 20 20 20 20 20 20 20 69 66 20 28 21 esult);.........}..........if.(!
1ac60 24 61 72 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 24 65 72 72 6d 73 67 20 3d $ar).{.............if.($errmsg.=
1ac80 20 69 62 61 73 65 5f 65 72 72 6d 73 67 28 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 .ibase_errmsg()).{..............
1aca0 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 69 62 61 73 65 52 61 69 73 65 45 72 72 6f 72 ...return.$this->ibaseRaiseError
1acc0 28 6e 75 6c 6c 2c 20 24 65 72 72 6d 73 67 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 20 65 (null,.$errmsg);.............}.e
1ace0 6c 73 65 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 6e 75 lse.{..................return.nu
1ad00 6c 6c 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 ll;.............}.........}.....
1ad20 20 20 20 20 72 65 74 75 72 6e 20 44 42 5f 4f 4b 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 ....return.DB_OK;.....}......//.
1ad40 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 66 72 65 65 52 65 73 75 6c 74 28 29 0a 0a 20 20 20 }}}.....//.{{{.freeResult().....
1ad60 20 66 75 6e 63 74 69 6f 6e 20 66 72 65 65 52 65 73 75 6c 74 28 24 72 65 73 75 6c 74 29 0a 20 20 .function.freeResult($result)...
1ad80 20 20 7b 0a 20 20 20 20 20 20 20 20 69 66 20 28 69 73 5f 72 65 73 6f 75 72 63 65 28 24 72 65 73 ..{.........if.(is_resource($res
1ada0 75 6c 74 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 69 62 61 73 65 ult)).{.............return.ibase
1adc0 5f 66 72 65 65 5f 72 65 73 75 6c 74 28 24 72 65 73 75 6c 74 29 3b 0a 20 20 20 20 20 20 20 20 7d _free_result($result);.........}
1ade0 0a 20 20 20 20 20 20 20 20 69 66 20 28 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 70 72 65 70 61 .........if.(!isset($this->prepa
1ae00 72 65 5f 74 6f 6b 65 6e 73 5b 28 69 6e 74 29 24 72 65 73 75 6c 74 5d 29 29 20 7b 0a 20 20 20 20 re_tokens[(int)$result])).{.....
1ae20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 20 20 20 20 20 20 20 20 7d 0a ........return.false;.........}.
1ae40 20 20 20 20 20 20 20 20 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 70 72 65 70 61 72 65 5f 74 6f 6b ........unset($this->prepare_tok
1ae60 65 6e 73 5b 28 69 6e 74 29 24 72 65 73 75 6c 74 5d 29 3b 0a 20 20 20 20 20 20 20 20 75 6e 73 65 ens[(int)$result]);.........unse
1ae80 74 28 24 74 68 69 73 2d 3e 70 72 65 70 61 72 65 5f 74 79 70 65 73 5b 28 69 6e 74 29 24 72 65 73 t($this->prepare_types[(int)$res
1aea0 75 6c 74 5d 29 3b 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 20 20 20 20 ult]);.........return.true;.....
1aec0 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 66 72 65 65 51 75 65 }......//.}}}.....//.{{{.freeQue
1aee0 72 79 28 29 0a 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 66 72 65 65 51 75 65 72 79 28 24 71 75 ry()......function.freeQuery($qu
1af00 65 72 79 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 69 62 61 73 65 5f 66 72 65 65 5f 71 75 ery).....{.........ibase_free_qu
1af20 65 72 79 28 24 71 75 65 72 79 29 3b 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 74 72 75 65 ery($query);.........return.true
1af40 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 6e ;.....}......//.}}}.....//.{{{.n
1af60 75 6d 43 6f 6c 73 28 29 0a 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 6e 75 6d 43 6f 6c 73 28 24 umCols()......function.numCols($
1af80 72 65 73 75 6c 74 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 24 63 6f 6c 73 20 3d 20 69 62 result).....{.........$cols.=.ib
1afa0 61 73 65 5f 6e 75 6d 5f 66 69 65 6c 64 73 28 24 72 65 73 75 6c 74 29 3b 0a 20 20 20 20 20 20 20 ase_num_fields($result);........
1afc0 20 69 66 20 28 21 24 63 6f 6c 73 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 .if.(!$cols).{.............retur
1afe0 6e 20 24 74 68 69 73 2d 3e 69 62 61 73 65 52 61 69 73 65 45 72 72 6f 72 28 29 3b 0a 20 20 20 20 n.$this->ibaseRaiseError();.....
1b000 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 63 6f 6c 73 3b 0a 20 20 20 20 ....}.........return.$cols;.....
1b020 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 70 72 65 70 61 72 65 }......//.}}}.....//.{{{.prepare
1b040 28 29 0a 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 50 72 65 70 61 72 65 73 20 61 20 71 ()......./**......*.Prepares.a.q
1b060 75 65 72 79 20 66 6f 72 20 6d 75 6c 74 69 70 6c 65 20 65 78 65 63 75 74 69 6f 6e 20 77 69 74 68 uery.for.multiple.execution.with
1b080 20 65 78 65 63 75 74 65 28 29 2e 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 24 71 75 65 72 79 .execute().......*.@param.$query
1b0a0 20 71 75 65 72 79 20 74 6f 20 62 65 20 70 72 65 70 61 72 65 64 0a 20 20 20 20 20 2a 0a 20 20 20 .query.to.be.prepared......*....
1b0c0 20 20 2a 20 40 72 65 74 75 72 6e 20 44 42 20 73 74 61 74 65 6d 65 6e 74 20 72 65 73 6f 75 72 63 ..*.@return.DB.statement.resourc
1b0e0 65 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 70 72 65 70 61 72 65 28 24 e......*/.....function.prepare($
1b100 71 75 65 72 79 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 24 74 6f 6b 65 6e 73 20 3d 20 73 query).....{.........$tokens.=.s
1b120 70 6c 69 74 28 27 5b 5c 26 5c 3f 5d 27 2c 20 24 71 75 65 72 79 29 3b 0a 20 20 20 20 20 20 20 20 plit('[\&\?]',.$query);.........
1b140 24 74 6f 6b 65 6e 20 3d 20 30 3b 0a 20 20 20 20 20 20 20 20 24 74 79 70 65 73 20 3d 20 61 72 72 $token.=.0;.........$types.=.arr
1b160 61 79 28 29 3b 0a 20 20 20 20 20 20 20 20 24 71 6c 65 6e 20 3d 20 73 74 72 6c 65 6e 28 24 71 75 ay();.........$qlen.=.strlen($qu
1b180 65 72 79 29 3b 0a 20 20 20 20 20 20 20 20 66 6f 72 20 28 24 69 20 3d 20 30 3b 20 24 69 20 3c 20 ery);.........for.($i.=.0;.$i.<.
1b1a0 24 71 6c 65 6e 3b 20 24 69 2b 2b 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 73 77 69 74 63 $qlen;.$i++).{.............switc
1b1c0 68 20 28 24 71 75 65 72 79 5b 24 69 5d 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 h.($query[$i]).{................
1b1e0 20 63 61 73 65 20 27 3f 27 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 .case.'?':.....................$
1b200 74 79 70 65 73 5b 24 74 6f 6b 65 6e 2b 2b 5d 20 3d 20 44 42 5f 50 41 52 41 4d 5f 53 43 41 4c 41 types[$token++].=.DB_PARAM_SCALA
1b220 52 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 72 65 61 6b 3b 0a 20 20 R;.....................break;...
1b240 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 61 73 65 20 27 26 27 3a 0a 20 20 20 20 20 20 20 20 ..............case.'&':.........
1b260 20 20 20 20 20 20 20 20 20 20 20 20 24 74 79 70 65 73 5b 24 74 6f 6b 65 6e 2b 2b 5d 20 3d 20 44 ............$types[$token++].=.D
1b280 42 5f 50 41 52 41 4d 5f 4f 50 41 51 55 45 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 B_PARAM_OPAQUE;.................
1b2a0 20 20 20 20 62 72 65 61 6b 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 ....break;.............}........
1b2c0 20 7d 0a 20 20 20 20 20 20 20 20 24 6e 65 77 71 75 65 72 79 20 3d 20 73 74 72 74 72 28 24 71 75 .}.........$newquery.=.strtr($qu
1b2e0 65 72 79 2c 20 27 26 27 2c 20 27 3f 27 29 3b 0d 0a 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e ery,.'&',.'?');..........$this->
1b300 6c 61 73 74 5f 71 75 65 72 79 20 3d 20 24 71 75 65 72 79 3b 0a 20 20 20 20 20 20 20 20 24 6e 65 last_query.=.$query;.........$ne
1b320 77 71 75 65 72 79 20 3d 20 24 74 68 69 73 2d 3e 6d 6f 64 69 66 79 51 75 65 72 79 28 24 6e 65 77 wquery.=.$this->modifyQuery($new
1b340 71 75 65 72 79 29 3b 0d 0a 20 20 20 20 20 20 20 20 24 73 74 6d 74 20 3d 20 69 62 61 73 65 5f 70 query);..........$stmt.=.ibase_p
1b360 72 65 70 61 72 65 28 24 74 68 69 73 2d 3e 63 6f 6e 6e 65 63 74 69 6f 6e 2c 20 24 6e 65 77 71 75 repare($this->connection,.$newqu
1b380 65 72 79 29 3b 0a 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 70 72 65 70 61 72 65 5f 74 79 70 ery);.........$this->prepare_typ
1b3a0 65 73 5b 28 69 6e 74 29 24 73 74 6d 74 5d 20 3d 20 24 74 79 70 65 73 3b 0a 20 20 20 20 20 20 20 es[(int)$stmt].=.$types;........
1b3c0 20 24 74 68 69 73 2d 3e 6d 61 6e 69 70 5f 71 75 65 72 79 5b 28 69 6e 74 29 24 73 74 6d 74 5d 20 .$this->manip_query[(int)$stmt].
1b3e0 20 20 3d 20 44 42 3a 3a 69 73 4d 61 6e 69 70 28 24 71 75 65 72 79 29 3b 0a 20 20 20 20 20 20 20 ..=.DB::isManip($query);........
1b400 20 72 65 74 75 72 6e 20 24 73 74 6d 74 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d .return.$stmt;.....}......//.}}}
1b420 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 65 78 65 63 75 74 65 28 29 0a 0a 20 20 20 20 2f 2a 2a 0a 20 .....//.{{{.execute()....../**..
1b440 20 20 20 20 2a 20 45 78 65 63 75 74 65 73 20 61 20 44 42 20 73 74 61 74 65 6d 65 6e 74 20 70 72 ....*.Executes.a.DB.statement.pr
1b460 65 70 61 72 65 64 20 77 69 74 68 20 70 72 65 70 61 72 65 28 29 2e 0a 20 20 20 20 20 2a 0a 20 20 epared.with.prepare().......*...
1b480 20 20 20 2a 20 40 70 61 72 61 6d 20 24 73 74 6d 74 20 61 20 44 42 20 73 74 61 74 65 6d 65 6e 74 ...*.@param.$stmt.a.DB.statement
1b4a0 20 72 65 73 6f 75 72 63 65 20 28 72 65 74 75 72 6e 65 64 20 66 72 6f 6d 20 70 72 65 70 61 72 65 .resource.(returned.from.prepare
1b4c0 28 29 29 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 24 64 61 74 61 20 64 61 74 61 20 74 6f 20 ())......*.@param.$data.data.to.
1b4e0 62 65 20 75 73 65 64 20 69 6e 20 65 78 65 63 75 74 69 6f 6e 20 6f 66 20 74 68 65 20 73 74 61 74 be.used.in.execution.of.the.stat
1b500 65 6d 65 6e 74 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 72 65 74 75 72 6e 20 69 6e 74 20 ement......*......*.@return.int.
1b520 72 65 74 75 72 6e 73 20 61 6e 20 6f 63 69 38 20 72 65 73 75 6c 74 20 72 65 73 6f 75 72 63 65 20 returns.an.oci8.result.resource.
1b540 66 6f 72 20 73 75 63 63 65 73 73 66 75 6c 0a 20 20 20 20 20 2a 20 53 45 4c 45 43 54 20 71 75 65 for.successful......*.SELECT.que
1b560 72 69 65 73 2c 20 44 42 5f 4f 4b 20 66 6f 72 20 6f 74 68 65 72 20 73 75 63 63 65 73 73 66 75 6c ries,.DB_OK.for.other.successful
1b580 20 71 75 65 72 69 65 73 2e 20 20 41 20 44 42 20 65 72 72 6f 72 0a 20 20 20 20 20 2a 20 63 6f 64 .queries...A.DB.error......*.cod
1b5a0 65 20 69 73 20 72 65 74 75 72 6e 65 64 20 6f 6e 20 66 61 69 6c 75 72 65 2e 0a 20 20 20 20 20 2a e.is.returned.on.failure.......*
1b5c0 2f 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 26 65 78 65 63 75 74 65 28 24 73 74 6d 74 2c 20 24 /.....function.&execute($stmt,.$
1b5e0 64 61 74 61 20 3d 20 66 61 6c 73 65 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 24 74 79 70 data.=.false).....{.........$typ
1b600 65 73 3d 26 24 74 68 69 73 2d 3e 70 72 65 70 61 72 65 5f 74 79 70 65 73 5b 24 73 74 6d 74 5d 3b es=&$this->prepare_types[$stmt];
1b620 0a 20 20 20 20 20 20 20 20 69 66 20 28 28 24 73 69 7a 65 20 3d 20 73 69 7a 65 6f 66 28 24 74 79 .........if.(($size.=.sizeof($ty
1b640 70 65 73 29 29 20 21 3d 20 73 69 7a 65 6f 66 28 24 64 61 74 61 29 29 20 7b 0a 20 20 20 20 20 20 pes)).!=.sizeof($data)).{.......
1b660 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 61 69 73 65 45 72 72 6f 72 28 44 ......return.$this->raiseError(D
1b680 42 5f 45 52 52 4f 52 5f 4d 49 53 4d 41 54 43 48 29 3b 0a 20 20 20 20 20 20 20 20 7d 0d 0a 20 20 B_ERROR_MISMATCH);.........}....
1b6a0 20 20 20 20 20 20 24 70 64 61 74 61 5b 30 5d 20 3d 20 24 73 74 6d 74 3b 0a 20 20 20 20 20 20 20 ......$pdata[0].=.$stmt;........
1b6c0 20 66 6f 72 20 28 24 6a 20 3d 20 30 3b 20 24 6a 20 3c 20 24 73 69 7a 65 3b 20 24 6a 2b 2b 29 20 .for.($j.=.0;.$j.<.$size;.$j++).
1b6e0 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 69 20 3d 20 24 6a 20 2b 20 31 3b 0a 20 20 20 20 {..............$i.=.$j.+.1;.....
1b700 20 20 20 20 20 20 20 20 69 66 20 28 69 73 5f 61 72 72 61 79 28 24 64 61 74 61 29 29 20 7b 0a 20 ........if.(is_array($data)).{..
1b720 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 70 64 61 74 61 5b 24 69 5d 20 3d 20 26 24 64 61 ...............$pdata[$i].=.&$da
1b740 74 61 5b 24 6a 5d 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20 20 ta[$j];.............}.else.{....
1b760 20 20 20 20 20 20 20 20 20 20 20 20 20 24 70 64 61 74 61 5b 24 69 5d 20 3d 20 26 24 64 61 74 61 .............$pdata[$i].=.&$data
1b780 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 ;.............}.............if.(
1b7a0 24 74 79 70 65 73 5b 24 6a 5d 20 3d 3d 20 44 42 5f 50 41 52 41 4d 5f 4f 50 41 51 55 45 29 20 7b $types[$j].==.DB_PARAM_OPAQUE).{
1b7c0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 66 70 20 3d 20 66 6f 70 65 6e 28 24 70 64 .................$fp.=.fopen($pd
1b7e0 61 74 61 5b 24 69 5d 2c 20 27 72 27 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 ata[$i],.'r');.................$
1b800 70 64 61 74 61 5b 24 69 5d 20 3d 20 27 27 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 pdata[$i].=.'';.................
1b820 69 66 20 28 24 66 70 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 77 if.($fp).{.....................w
1b840 68 69 6c 65 20 28 28 24 62 75 66 20 3d 20 66 72 65 61 64 28 24 66 70 2c 20 34 30 39 36 29 29 20 hile.(($buf.=.fread($fp,.4096)).
1b860 21 3d 20 66 61 6c 73 65 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 !=.false).{.....................
1b880 20 20 20 20 24 70 64 61 74 61 5b 24 69 5d 20 2e 3d 20 24 62 75 66 3b 0a 20 20 20 20 20 20 20 20 ....$pdata[$i]..=.$buf;.........
1b8a0 20 20 20 20 20 20 20 20 20 20 20 20 7d 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ............}...................
1b8c0 20 20 20 66 63 6c 6f 73 65 28 24 66 70 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ...fclose($fp);.................
1b8e0 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0d 0a 20 20 20 20 20 20 20 20 7d 0d 0a 20 20 20 20 }.............}..........}......
1b900 20 20 20 20 24 72 65 73 20 3d 20 63 61 6c 6c 5f 75 73 65 72 5f 66 75 6e 63 5f 61 72 72 61 79 28 ....$res.=.call_user_func_array(
1b920 27 69 62 61 73 65 5f 65 78 65 63 75 74 65 27 2c 20 24 70 64 61 74 61 29 3b 0a 20 20 20 20 20 20 'ibase_execute',.$pdata);.......
1b940 20 20 69 66 20 28 21 24 72 65 73 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 ..if.(!$res).{.............retur
1b960 6e 20 24 74 68 69 73 2d 3e 69 62 61 73 65 52 61 69 73 65 45 72 72 6f 72 28 29 3b 0a 20 20 20 20 n.$this->ibaseRaiseError();.....
1b980 20 20 20 20 7d 0d 0a 20 20 20 20 20 20 20 20 2f 2a 20 58 58 58 20 6e 65 65 64 20 74 68 69 73 3f ....}........../*.XXX.need.this?
1b9a0 0d 0a 20 20 20 20 20 20 20 20 69 66 20 28 24 74 68 69 73 2d 3e 61 75 74 6f 63 6f 6d 6d 69 74 20 ..........if.($this->autocommit.
1b9c0 26 26 20 24 74 68 69 73 2d 3e 6d 61 6e 69 70 5f 71 75 65 72 79 5b 28 69 6e 74 29 24 73 74 6d 74 &&.$this->manip_query[(int)$stmt
1b9e0 5d 29 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 62 61 73 65 5f 63 6f 6d 6d 69 74 28 24 ]).{..............ibase_commit($
1ba00 74 68 69 73 2d 3e 63 6f 6e 6e 65 63 74 69 6f 6e 29 3b 0d 0a 20 20 20 20 20 20 20 20 7d 2a 2f 0d this->connection);..........}*/.
1ba20 0a 20 20 20 20 20 20 20 20 69 66 20 28 24 74 68 69 73 2d 3e 6d 61 6e 69 70 5f 71 75 65 72 79 5b .........if.($this->manip_query[
1ba40 28 69 6e 74 29 24 73 74 6d 74 5d 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 (int)$stmt]).{.............retur
1ba60 6e 20 44 42 5f 4f 4b 3b 0a 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 n.DB_OK;.........}.else.{.......
1ba80 20 20 20 20 20 20 72 65 74 75 72 6e 20 6e 65 77 20 44 42 5f 72 65 73 75 6c 74 28 24 74 68 69 73 ......return.new.DB_result($this
1baa0 2c 20 24 72 65 73 29 3b 0a 20 20 20 20 20 20 20 20 7d 0d 0a 20 20 20 20 7d 0d 0a 0a 20 20 20 20 ,.$res);.........}......}.......
1bac0 2f 2a 2a 0a 20 20 20 20 20 2a 20 46 72 65 65 20 74 68 65 20 69 6e 74 65 72 6e 61 6c 20 72 65 73 /**......*.Free.the.internal.res
1bae0 6f 75 72 63 65 73 20 61 73 73 6f 63 69 61 74 65 64 20 77 69 74 68 20 61 20 70 72 65 70 61 72 65 ources.associated.with.a.prepare
1bb00 64 20 71 75 65 72 79 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 24 73 d.query.......*......*.@param.$s
1bb20 74 6d 74 20 54 68 65 20 69 6e 74 65 72 62 61 73 65 5f 71 75 65 72 79 20 72 65 73 6f 75 72 63 65 tmt.The.interbase_query.resource
1bb40 20 74 79 70 65 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 72 65 74 75 72 6e 20 62 6f 6f 6c .type......*......*.@return.bool
1bb60 20 54 52 55 45 20 6f 6e 20 73 75 63 63 65 73 73 2c 20 46 41 4c 53 45 20 69 66 20 24 72 65 73 75 .TRUE.on.success,.FALSE.if.$resu
1bb80 6c 74 20 69 73 20 69 6e 76 61 6c 69 64 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 66 75 6e 63 74 69 lt.is.invalid......*/.....functi
1bba0 6f 6e 20 66 72 65 65 50 72 65 70 61 72 65 64 28 24 73 74 6d 74 29 0a 20 20 20 20 7b 0d 0a 20 20 on.freePrepared($stmt).....{....
1bbc0 20 20 20 20 20 20 69 66 20 28 21 69 73 5f 72 65 73 6f 75 72 63 65 28 24 73 74 6d 74 29 29 20 7b ......if.(!is_resource($stmt)).{
1bbe0 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0d 0a 20 20 20 ..............return.false;.....
1bc00 20 20 20 20 20 7d 0d 0a 20 20 20 20 20 20 20 20 69 62 61 73 65 5f 66 72 65 65 5f 71 75 65 72 79 .....}..........ibase_free_query
1bc20 28 24 73 74 6d 74 29 3b 0d 0a 20 20 20 20 20 20 20 20 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 70 ($stmt);..........unset($this->p
1bc40 72 65 70 61 72 65 5f 74 6f 6b 65 6e 73 5b 28 69 6e 74 29 24 73 74 6d 74 5d 29 3b 0a 20 20 20 20 repare_tokens[(int)$stmt]);.....
1bc60 20 20 20 20 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 70 72 65 70 61 72 65 5f 74 79 70 65 73 5b 28 ....unset($this->prepare_types[(
1bc80 69 6e 74 29 24 73 74 6d 74 5d 29 3b 0a 20 20 20 20 20 20 20 20 75 6e 73 65 74 28 24 74 68 69 73 int)$stmt]);.........unset($this
1bca0 2d 3e 6d 61 6e 69 70 5f 71 75 65 72 79 5b 28 69 6e 74 29 24 73 74 6d 74 5d 29 3b 0a 20 20 20 20 ->manip_query[(int)$stmt]);.....
1bcc0 20 20 20 20 72 65 74 75 72 6e 20 74 72 75 65 3b 0d 0a 20 20 20 20 7d 0d 0a 0d 0a 0d 0a 20 20 20 ....return.true;......}.........
1bce0 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 61 75 74 6f 43 6f 6d 6d 69 74 28 29 0a .//.}}}.....//.{{{.autoCommit().
1bd00 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 61 75 74 6f 43 6f 6d 6d 69 74 28 24 6f 6e 6f 66 66 20 .....function.autoCommit($onoff.
1bd20 3d 20 66 61 6c 73 65 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 61 75 =.false).....{.........$this->au
1bd40 74 6f 63 6f 6d 6d 69 74 20 3d 20 24 6f 6e 6f 66 66 20 3f 20 31 20 3a 20 30 3b 0a 20 20 20 20 20 tocommit.=.$onoff.?.1.:.0;......
1bd60 20 20 20 72 65 74 75 72 6e 20 44 42 5f 4f 4b 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d ...return.DB_OK;.....}......//.}
1bd80 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 63 6f 6d 6d 69 74 28 29 0a 0a 20 20 20 20 66 75 6e 63 }}.....//.{{{.commit()......func
1bda0 74 69 6f 6e 20 63 6f 6d 6d 69 74 28 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 72 65 74 75 tion.commit().....{.........retu
1bdc0 72 6e 20 69 62 61 73 65 5f 63 6f 6d 6d 69 74 28 24 74 68 69 73 2d 3e 63 6f 6e 6e 65 63 74 69 6f rn.ibase_commit($this->connectio
1bde0 6e 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b n);.....}......//.}}}.....//.{{{
1be00 20 72 6f 6c 6c 62 61 63 6b 28 29 0a 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 72 6f 6c 6c 62 61 .rollback()......function.rollba
1be20 63 6b 28 24 74 72 61 6e 73 5f 6e 75 6d 62 65 72 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 ck($trans_number).....{.........
1be40 72 65 74 75 72 6e 20 69 62 61 73 65 5f 72 6f 6c 6c 62 61 63 6b 28 24 74 68 69 73 2d 3e 63 6f 6e return.ibase_rollback($this->con
1be60 6e 65 63 74 69 6f 6e 2c 20 24 74 72 61 6e 73 5f 6e 75 6d 62 65 72 29 3b 0a 20 20 20 20 7d 0a 0a nection,.$trans_number);.....}..
1be80 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 74 72 61 6e 73 61 63 74 69 6f ....//.}}}.....//.{{{.transactio
1bea0 6e 49 6e 69 74 28 29 0a 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 74 72 61 6e 73 61 63 74 69 6f nInit()......function.transactio
1bec0 6e 49 6e 69 74 28 24 74 72 61 6e 73 5f 61 72 67 73 20 3d 20 30 29 0a 20 20 20 20 7b 0a 20 20 20 nInit($trans_args.=.0).....{....
1bee0 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 72 61 6e 73 5f 61 72 67 73 20 3f 20 69 62 61 73 65 5f .....return.$trans_args.?.ibase_
1bf00 74 72 61 6e 73 28 24 74 72 61 6e 73 5f 61 72 67 73 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 6e 65 63 trans($trans_args,.$this->connec
1bf20 74 69 6f 6e 29 20 3a 20 69 62 61 73 65 5f 74 72 61 6e 73 28 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 tion).:.ibase_trans();.....}....
1bf40 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 6e 65 78 74 49 64 28 29 0a 20 20 20 ..//.}}}.....//.{{{.nextId()....
1bf60 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 47 65 74 20 74 68 65 20 6e 65 78 74 20 76 61 6c 75 65 20 69 ./**......*.Get.the.next.value.i
1bf80 6e 20 61 20 73 65 71 75 65 6e 63 65 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 49 66 20 74 n.a.sequence.......*......*.If.t
1bfa0 68 65 20 73 65 71 75 65 6e 63 65 20 64 6f 65 73 20 6e 6f 74 20 65 78 69 73 74 2c 20 69 74 20 77 he.sequence.does.not.exist,.it.w
1bfc0 69 6c 6c 20 62 65 20 63 72 65 61 74 65 64 2c 0a 20 20 20 20 20 2a 20 75 6e 6c 65 73 73 20 24 6f ill.be.created,......*.unless.$o
1bfe0 6e 64 65 6d 61 6e 64 20 69 73 20 66 61 6c 73 65 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 ndemand.is.false.......*......*.
1c000 40 61 63 63 65 73 73 20 70 75 62 6c 69 63 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 73 74 72 @access.public......*.@param.str
1c020 69 6e 67 20 24 73 65 71 5f 6e 61 6d 65 20 74 68 65 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 73 65 ing.$seq_name.the.name.of.the.se
1c040 71 75 65 6e 63 65 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 62 6f 6f 6c 20 24 6f 6e 64 65 6d quence......*.@param.bool.$ondem
1c060 61 6e 64 20 77 68 65 74 68 65 72 20 74 6f 20 63 72 65 61 74 65 20 74 68 65 20 73 65 71 75 65 6e and.whether.to.create.the.sequen
1c080 63 65 20 6f 6e 20 64 65 6d 61 6e 64 0a 20 20 20 20 20 2a 20 40 72 65 74 75 72 6e 20 61 20 73 65 ce.on.demand......*.@return.a.se
1c0a0 71 75 65 6e 63 65 20 69 6e 74 65 67 65 72 2c 20 6f 72 20 61 20 44 42 20 65 72 72 6f 72 0a 20 20 quence.integer,.or.a.DB.error...
1c0c0 20 20 20 2a 2f 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 6e 65 78 74 49 64 28 24 73 65 71 5f 6e ...*/.....function.nextId($seq_n
1c0e0 61 6d 65 2c 20 24 6f 6e 64 65 6d 61 6e 64 20 3d 20 74 72 75 65 29 0a 20 20 20 20 7b 0a 20 20 20 ame,.$ondemand.=.true).....{....
1c100 20 20 20 20 20 24 73 71 6e 20 3d 20 73 74 72 74 6f 75 70 70 65 72 28 70 72 65 67 5f 72 65 70 6c .....$sqn.=.strtoupper(preg_repl
1c120 61 63 65 28 27 2f 5b 5e 61 2d 7a 30 2d 39 5f 5d 2f 69 27 2c 20 27 5f 27 2c 20 24 73 65 71 5f 6e ace('/[^a-z0-9_]/i',.'_',.$seq_n
1c140 61 6d 65 29 29 3b 0a 20 20 20 20 20 20 20 20 24 72 65 70 65 61 74 20 3d 20 30 3b 0a 20 20 20 20 ame));.........$repeat.=.0;.....
1c160 20 20 20 20 64 6f 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 70 75 73 68 ....do.{.............$this->push
1c180 45 72 72 6f 72 48 61 6e 64 6c 69 6e 67 28 50 45 41 52 5f 45 52 52 4f 52 5f 52 45 54 55 52 4e 29 ErrorHandling(PEAR_ERROR_RETURN)
1c1a0 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 72 65 73 75 6c 74 20 3d 20 24 74 68 69 73 2d 3e 71 ;.............$result.=.$this->q
1c1c0 75 65 72 79 28 22 53 45 4c 45 43 54 20 47 45 4e 5f 49 44 28 24 7b 73 71 6e 7d 5f 53 45 51 2c 20 uery("SELECT.GEN_ID(${sqn}_SEQ,.
1c1e0 31 29 20 46 52 4f 4d 20 52 44 42 5c 24 47 45 4e 45 52 41 54 4f 52 53 22 0a 20 20 20 20 20 20 20 1).FROM.RDB\$GENERATORS"........
1c200 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2e 22 20 57 .............................".W
1c220 48 45 52 45 20 52 44 42 5c 24 47 45 4e 45 52 41 54 4f 52 5f 4e 41 4d 45 3d 27 24 7b 73 71 6e 7d HERE.RDB\$GENERATOR_NAME='${sqn}
1c240 5f 53 45 51 27 22 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 70 6f 70 _SEQ'");..............$this->pop
1c260 45 72 72 6f 72 48 61 6e 64 6c 69 6e 67 28 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 ErrorHandling();.............if.
1c280 28 24 6f 6e 64 65 6d 61 6e 64 20 26 26 20 44 42 3a 3a 69 73 45 72 72 6f 72 28 24 72 65 73 75 6c ($ondemand.&&.DB::isError($resul
1c2a0 74 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 72 65 70 65 61 74 20 3d 20 t)).{.................$repeat.=.
1c2c0 31 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 72 65 73 75 6c 74 20 3d 20 24 74 68 1;.................$result.=.$th
1c2e0 69 73 2d 3e 63 72 65 61 74 65 53 65 71 75 65 6e 63 65 28 24 73 65 71 5f 6e 61 6d 65 29 3b 0a 20 is->createSequence($seq_name);..
1c300 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 44 42 3a 3a 69 73 45 72 72 6f 72 28 24 ...............if.(DB::isError($
1c320 72 65 73 75 6c 74 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 result)).{.....................r
1c340 65 74 75 72 6e 20 24 72 65 73 75 6c 74 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d eturn.$result;.................}
1c360 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 20 20 20 .............}.else.{...........
1c380 20 20 20 20 20 20 24 72 65 70 65 61 74 20 3d 20 30 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d ......$repeat.=.0;.............}
1c3a0 0a 20 20 20 20 20 20 20 20 7d 20 77 68 69 6c 65 20 28 24 72 65 70 65 61 74 29 3b 0a 20 20 20 20 .........}.while.($repeat);.....
1c3c0 20 20 20 20 69 66 20 28 44 42 3a 3a 69 73 45 72 72 6f 72 28 24 72 65 73 75 6c 74 29 29 20 7b 0a ....if.(DB::isError($result)).{.
1c3e0 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 61 69 73 65 45 ............return.$this->raiseE
1c400 72 72 6f 72 28 24 72 65 73 75 6c 74 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 rror($result);.........}........
1c420 20 24 61 72 72 20 3d 20 24 72 65 73 75 6c 74 2d 3e 66 65 74 63 68 52 6f 77 28 44 42 5f 46 45 54 .$arr.=.$result->fetchRow(DB_FET
1c440 43 48 4d 4f 44 45 5f 4f 52 44 45 52 45 44 29 3b 0a 20 20 20 20 20 20 20 20 24 72 65 73 75 6c 74 CHMODE_ORDERED);.........$result
1c460 2d 3e 66 72 65 65 28 29 3b 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 61 72 72 5b 30 5d ->free();.........return.$arr[0]
1c480 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 63 ;.....}......//.}}}.....//.{{{.c
1c4a0 72 65 61 74 65 53 65 71 75 65 6e 63 65 28 29 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 reateSequence()....../**......*.
1c4c0 43 72 65 61 74 65 20 74 68 65 20 73 65 71 75 65 6e 63 65 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 Create.the.sequence......*......
1c4e0 2a 20 40 70 61 72 61 6d 20 73 74 72 69 6e 67 20 24 73 65 71 5f 6e 61 6d 65 20 74 68 65 20 6e 61 *.@param.string.$seq_name.the.na
1c500 6d 65 20 6f 66 20 74 68 65 20 73 65 71 75 65 6e 63 65 0a 20 20 20 20 20 2a 20 40 72 65 74 75 72 me.of.the.sequence......*.@retur
1c520 6e 20 6d 69 78 65 64 20 44 42 5f 4f 4b 20 6f 6e 20 73 75 63 63 65 73 73 20 6f 72 20 44 42 20 65 n.mixed.DB_OK.on.success.or.DB.e
1c540 72 72 6f 72 20 6f 6e 20 65 72 72 6f 72 0a 20 20 20 20 20 2a 20 40 61 63 63 65 73 73 20 70 75 62 rror.on.error......*.@access.pub
1c560 6c 69 63 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 63 72 65 61 74 65 53 lic......*/.....function.createS
1c580 65 71 75 65 6e 63 65 28 24 73 65 71 5f 6e 61 6d 65 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 equence($seq_name).....{........
1c5a0 20 24 73 71 6e 20 3d 20 73 74 72 74 6f 75 70 70 65 72 28 70 72 65 67 5f 72 65 70 6c 61 63 65 28 .$sqn.=.strtoupper(preg_replace(
1c5c0 27 2f 5b 5e 61 2d 7a 30 2d 39 5f 5d 2f 69 27 2c 20 27 5f 27 2c 20 24 73 65 71 5f 6e 61 6d 65 29 '/[^a-z0-9_]/i',.'_',.$seq_name)
1c5e0 29 3b 0a 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 70 75 73 68 45 72 72 6f 72 48 61 6e 64 6c );.........$this->pushErrorHandl
1c600 69 6e 67 28 50 45 41 52 5f 45 52 52 4f 52 5f 52 45 54 55 52 4e 29 3b 0a 20 20 20 20 20 20 20 20 ing(PEAR_ERROR_RETURN);.........
1c620 24 72 65 73 75 6c 74 20 3d 20 24 74 68 69 73 2d 3e 71 75 65 72 79 28 22 43 52 45 41 54 45 20 47 $result.=.$this->query("CREATE.G
1c640 45 4e 45 52 41 54 4f 52 20 24 7b 73 71 6e 7d 5f 53 45 51 22 29 3b 0a 20 20 20 20 20 20 20 20 24 ENERATOR.${sqn}_SEQ");.........$
1c660 74 68 69 73 2d 3e 70 6f 70 45 72 72 6f 72 48 61 6e 64 6c 69 6e 67 28 29 3b 0a 0a 20 20 20 20 20 this->popErrorHandling();.......
1c680 20 20 20 72 65 74 75 72 6e 20 24 72 65 73 75 6c 74 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f ...return.$result;.....}......//
1c6a0 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 64 72 6f 70 53 65 71 75 65 6e 63 65 28 29 0a 0a .}}}.....//.{{{.dropSequence()..
1c6c0 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 44 72 6f 70 20 61 20 73 65 71 75 65 6e 63 65 0a 20 ..../**......*.Drop.a.sequence..
1c6e0 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 73 74 72 69 6e 67 20 24 73 65 71 5f ....*......*.@param.string.$seq_
1c700 6e 61 6d 65 20 74 68 65 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 73 65 71 75 65 6e 63 65 0a 20 20 name.the.name.of.the.sequence...
1c720 20 20 20 2a 20 40 72 65 74 75 72 6e 20 6d 69 78 65 64 20 44 42 5f 4f 4b 20 6f 6e 20 73 75 63 63 ...*.@return.mixed.DB_OK.on.succ
1c740 65 73 73 20 6f 72 20 44 42 20 65 72 72 6f 72 20 6f 6e 20 65 72 72 6f 72 0a 20 20 20 20 20 2a 20 ess.or.DB.error.on.error......*.
1c760 40 61 63 63 65 73 73 20 70 75 62 6c 69 63 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 66 75 6e 63 74 @access.public......*/.....funct
1c780 69 6f 6e 20 64 72 6f 70 53 65 71 75 65 6e 63 65 28 24 73 65 71 5f 6e 61 6d 65 29 0a 20 20 20 20 ion.dropSequence($seq_name).....
1c7a0 7b 0a 20 20 20 20 20 20 20 20 24 73 71 6e 20 3d 20 73 74 72 74 6f 75 70 70 65 72 28 70 72 65 67 {.........$sqn.=.strtoupper(preg
1c7c0 5f 72 65 70 6c 61 63 65 28 27 2f 5b 5e 61 2d 7a 30 2d 39 5f 5d 2f 69 27 2c 20 27 5f 27 2c 20 24 _replace('/[^a-z0-9_]/i',.'_',.$
1c7e0 73 65 71 5f 6e 61 6d 65 29 29 3b 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 seq_name));.........return.$this
1c800 2d 3e 71 75 65 72 79 28 22 44 45 4c 45 54 45 20 46 52 4f 4d 20 52 44 42 5c 24 47 45 4e 45 52 41 ->query("DELETE.FROM.RDB\$GENERA
1c820 54 4f 52 53 20 57 48 45 52 45 20 52 44 42 5c 24 47 45 4e 45 52 41 54 4f 52 5f 4e 41 4d 45 3d 27 TORS.WHERE.RDB\$GENERATOR_NAME='
1c840 24 7b 73 71 6e 7d 5f 53 45 51 27 22 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d ${sqn}_SEQ'");.....}......//.}}}
1c860 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 5f 69 62 61 73 65 46 69 65 6c 64 46 6c 61 67 73 28 29 0a 0a .....//.{{{._ibaseFieldFlags()..
1c880 20 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 20 2a 20 67 65 74 20 74 68 65 20 46 6c 61 67 73 20 6f ...../**.......*.get.the.Flags.o
1c8a0 66 20 61 20 46 69 65 6c 64 0a 20 20 20 20 20 20 2a 0a 20 20 20 20 20 20 2a 20 40 70 61 72 61 6d f.a.Field.......*.......*.@param
1c8c0 20 73 74 72 69 6e 67 20 24 66 69 65 6c 64 5f 6e 61 6d 65 20 74 68 65 20 6e 61 6d 65 20 6f 66 20 .string.$field_name.the.name.of.
1c8e0 74 68 65 20 66 69 65 6c 64 0a 20 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 73 74 72 69 6e 67 20 the.field.......*.@param.string.
1c900 24 74 61 62 6c 65 5f 6e 61 6d 65 20 74 68 65 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 74 61 62 6c $table_name.the.name.of.the.tabl
1c920 65 0a 20 20 20 20 20 20 2a 0a 20 20 20 20 20 20 2a 20 40 72 65 74 75 72 6e 20 73 74 72 69 6e 67 e.......*.......*.@return.string
1c940 20 54 68 65 20 66 6c 61 67 73 20 6f 66 20 74 68 65 20 66 69 65 6c 64 20 28 22 70 72 69 6d 61 72 .The.flags.of.the.field.("primar
1c960 79 5f 6b 65 79 22 2c 20 22 75 6e 69 71 75 65 5f 6b 65 79 22 2c 20 22 6e 6f 74 5f 6e 75 6c 6c 22 y_key",."unique_key",."not_null"
1c980 0a 20 20 20 20 20 20 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 66 61 75 6c 74 .......*................"default
1c9a0 22 2c 20 22 63 6f 6d 70 75 74 65 64 22 20 61 6e 64 20 22 62 6c 6f 62 22 20 61 72 65 20 73 75 70 ",."computed".and."blob".are.sup
1c9c0 70 6f 72 74 65 64 29 0a 20 20 20 20 20 20 2a 20 40 61 63 63 65 73 73 20 70 72 69 76 61 74 65 0a ported).......*.@access.private.
1c9e0 20 20 20 20 20 20 2a 2f 0a 20 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 5f 69 62 61 73 65 46 69 65 ......*/......function._ibaseFie
1ca00 6c 64 46 6c 61 67 73 28 24 66 69 65 6c 64 5f 6e 61 6d 65 2c 20 24 74 61 62 6c 65 5f 6e 61 6d 65 ldFlags($field_name,.$table_name
1ca20 29 0a 20 20 20 20 20 7b 0a 0a 20 20 20 20 20 20 20 20 20 24 73 71 6c 20 3d 20 27 53 45 4c 45 43 )......{...........$sql.=.'SELEC
1ca40 54 20 20 52 2e 52 44 42 24 43 4f 4e 53 54 52 41 49 4e 54 5f 54 59 50 45 20 43 54 59 50 45 27 0a T..R.RDB$CONSTRAINT_TYPE.CTYPE'.
1ca60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2e 27 20 46 52 4f 4d 20 20 52 44 42 24 49 4e 44 .................'.FROM..RDB$IND
1ca80 45 58 5f 53 45 47 4d 45 4e 54 53 20 49 27 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2e EX_SEGMENTS.I'..................
1caa0 27 20 4a 4f 49 4e 20 20 52 44 42 24 52 45 4c 41 54 49 4f 4e 5f 43 4f 4e 53 54 52 41 49 4e 54 53 '.JOIN..RDB$RELATION_CONSTRAINTS
1cac0 20 52 20 4f 4e 20 49 2e 52 44 42 24 49 4e 44 45 58 5f 4e 41 4d 45 3d 52 2e 52 44 42 24 49 4e 44 .R.ON.I.RDB$INDEX_NAME=R.RDB$IND
1cae0 45 58 5f 4e 41 4d 45 27 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2e 27 20 57 48 45 52 45 EX_NAME'.................'.WHERE
1cb00 20 20 49 2e 52 44 42 24 46 49 45 4c 44 5f 4e 41 4d 45 3d 5c 27 27 2e 24 66 69 65 6c 64 5f 6e 61 ..I.RDB$FIELD_NAME=\''.$field_na
1cb20 6d 65 2e 27 5c 27 27 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2e 27 20 41 4e 44 me.'\''....................'.AND
1cb40 20 52 2e 52 44 42 24 52 45 4c 41 54 49 4f 4e 5f 4e 41 4d 45 3d 5c 27 27 2e 24 74 61 62 6c 65 5f .R.RDB$RELATION_NAME=\''.$table_
1cb60 6e 61 6d 65 2e 27 5c 27 27 3b 0a 20 20 20 20 20 20 20 20 20 24 72 65 73 75 6c 74 20 3d 20 69 62 name.'\'';..........$result.=.ib
1cb80 61 73 65 5f 71 75 65 72 79 28 24 74 68 69 73 2d 3e 63 6f 6e 6e 65 63 74 69 6f 6e 2c 20 24 73 71 ase_query($this->connection,.$sq
1cba0 6c 29 3b 0a 20 20 20 20 20 20 20 20 20 69 66 20 28 65 6d 70 74 79 28 24 72 65 73 75 6c 74 29 29 l);..........if.(empty($result))
1cbc0 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 69 62 .{..............return.$this->ib
1cbe0 61 73 65 52 61 69 73 65 45 72 72 6f 72 28 29 3b 0a 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 aseRaiseError();..........}.....
1cc00 20 20 20 20 20 69 66 20 28 24 6f 62 6a 20 3d 20 40 69 62 61 73 65 5f 66 65 74 63 68 5f 6f 62 6a .....if.($obj.=.@ibase_fetch_obj
1cc20 65 63 74 28 24 72 65 73 75 6c 74 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 69 62 61 ect($result)).{..............iba
1cc40 73 65 5f 66 72 65 65 5f 72 65 73 75 6c 74 28 24 72 65 73 75 6c 74 29 3b 0a 20 20 20 20 20 20 20 se_free_result($result);........
1cc60 20 20 20 20 20 20 69 66 20 28 69 73 73 65 74 28 24 6f 62 6a 2d 3e 43 54 59 50 45 29 20 20 26 26 ......if.(isset($obj->CTYPE)..&&
1cc80 20 74 72 69 6d 28 24 6f 62 6a 2d 3e 43 54 59 50 45 29 20 3d 3d 20 27 50 52 49 4d 41 52 59 20 4b .trim($obj->CTYPE).==.'PRIMARY.K
1cca0 45 59 27 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 66 6c 61 67 73 20 3d EY').{..................$flags.=
1ccc0 20 27 70 72 69 6d 61 72 79 5f 6b 65 79 20 27 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a .'primary_key.';..............}.
1cce0 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 69 73 73 65 74 28 24 6f 62 6a 2d 3e 43 54 59 .............if.(isset($obj->CTY
1cd00 50 45 29 20 20 26 26 20 74 72 69 6d 28 24 6f 62 6a 2d 3e 43 54 59 50 45 29 20 3d 3d 20 27 55 4e PE)..&&.trim($obj->CTYPE).==.'UN
1cd20 49 51 55 45 27 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 66 6c 61 67 73 IQUE').{..................$flags
1cd40 20 2e 3d 20 27 75 6e 69 71 75 65 5f 6b 65 79 20 27 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ..=.'unique_key.';..............
1cd60 7d 0a 20 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 20 24 73 71 6c 20 3d 20 27 53 }..........}...........$sql.=.'S
1cd80 45 4c 45 43 54 20 20 52 2e 52 44 42 24 4e 55 4c 4c 5f 46 4c 41 47 20 41 53 20 4e 46 4c 41 47 2c ELECT..R.RDB$NULL_FLAG.AS.NFLAG,
1cda0 27 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2e 27 20 52 2e 52 44 42 '........................'.R.RDB
1cdc0 24 44 45 46 41 55 4c 54 5f 53 4f 55 52 43 45 20 41 53 20 44 53 4f 55 52 43 45 2c 27 0a 20 20 20 $DEFAULT_SOURCE.AS.DSOURCE,'....
1cde0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2e 27 20 46 2e 52 44 42 24 46 49 45 4c ....................'.F.RDB$FIEL
1ce00 44 5f 54 59 50 45 20 41 53 20 46 54 59 50 45 2c 27 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 D_TYPE.AS.FTYPE,'...............
1ce20 20 20 20 20 20 20 20 20 2e 27 20 46 2e 52 44 42 24 43 4f 4d 50 55 54 45 44 5f 53 4f 55 52 43 45 .........'.F.RDB$COMPUTED_SOURCE
1ce40 20 41 53 20 43 53 4f 55 52 43 45 27 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2e 27 20 .AS.CSOURCE'..................'.
1ce60 46 52 4f 4d 20 20 52 44 42 24 52 45 4c 41 54 49 4f 4e 5f 46 49 45 4c 44 53 20 52 20 27 0a 20 20 FROM..RDB$RELATION_FIELDS.R.'...
1ce80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2e 27 20 4a 4f 49 4e 20 20 52 44 42 24 46 49 45 4c 44 ...............'.JOIN..RDB$FIELD
1cea0 53 20 46 20 4f 4e 20 52 2e 52 44 42 24 46 49 45 4c 44 5f 53 4f 55 52 43 45 3d 46 2e 52 44 42 24 S.F.ON.R.RDB$FIELD_SOURCE=F.RDB$
1cec0 46 49 45 4c 44 5f 4e 41 4d 45 27 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2e 27 20 57 48 FIELD_NAME'.................'.WH
1cee0 45 52 45 20 20 52 2e 52 44 42 24 52 45 4c 41 54 49 4f 4e 5f 4e 41 4d 45 3d 5c 27 27 2e 24 74 61 ERE..R.RDB$RELATION_NAME=\''.$ta
1cf00 62 6c 65 5f 6e 61 6d 65 2e 27 5c 27 27 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2e ble_name.'\''...................
1cf20 27 20 41 4e 44 20 20 52 2e 52 44 42 24 46 49 45 4c 44 5f 4e 41 4d 45 3d 5c 27 27 2e 24 66 69 65 '.AND..R.RDB$FIELD_NAME=\''.$fie
1cf40 6c 64 5f 6e 61 6d 65 2e 27 5c 27 27 3b 0a 20 20 20 20 20 20 20 20 20 24 72 65 73 75 6c 74 20 3d ld_name.'\'';..........$result.=
1cf60 20 69 62 61 73 65 5f 71 75 65 72 79 28 24 74 68 69 73 2d 3e 63 6f 6e 6e 65 63 74 69 6f 6e 2c 20 .ibase_query($this->connection,.
1cf80 24 73 71 6c 29 3b 0a 20 20 20 20 20 20 20 20 20 69 66 20 28 65 6d 70 74 79 28 24 72 65 73 75 6c $sql);..........if.(empty($resul
1cfa0 74 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d t)).{..............return.$this-
1cfc0 3e 69 62 61 73 65 52 61 69 73 65 45 72 72 6f 72 28 29 3b 0a 20 20 20 20 20 20 20 20 20 7d 0a 20 >ibaseRaiseError();..........}..
1cfe0 20 20 20 20 20 20 20 20 69 66 20 28 24 6f 62 6a 20 3d 20 40 69 62 61 73 65 5f 66 65 74 63 68 5f ........if.($obj.=.@ibase_fetch_
1d000 6f 62 6a 65 63 74 28 24 72 65 73 75 6c 74 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 object($result)).{..............
1d020 69 62 61 73 65 5f 66 72 65 65 5f 72 65 73 75 6c 74 28 24 72 65 73 75 6c 74 29 3b 0a 20 20 20 20 ibase_free_result($result);.....
1d040 20 20 20 20 20 20 20 20 20 69 66 20 28 69 73 73 65 74 28 24 6f 62 6a 2d 3e 4e 46 4c 41 47 29 29 .........if.(isset($obj->NFLAG))
1d060 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 66 6c 61 67 73 20 2e 3d 20 27 6e .{..................$flags..=.'n
1d080 6f 74 5f 6e 75 6c 6c 20 27 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 ot_null.';..............}.......
1d0a0 20 20 20 20 20 20 20 69 66 20 28 69 73 73 65 74 28 24 6f 62 6a 2d 3e 44 53 4f 55 52 43 45 29 29 .......if.(isset($obj->DSOURCE))
1d0c0 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 66 6c 61 67 73 20 2e 3d 20 27 64 .{..................$flags..=.'d
1d0e0 65 66 61 75 6c 74 20 27 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 efault.';..............}........
1d100 20 20 20 20 20 20 69 66 20 28 69 73 73 65 74 28 24 6f 62 6a 2d 3e 43 53 4f 55 52 43 45 29 29 20 ......if.(isset($obj->CSOURCE)).
1d120 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 66 6c 61 67 73 20 2e 3d 20 27 63 6f {..................$flags..=.'co
1d140 6d 70 75 74 65 64 20 27 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 mputed.';..............}........
1d160 20 20 20 20 20 20 69 66 20 28 69 73 73 65 74 28 24 6f 62 6a 2d 3e 46 54 59 50 45 29 20 20 26 26 ......if.(isset($obj->FTYPE)..&&
1d180 20 24 6f 62 6a 2d 3e 46 54 59 50 45 20 3d 3d 20 32 36 31 29 20 7b 0a 20 20 20 20 20 20 20 20 20 .$obj->FTYPE.==.261).{..........
1d1a0 20 20 20 20 20 20 20 20 24 66 6c 61 67 73 20 2e 3d 20 27 62 6c 6f 62 20 27 3b 0a 20 20 20 20 20 ........$flags..=.'blob.';......
1d1c0 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 20 72 ........}..........}...........r
1d1e0 65 74 75 72 6e 20 74 72 69 6d 28 24 66 6c 61 67 73 29 3b 0a 20 20 20 20 20 7d 0a 0a 20 20 20 20 eturn.trim($flags);......}......
1d200 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 20 2f 2f 20 7b 7b 7b 20 74 61 62 6c 65 49 6e 66 6f 28 29 0a .//.}}}......//.{{{.tableInfo().
1d220 0a 20 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 20 2a 20 52 65 74 75 72 6e 73 20 69 6e 66 6f 72 6d ....../**.......*.Returns.inform
1d240 61 74 69 6f 6e 20 61 62 6f 75 74 20 61 20 74 61 62 6c 65 20 6f 72 20 61 20 72 65 73 75 6c 74 20 ation.about.a.table.or.a.result.
1d260 73 65 74 0a 20 20 20 20 20 20 2a 0a 20 20 20 20 20 20 2a 20 4e 4f 54 45 3a 20 64 6f 65 73 6e 27 set.......*.......*.NOTE:.doesn'
1d280 74 20 73 75 70 70 6f 72 74 20 27 66 6c 61 67 73 27 61 6e 64 20 27 74 61 62 6c 65 27 20 69 66 20 t.support.'flags'and.'table'.if.
1d2a0 63 61 6c 6c 65 64 20 66 72 6f 6d 20 61 20 64 62 5f 72 65 73 75 6c 74 0a 20 20 20 20 20 20 2a 0a called.from.a.db_result.......*.
1d2c0 20 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 20 6d 69 78 65 64 20 24 72 65 73 6f 75 72 63 65 20 ......*.@param..mixed.$resource.
1d2e0 49 6e 74 65 72 62 61 73 65 20 72 65 73 75 6c 74 20 69 64 65 6e 74 69 66 69 65 72 20 6f 72 20 74 Interbase.result.identifier.or.t
1d300 61 62 6c 65 20 6e 61 6d 65 0a 20 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 20 69 6e 74 20 24 6d able.name.......*.@param..int.$m
1d320 6f 64 65 20 41 20 76 61 6c 69 64 20 74 61 62 6c 65 49 6e 66 6f 20 6d 6f 64 65 20 28 44 42 5f 54 ode.A.valid.tableInfo.mode.(DB_T
1d340 41 42 4c 45 49 4e 46 4f 5f 4f 52 44 45 52 54 41 42 4c 45 20 6f 72 0a 20 20 20 20 20 20 2a 20 20 ABLEINFO_ORDERTABLE.or.......*..
1d360 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 44 42 5f 54 41 42 4c 45 49 4e 46 4f 5f 4f 52 .................DB_TABLEINFO_OR
1d380 44 45 52 29 0a 20 20 20 20 20 20 2a 0a 20 20 20 20 20 20 2a 20 40 72 65 74 75 72 6e 20 61 72 72 DER).......*.......*.@return.arr
1d3a0 61 79 20 41 6e 20 61 72 72 61 79 20 77 69 74 68 20 61 6c 6c 20 74 68 65 20 69 6e 66 6f 72 6d 61 ay.An.array.with.all.the.informa
1d3c0 74 69 6f 6e 0a 20 20 20 20 20 20 2a 2f 0a 20 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 74 61 62 6c tion.......*/......function.tabl
1d3e0 65 49 6e 66 6f 28 24 72 65 73 75 6c 74 2c 20 24 6d 6f 64 65 20 3d 20 6e 75 6c 6c 29 0a 20 20 20 eInfo($result,.$mode.=.null)....
1d400 20 20 7b 0a 20 20 20 20 20 20 20 20 20 24 63 6f 75 6e 74 20 3d 20 30 3b 0a 20 20 20 20 20 20 20 ..{..........$count.=.0;........
1d420 20 20 24 69 64 20 20 20 20 3d 20 30 3b 0a 20 20 20 20 20 20 20 20 20 24 72 65 73 20 20 20 3d 20 ..$id....=.0;..........$res...=.
1d440 61 72 72 61 79 28 29 3b 0a 0a 20 20 20 20 20 20 20 20 20 2f 2a 0a 20 20 20 20 20 20 20 20 20 20 array();.........../*...........
1d460 2a 20 64 65 70 65 6e 64 69 6e 67 20 6f 6e 20 24 6d 6f 64 65 2c 20 6d 65 74 61 64 61 74 61 20 72 *.depending.on.$mode,.metadata.r
1d480 65 74 75 72 6e 73 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 76 61 6c 75 65 73 3a 0a 20 20 20 eturns.the.following.values:....
1d4a0 20 20 20 20 20 20 20 2a 0a 20 20 20 20 20 20 20 20 20 20 2a 20 2d 20 6d 6f 64 65 20 69 73 20 66 .......*...........*.-.mode.is.f
1d4c0 61 6c 73 65 20 28 64 65 66 61 75 6c 74 29 3a 0a 20 20 20 20 20 20 20 20 20 20 2a 20 24 72 65 73 alse.(default):...........*.$res
1d4e0 75 6c 74 5b 5d 3a 0a 20 20 20 20 20 20 20 20 20 20 2a 20 20 20 5b 30 5d 5b 22 74 61 62 6c 65 22 ult[]:...........*...[0]["table"
1d500 5d 20 20 74 61 62 6c 65 20 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 20 2a 20 20 20 5b 30 5d 5b ]..table.name...........*...[0][
1d520 22 6e 61 6d 65 22 5d 20 20 20 66 69 65 6c 64 20 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 20 2a "name"]...field.name...........*
1d540 20 20 20 5b 30 5d 5b 22 74 79 70 65 22 5d 20 20 20 66 69 65 6c 64 20 74 79 70 65 0a 20 20 20 20 ...[0]["type"]...field.type.....
1d560 20 20 20 20 20 20 2a 20 20 20 5b 30 5d 5b 22 6c 65 6e 22 5d 20 20 20 20 66 69 65 6c 64 20 6c 65 ......*...[0]["len"]....field.le
1d580 6e 67 74 68 0a 20 20 20 20 20 20 20 20 20 20 2a 20 20 20 5b 30 5d 5b 22 66 6c 61 67 73 22 5d 20 ngth...........*...[0]["flags"].
1d5a0 20 66 69 65 6c 64 20 66 6c 61 67 73 0a 20 20 20 20 20 20 20 20 20 20 2a 0a 20 20 20 20 20 20 20 .field.flags...........*........
1d5c0 20 20 20 2a 20 2d 20 6d 6f 64 65 20 69 73 20 44 42 5f 54 41 42 4c 45 49 4e 46 4f 5f 4f 52 44 45 ...*.-.mode.is.DB_TABLEINFO_ORDE
1d5e0 52 0a 20 20 20 20 20 20 20 20 20 20 2a 20 24 72 65 73 75 6c 74 5b 5d 3a 0a 20 20 20 20 20 20 20 R...........*.$result[]:........
1d600 20 20 20 2a 20 20 20 5b 22 6e 75 6d 5f 66 69 65 6c 64 73 22 5d 20 6e 75 6d 62 65 72 20 6f 66 20 ...*...["num_fields"].number.of.
1d620 6d 65 74 61 64 61 74 61 20 72 65 63 6f 72 64 73 0a 20 20 20 20 20 20 20 20 20 20 2a 20 20 20 5b metadata.records...........*...[
1d640 30 5d 5b 22 74 61 62 6c 65 22 5d 20 20 74 61 62 6c 65 20 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 0]["table"]..table.name.........
1d660 20 20 2a 20 20 20 5b 30 5d 5b 22 6e 61 6d 65 22 5d 20 20 20 66 69 65 6c 64 20 6e 61 6d 65 0a 20 ..*...[0]["name"]...field.name..
1d680 20 20 20 20 20 20 20 20 20 2a 20 20 20 5b 30 5d 5b 22 74 79 70 65 22 5d 20 20 20 66 69 65 6c 64 .........*...[0]["type"]...field
1d6a0 20 74 79 70 65 0a 20 20 20 20 20 20 20 20 20 20 2a 20 20 20 5b 30 5d 5b 22 6c 65 6e 22 5d 20 20 .type...........*...[0]["len"]..
1d6c0 20 20 66 69 65 6c 64 20 6c 65 6e 67 74 68 0a 20 20 20 20 20 20 20 20 20 20 2a 20 20 20 5b 30 5d ..field.length...........*...[0]
1d6e0 5b 22 66 6c 61 67 73 22 5d 20 20 66 69 65 6c 64 20 66 6c 61 67 73 0a 20 20 20 20 20 20 20 20 20 ["flags"]..field.flags..........
1d700 20 2a 20 20 20 5b 22 6f 72 64 65 72 22 5d 5b 66 69 65 6c 64 20 6e 61 6d 65 5d 20 20 69 6e 64 65 .*...["order"][field.name]..inde
1d720 78 20 6f 66 20 66 69 65 6c 64 20 6e 61 6d 65 64 20 22 66 69 65 6c 64 20 6e 61 6d 65 22 0a 20 20 x.of.field.named."field.name"...
1d740 20 20 20 20 20 20 20 20 2a 20 20 20 54 68 65 20 6c 61 73 74 20 6f 6e 65 20 69 73 20 75 73 65 64 ........*...The.last.one.is.used
1d760 2c 20 69 66 20 79 6f 75 20 68 61 76 65 20 61 20 66 69 65 6c 64 20 6e 61 6d 65 2c 20 62 75 74 20 ,.if.you.have.a.field.name,.but.
1d780 6e 6f 20 69 6e 64 65 78 2e 0a 20 20 20 20 20 20 20 20 20 20 2a 20 20 20 54 65 73 74 3a 20 20 69 no.index............*...Test:..i
1d7a0 66 20 28 69 73 73 65 74 28 24 72 65 73 75 6c 74 5b 27 6d 65 74 61 27 5d 5b 27 6d 79 66 69 65 6c f.(isset($result['meta']['myfiel
1d7c0 64 27 5d 29 29 20 7b 20 2e 2e 2e 0a 20 20 20 20 20 20 20 20 20 20 2a 0a 20 20 20 20 20 20 20 20 d'])).{...............*.........
1d7e0 20 20 2a 20 2d 20 6d 6f 64 65 20 69 73 20 44 42 5f 54 41 42 4c 45 49 4e 46 4f 5f 4f 52 44 45 52 ..*.-.mode.is.DB_TABLEINFO_ORDER
1d800 54 41 42 4c 45 0a 20 20 20 20 20 20 20 20 20 20 2a 20 20 20 20 74 68 65 20 73 61 6d 65 20 61 73 TABLE...........*....the.same.as
1d820 20 61 62 6f 76 65 2e 20 62 75 74 20 61 64 64 69 74 69 6f 6e 61 6c 6c 79 0a 20 20 20 20 20 20 20 .above..but.additionally........
1d840 20 20 20 2a 20 20 20 5b 22 6f 72 64 65 72 74 61 62 6c 65 22 5d 5b 74 61 62 6c 65 20 6e 61 6d 65 ...*...["ordertable"][table.name
1d860 5d 5b 66 69 65 6c 64 20 6e 61 6d 65 5d 20 69 6e 64 65 78 20 6f 66 20 66 69 65 6c 64 0a 20 20 20 ][field.name].index.of.field....
1d880 20 20 20 20 20 20 20 2a 20 20 20 20 20 20 6e 61 6d 65 64 20 22 66 69 65 6c 64 20 6e 61 6d 65 22 .......*......named."field.name"
1d8a0 0a 20 20 20 20 20 20 20 20 20 20 2a 0a 20 20 20 20 20 20 20 20 20 20 2a 20 20 20 20 20 20 74 68 ...........*...........*......th
1d8c0 69 73 20 69 73 2c 20 62 65 63 61 75 73 65 20 69 66 20 79 6f 75 20 68 61 76 65 20 66 69 65 6c 64 is.is,.because.if.you.have.field
1d8e0 73 20 66 72 6f 6d 20 64 69 66 66 65 72 65 6e 74 0a 20 20 20 20 20 20 20 20 20 20 2a 20 20 20 20 s.from.different...........*....
1d900 20 20 74 61 62 6c 65 73 20 77 69 74 68 20 74 68 65 20 73 61 6d 65 20 66 69 65 6c 64 20 6e 61 6d ..tables.with.the.same.field.nam
1d920 65 20 2a 20 74 68 65 79 20 6f 76 65 72 72 69 64 65 20 65 61 63 68 0a 20 20 20 20 20 20 20 20 20 e.*.they.override.each..........
1d940 20 2a 20 20 20 20 20 20 6f 74 68 65 72 20 77 69 74 68 20 44 42 5f 54 41 42 4c 45 49 4e 46 4f 5f .*......other.with.DB_TABLEINFO_
1d960 4f 52 44 45 52 0a 20 20 20 20 20 20 20 20 20 20 2a 0a 20 20 20 20 20 20 20 20 20 20 2a 20 20 20 ORDER...........*...........*...
1d980 20 20 20 79 6f 75 20 63 61 6e 20 63 6f 6d 62 69 6e 65 20 44 42 5f 54 41 42 4c 45 49 4e 46 4f 5f ...you.can.combine.DB_TABLEINFO_
1d9a0 4f 52 44 45 52 20 61 6e 64 0a 20 20 20 20 20 20 20 20 20 20 2a 20 20 20 20 20 20 44 42 5f 54 41 ORDER.and...........*......DB_TA
1d9c0 42 4c 45 49 4e 46 4f 5f 4f 52 44 45 52 54 41 42 4c 45 20 77 69 74 68 20 44 42 5f 54 41 42 4c 45 BLEINFO_ORDERTABLE.with.DB_TABLE
1d9e0 49 4e 46 4f 5f 4f 52 44 45 52 20 7c 0a 20 20 20 20 20 20 20 20 20 20 2a 20 20 20 20 20 20 44 42 INFO_ORDER.|...........*......DB
1da00 5f 54 41 42 4c 45 49 4e 46 4f 5f 4f 52 44 45 52 54 41 42 4c 45 20 2a 20 6f 72 20 77 69 74 68 20 _TABLEINFO_ORDERTABLE.*.or.with.
1da20 44 42 5f 54 41 42 4c 45 49 4e 46 4f 5f 46 55 4c 4c 0a 20 20 20 20 20 20 20 20 20 20 2a 2f 0a 0a DB_TABLEINFO_FULL...........*/..
1da40 20 20 20 20 20 20 20 20 20 2f 2f 20 69 66 20 24 72 65 73 75 6c 74 20 69 73 20 61 20 73 74 72 69 .........//.if.$result.is.a.stri
1da60 6e 67 2c 20 74 68 65 6e 20 77 65 20 77 61 6e 74 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 61 62 6f ng,.then.we.want.information.abo
1da80 75 74 20 61 0a 20 20 20 20 20 20 20 20 20 2f 2f 20 74 61 62 6c 65 20 77 69 74 68 6f 75 74 20 61 ut.a..........//.table.without.a
1daa0 20 72 65 73 75 6c 74 73 65 74 0a 0a 20 20 20 20 20 20 20 20 20 69 66 20 28 69 73 5f 73 74 72 69 .resultset...........if.(is_stri
1dac0 6e 67 28 24 72 65 73 75 6c 74 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 24 69 64 20 ng($result)).{..............$id.
1dae0 3d 20 69 62 61 73 65 5f 71 75 65 72 79 28 24 74 68 69 73 2d 3e 63 6f 6e 6e 65 63 74 69 6f 6e 2c =.ibase_query($this->connection,
1db00 22 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 24 72 65 73 75 6c 74 22 29 3b 0a 20 20 20 20 20 20 "SELECT.*.FROM.$result");.......
1db20 20 20 20 20 20 20 20 69 66 20 28 65 6d 70 74 79 28 24 69 64 29 29 20 7b 0a 20 20 20 20 20 20 20 .......if.(empty($id)).{........
1db40 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 69 62 61 73 65 52 61 69 ..........return.$this->ibaseRai
1db60 73 65 45 72 72 6f 72 28 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 seError();..............}.......
1db80 20 20 20 7d 20 65 6c 73 65 20 7b 20 2f 2f 20 65 6c 73 65 20 77 65 20 77 61 6e 74 20 69 6e 66 6f ...}.else.{.//.else.we.want.info
1dba0 72 6d 61 74 69 6f 6e 20 61 62 6f 75 74 20 61 20 72 65 73 75 6c 74 73 65 74 0a 20 20 20 20 20 20 rmation.about.a.resultset.......
1dbc0 20 20 20 20 20 20 20 24 69 64 20 3d 20 24 72 65 73 75 6c 74 3b 0a 20 20 20 20 20 20 20 20 20 20 .......$id.=.$result;...........
1dbe0 20 20 20 69 66 20 28 65 6d 70 74 79 28 24 69 64 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 ...if.(empty($id)).{............
1dc00 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 69 62 61 73 65 52 61 69 73 65 45 72 ......return.$this->ibaseRaiseEr
1dc20 72 6f 72 28 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 7d ror();..............}..........}
1dc40 0a 0a 20 20 20 20 20 20 20 20 20 24 63 6f 75 6e 74 20 3d 20 40 69 62 61 73 65 5f 6e 75 6d 5f 66 ...........$count.=.@ibase_num_f
1dc60 69 65 6c 64 73 28 24 69 64 29 3b 0a 0a 20 20 20 20 20 20 20 20 20 2f 2f 20 6d 61 64 65 20 74 68 ields($id);...........//.made.th
1dc80 69 73 20 49 46 20 64 75 65 20 74 6f 20 70 65 72 66 6f 72 6d 61 6e 63 65 20 28 6f 6e 65 20 69 66 is.IF.due.to.performance.(one.if
1dca0 20 69 73 20 66 61 73 74 65 72 20 74 68 61 6e 20 24 63 6f 75 6e 74 20 69 66 27 73 29 0a 20 20 20 .is.faster.than.$count.if's)....
1dcc0 20 20 20 20 20 20 69 66 20 28 65 6d 70 74 79 28 24 6d 6f 64 65 29 29 20 7b 0a 0a 20 20 20 20 20 ......if.(empty($mode)).{.......
1dce0 20 20 20 20 20 20 20 20 66 6f 72 20 28 24 69 3d 30 3b 20 24 69 3c 24 63 6f 75 6e 74 3b 20 24 69 ........for.($i=0;.$i<$count;.$i
1dd00 2b 2b 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 69 6e 66 6f 20 3d 20 40 ++).{..................$info.=.@
1dd20 69 62 61 73 65 5f 66 69 65 6c 64 5f 69 6e 66 6f 28 24 69 64 2c 20 24 69 29 3b 0a 20 20 20 20 20 ibase_field_info($id,.$i);......
1dd40 20 20 20 20 20 20 20 20 20 20 20 20 24 72 65 73 5b 24 69 5d 5b 27 74 61 62 6c 65 27 5d 20 3d 20 ............$res[$i]['table'].=.
1dd60 28 69 73 5f 73 74 72 69 6e 67 28 24 72 65 73 75 6c 74 29 29 20 3f 20 24 72 65 73 75 6c 74 20 3a (is_string($result)).?.$result.:
1dd80 20 27 27 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 72 65 73 5b 24 69 5d 5b 27 .'';..................$res[$i]['
1dda0 6e 61 6d 65 27 5d 20 20 3d 20 24 69 6e 66 6f 5b 27 6e 61 6d 65 27 5d 3b 0a 20 20 20 20 20 20 20 name']..=.$info['name'];........
1ddc0 20 20 20 20 20 20 20 20 20 20 24 72 65 73 5b 24 69 5d 5b 27 74 79 70 65 27 5d 20 20 3d 20 24 69 ..........$res[$i]['type']..=.$i
1dde0 6e 66 6f 5b 27 74 79 70 65 27 5d 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 72 nfo['type'];..................$r
1de00 65 73 5b 24 69 5d 5b 27 6c 65 6e 27 5d 20 20 20 3d 20 24 69 6e 66 6f 5b 27 6c 65 6e 67 74 68 27 es[$i]['len']...=.$info['length'
1de20 5d 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 72 65 73 5b 24 69 5d 5b 27 66 6c ];..................$res[$i]['fl
1de40 61 67 73 27 5d 20 3d 20 28 69 73 5f 73 74 72 69 6e 67 28 24 72 65 73 75 6c 74 29 29 20 3f 20 24 ags'].=.(is_string($result)).?.$
1de60 74 68 69 73 2d 3e 5f 69 62 61 73 65 46 69 65 6c 64 46 6c 61 67 73 28 24 69 6e 66 6f 5b 27 6e 61 this->_ibaseFieldFlags($info['na
1de80 6d 65 27 5d 2c 20 24 72 65 73 75 6c 74 29 20 3a 20 27 27 3b 0a 20 20 20 20 20 20 20 20 20 20 20 me'],.$result).:.'';............
1dea0 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 20 2f 2f 20 66 75 6c 6c 0a 20 ..}...........}.else.{.//.full..
1dec0 20 20 20 20 20 20 20 20 20 20 20 20 24 72 65 73 5b 22 6e 75 6d 5f 66 69 65 6c 64 73 22 5d 3d 20 ............$res["num_fields"]=.
1dee0 24 63 6f 75 6e 74 3b 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 20 28 24 69 3d 30 3b $count;...............for.($i=0;
1df00 20 24 69 3c 24 63 6f 75 6e 74 3b 20 24 69 2b 2b 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 .$i<$count;.$i++).{.............
1df20 20 20 20 20 20 24 69 6e 66 6f 20 3d 20 40 69 62 61 73 65 5f 66 69 65 6c 64 5f 69 6e 66 6f 28 24 .....$info.=.@ibase_field_info($
1df40 69 64 2c 20 24 69 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 72 65 73 5b 24 id,.$i);..................$res[$
1df60 69 5d 5b 27 74 61 62 6c 65 27 5d 20 3d 20 28 69 73 5f 73 74 72 69 6e 67 28 24 72 65 73 75 6c 74 i]['table'].=.(is_string($result
1df80 29 29 20 3f 20 24 72 65 73 75 6c 74 20 3a 20 27 27 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 )).?.$result.:.'';..............
1dfa0 20 20 20 20 24 72 65 73 5b 24 69 5d 5b 27 6e 61 6d 65 27 5d 20 20 3d 20 24 69 6e 66 6f 5b 27 6e ....$res[$i]['name']..=.$info['n
1dfc0 61 6d 65 27 5d 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 72 65 73 5b 24 69 5d ame'];..................$res[$i]
1dfe0 5b 27 74 79 70 65 27 5d 20 20 3d 20 24 69 6e 66 6f 5b 27 74 79 70 65 27 5d 3b 0a 20 20 20 20 20 ['type']..=.$info['type'];......
1e000 20 20 20 20 20 20 20 20 20 20 20 20 24 72 65 73 5b 24 69 5d 5b 27 6c 65 6e 27 5d 20 20 20 3d 20 ............$res[$i]['len']...=.
1e020 24 69 6e 66 6f 5b 27 6c 65 6e 67 74 68 27 5d 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 $info['length'];................
1e040 20 20 24 72 65 73 5b 24 69 5d 5b 27 66 6c 61 67 73 27 5d 20 3d 20 28 69 73 5f 73 74 72 69 6e 67 ..$res[$i]['flags'].=.(is_string
1e060 28 24 72 65 73 75 6c 74 29 29 20 3f 20 24 74 68 69 73 2d 3e 5f 69 62 61 73 65 46 69 65 6c 64 46 ($result)).?.$this->_ibaseFieldF
1e080 6c 61 67 73 28 24 69 6e 66 6f 5b 27 6e 61 6d 65 27 5d 2c 20 24 72 65 73 75 6c 74 29 20 3a 20 27 lags($info['name'],.$result).:.'
1e0a0 27 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 24 6d 6f 64 65 20 26 20 ';..................if.($mode.&.
1e0c0 44 42 5f 54 41 42 4c 45 49 4e 46 4f 5f 4f 52 44 45 52 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 DB_TABLEINFO_ORDER).{...........
1e0e0 20 20 20 20 20 20 20 20 20 20 20 24 72 65 73 5b 27 6f 72 64 65 72 27 5d 5b 24 72 65 73 5b 24 69 ...........$res['order'][$res[$i
1e100 5d 5b 27 6e 61 6d 65 27 5d 5d 20 3d 20 24 69 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ]['name']].=.$i;................
1e120 20 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 24 6d 6f 64 65 20 26 ..}..................if.($mode.&
1e140 20 44 42 5f 54 41 42 4c 45 49 4e 46 4f 5f 4f 52 44 45 52 54 41 42 4c 45 29 20 7b 0a 20 20 20 20 .DB_TABLEINFO_ORDERTABLE).{.....
1e160 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 72 65 73 5b 27 6f 72 64 65 72 74 61 62 6c .................$res['ordertabl
1e180 65 27 5d 5b 24 72 65 73 5b 24 69 5d 5b 27 74 61 62 6c 65 27 5d 5d 5b 24 72 65 73 5b 24 69 5d 5b e'][$res[$i]['table']][$res[$i][
1e1a0 27 6e 61 6d 65 27 5d 5d 20 3d 20 24 69 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 'name']].=.$i;..................
1e1c0 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 }..............}..........}.....
1e1e0 20 20 20 20 20 20 2f 2f 20 66 72 65 65 20 74 68 65 20 72 65 73 75 6c 74 20 6f 6e 6c 79 20 69 66 ......//.free.the.result.only.if
1e200 20 77 65 20 77 65 72 65 20 63 61 6c 6c 65 64 20 6f 6e 20 61 20 74 61 62 6c 65 0a 20 20 20 20 20 .we.were.called.on.a.table......
1e220 20 20 20 20 69 66 20 28 69 73 5f 73 74 72 69 6e 67 28 24 72 65 73 75 6c 74 29 29 20 7b 0a 20 20 ....if.(is_string($result)).{...
1e240 20 20 20 20 20 20 20 20 20 20 20 69 62 61 73 65 5f 66 72 65 65 5f 72 65 73 75 6c 74 28 24 69 64 ...........ibase_free_result($id
1e260 29 3b 0a 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 72 );..........}..........return.$r
1e280 65 73 3b 0a 20 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b es;......}......//.}}}.....//.{{
1e2a0 7b 20 67 65 74 53 70 65 63 69 61 6c 51 75 65 72 79 28 29 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 {.getSpecialQuery()....../**....
1e2c0 20 2a 20 52 65 74 75 72 6e 73 20 74 68 65 20 71 75 65 72 79 20 6e 65 65 64 65 64 20 74 6f 20 67 .*.Returns.the.query.needed.to.g
1e2e0 65 74 20 73 6f 6d 65 20 62 61 63 6b 65 6e 64 20 69 6e 66 6f 0a 20 20 20 20 2a 20 40 70 61 72 61 et.some.backend.info.....*.@para
1e300 6d 20 73 74 72 69 6e 67 20 24 74 79 70 65 20 57 68 61 74 20 6b 69 6e 64 20 6f 66 20 69 6e 66 6f m.string.$type.What.kind.of.info
1e320 20 79 6f 75 20 77 61 6e 74 20 74 6f 20 72 65 74 72 69 65 76 65 0a 20 20 20 20 2a 20 40 72 65 74 .you.want.to.retrieve.....*.@ret
1e340 75 72 6e 20 73 74 72 69 6e 67 20 54 68 65 20 53 51 4c 20 71 75 65 72 79 20 73 74 72 69 6e 67 0a urn.string.The.SQL.query.string.
1e360 20 20 20 20 2a 2f 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 70 65 63 69 61 6c 51 75 ....*/.....function.getSpecialQu
1e380 65 72 79 28 24 74 79 70 65 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 73 77 69 74 63 68 20 ery($type).....{.........switch.
1e3a0 28 24 74 79 70 65 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 63 61 73 65 20 27 74 61 62 6c ($type).{.............case.'tabl
1e3c0 65 73 27 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 64 65 66 61 75 6c 74 3a 0a 20 20 20 20 20 20 es':.............default:.......
1e3e0 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 6e 75 6c 6c 3b 0a 20 20 20 20 20 20 20 20 7d ..........return.null;.........}
1e400 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 73 71 6c 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 .........return.$sql;.....}.....
1e420 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 69 62 61 73 65 52 61 69 73 65 45 72 72 .//.}}}.....//.{{{.ibaseRaiseErr
1e440 6f 72 28 29 0a 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 69 62 61 73 65 52 61 69 73 65 45 72 72 or()......function.ibaseRaiseErr
1e460 6f 72 28 24 64 62 5f 65 72 72 6e 6f 20 3d 20 6e 75 6c 6c 2c 20 24 6e 61 74 69 76 65 5f 65 72 72 or($db_errno.=.null,.$native_err
1e480 6d 73 67 20 3d 20 6e 75 6c 6c 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 69 66 20 28 24 6e msg.=.null).....{.........if.($n
1e4a0 61 74 69 76 65 5f 65 72 72 6d 73 67 20 3d 3d 3d 20 6e 75 6c 6c 29 20 7b 0a 20 20 20 20 20 20 20 ative_errmsg.===.null).{........
1e4c0 20 20 20 20 20 24 6e 61 74 69 76 65 5f 65 72 72 6d 73 67 20 3d 20 69 62 61 73 65 5f 65 72 72 6d .....$native_errmsg.=.ibase_errm
1e4e0 73 67 28 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 2f 2f 20 6d 65 6d 6f 20 sg();.........}.........//.memo.
1e500 66 6f 72 20 74 68 65 20 69 6e 74 65 72 62 61 73 65 20 70 68 70 20 6d 6f 64 75 6c 65 20 68 61 63 for.the.interbase.php.module.hac
1e520 6b 65 72 73 3a 20 77 65 20 6e 65 65 64 20 73 6f 6d 65 74 68 69 6e 67 20 73 69 6d 69 6c 61 72 0a kers:.we.need.something.similar.
1e540 20 20 20 20 20 20 20 20 2f 2f 20 74 6f 20 6d 79 73 71 6c 5f 65 72 72 6e 6f 28 29 20 74 6f 20 72 ........//.to.mysql_errno().to.r
1e560 65 74 72 69 65 76 65 20 65 72 72 6f 72 20 63 6f 64 65 73 20 69 6e 73 74 65 61 64 20 6f 66 20 74 etrieve.error.codes.instead.of.t
1e580 68 69 73 20 75 67 6c 79 20 68 61 63 6b 0a 20 20 20 20 20 20 20 20 69 66 20 28 70 72 65 67 5f 6d his.ugly.hack.........if.(preg_m
1e5a0 61 74 63 68 28 27 2f 5e 28 5b 5e 30 2d 39 5c 2d 5d 2b 29 28 5b 30 2d 39 5c 2d 5d 2b 29 5c 73 2b atch('/^([^0-9\-]+)([0-9\-]+)\s+
1e5c0 28 2e 2a 29 24 2f 27 2c 20 24 6e 61 74 69 76 65 5f 65 72 72 6d 73 67 2c 20 24 6d 29 29 20 7b 0a (.*)$/',.$native_errmsg,.$m)).{.
1e5e0 20 20 20 20 20 20 20 20 20 20 20 20 24 6e 61 74 69 76 65 5f 65 72 72 6e 6f 20 3d 20 28 69 6e 74 ............$native_errno.=.(int
1e600 29 24 6d 5b 32 5d 3b 0a 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 )$m[2];.........}.else.{........
1e620 20 20 20 20 20 24 6e 61 74 69 76 65 5f 65 72 72 6e 6f 20 3d 20 6e 75 6c 6c 3b 0a 20 20 20 20 20 .....$native_errno.=.null;......
1e640 20 20 20 7d 0a 20 20 20 20 20 20 20 20 2f 2f 20 74 72 79 20 74 6f 20 6d 61 70 20 74 68 65 20 6e ...}.........//.try.to.map.the.n
1e660 61 74 69 76 65 20 65 72 72 6f 72 20 74 6f 20 74 68 65 20 44 42 20 6f 6e 65 0a 20 20 20 20 20 20 ative.error.to.the.DB.one.......
1e680 20 20 69 66 20 28 24 64 62 5f 65 72 72 6e 6f 20 3d 3d 3d 20 6e 75 6c 6c 29 20 7b 0a 20 20 20 20 ..if.($db_errno.===.null).{.....
1e6a0 20 20 20 20 20 20 20 20 69 66 20 28 24 6e 61 74 69 76 65 5f 65 72 72 6e 6f 29 20 7b 0a 20 20 20 ........if.($native_errno).{....
1e6c0 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 74 72 79 20 74 6f 20 69 6e 74 65 72 70 72 65 74 .............//.try.to.interpret
1e6e0 20 49 6e 74 65 72 62 61 73 65 20 65 72 72 6f 72 20 63 6f 64 65 20 28 74 68 61 74 27 73 20 77 68 .Interbase.error.code.(that's.wh
1e700 79 20 77 65 20 6e 65 65 64 20 69 62 61 73 65 5f 65 72 72 6e 6f 28 29 0a 20 20 20 20 20 20 20 20 y.we.need.ibase_errno().........
1e720 20 20 20 20 20 20 20 20 2f 2f 20 69 6e 20 74 68 65 20 69 6e 74 65 72 62 61 73 65 20 6d 6f 64 75 ........//.in.the.interbase.modu
1e740 6c 65 20 74 6f 20 72 65 74 75 72 6e 20 74 68 65 20 72 65 61 6c 20 65 72 72 6f 72 20 63 6f 64 65 le.to.return.the.real.error.code
1e760 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 77 69 74 63 68 20 28 24 6e 61 74 69 )..................switch.($nati
1e780 76 65 5f 65 72 72 6e 6f 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ve_errno).{.....................
1e7a0 63 61 73 65 20 2d 32 30 34 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 case.-204:......................
1e7c0 20 20 20 69 66 20 28 69 73 5f 69 6e 74 28 73 74 72 70 6f 73 28 24 6d 5b 33 5d 2c 20 27 54 61 62 ...if.(is_int(strpos($m[3],.'Tab
1e7e0 6c 65 20 75 6e 6b 6e 6f 77 6e 27 29 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 le.unknown'))).{................
1e800 20 20 20 20 20 20 20 20 20 20 20 20 20 24 64 62 5f 65 72 72 6e 6f 20 3d 20 44 42 5f 45 52 52 4f .............$db_errno.=.DB_ERRO
1e820 52 5f 4e 4f 53 55 43 48 54 41 42 4c 45 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 R_NOSUCHTABLE;..................
1e840 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 72 65 .......}.....................bre
1e860 61 6b 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 64 65 66 61 75 6c 74 3a ak;.....................default:
1e880 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 64 62 5f 65 72 72 .........................$db_err
1e8a0 6e 6f 20 3d 20 24 74 68 69 73 2d 3e 65 72 72 6f 72 43 6f 64 65 28 24 6e 61 74 69 76 65 5f 65 72 no.=.$this->errorCode($native_er
1e8c0 72 6e 6f 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 rno);.................}.........
1e8e0 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 65 72 ....}.else.{.................$er
1e900 72 6f 72 5f 72 65 67 65 78 70 73 20 3d 20 61 72 72 61 79 28 0a 20 20 20 20 20 20 20 20 20 20 20 ror_regexps.=.array(............
1e920 20 20 20 20 20 20 20 20 20 27 2f 5b 74 54 5d 61 62 6c 65 20 2e 2a 20 61 6c 72 65 61 64 79 20 65 .........'/[tT]able..*.already.e
1e940 78 69 73 74 73 2f 27 20 3d 3e 20 44 42 5f 45 52 52 4f 52 5f 41 4c 52 45 41 44 59 5f 45 58 49 53 xists/'.=>.DB_ERROR_ALREADY_EXIS
1e960 54 53 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 2f 76 69 6f 6c 61 74 TS,.....................'/violat
1e980 69 6f 6e 20 6f 66 20 46 4f 52 45 49 47 4e 20 4b 45 59 20 63 6f 6e 73 74 72 61 69 6e 74 2f 27 20 ion.of.FOREIGN.KEY.constraint/'.
1e9a0 3d 3e 20 44 42 5f 45 52 52 4f 52 5f 43 4f 4e 53 54 52 41 49 4e 54 2c 0a 20 20 20 20 20 20 20 20 =>.DB_ERROR_CONSTRAINT,.........
1e9c0 20 20 20 20 20 20 20 20 20 20 20 20 27 2f 63 6f 6e 76 65 72 73 69 6f 6e 20 65 72 72 6f 72 20 66 ............'/conversion.error.f
1e9e0 72 6f 6d 20 73 74 72 69 6e 67 2f 27 20 3d 3e 20 44 42 5f 45 52 52 4f 52 5f 49 4e 56 41 4c 49 44 rom.string/'.=>.DB_ERROR_INVALID
1ea00 5f 4e 55 4d 42 45 52 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 2f 61 _NUMBER,.....................'/a
1ea20 72 69 74 68 6d 65 74 69 63 20 65 78 63 65 70 74 69 6f 6e 2c 20 6e 75 6d 65 72 69 63 20 6f 76 65 rithmetic.exception,.numeric.ove
1ea40 72 66 6c 6f 77 2c 20 6f 72 20 73 74 72 69 6e 67 20 74 72 75 6e 63 61 74 69 6f 6e 2f 27 20 3d 3e rflow,.or.string.truncation/'.=>
1ea60 20 44 42 5f 45 52 52 4f 52 5f 44 49 56 5a 45 52 4f 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .DB_ERROR_DIVZERO...............
1ea80 20 20 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 65 61 63 68 20 28 24 65 ..);.................foreach.($e
1eaa0 72 72 6f 72 5f 72 65 67 65 78 70 73 20 61 73 20 24 72 65 67 65 78 70 20 3d 3e 20 24 63 6f 64 65 rror_regexps.as.$regexp.=>.$code
1eac0 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 70 72 65 67 ).{.....................if.(preg
1eae0 5f 6d 61 74 63 68 28 24 72 65 67 65 78 70 2c 20 24 6e 61 74 69 76 65 5f 65 72 72 6d 73 67 2c 20 _match($regexp,.$native_errmsg,.
1eb00 24 6d 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 $m)).{.........................$
1eb20 64 62 5f 65 72 72 6e 6f 20 3d 20 24 63 6f 64 65 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 db_errno.=.$code;...............
1eb40 20 20 20 20 20 20 20 20 20 20 24 6e 61 74 69 76 65 5f 65 72 72 6e 6f 20 3d 20 6e 75 6c 6c 3b 0a ..........$native_errno.=.null;.
1eb60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 72 65 61 6b 3b 0a 20 ........................break;..
1eb80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 ...................}............
1eba0 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 7d 0a 20 .....}.............}.........}..
1ebc0 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 61 69 73 65 45 72 72 6f 72 28 .......return.$this->raiseError(
1ebe0 24 64 62 5f 65 72 72 6e 6f 2c 20 6e 75 6c 6c 2c 20 6e 75 6c 6c 2c 20 6e 75 6c 6c 2c 20 24 6e 61 $db_errno,.null,.null,.null,.$na
1ec00 74 69 76 65 5f 65 72 72 6d 73 67 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a tive_errmsg);.....}......//.}}}.
1ec20 0a 7d 0a 0a 2f 2a 0a 20 2a 20 4c 6f 63 61 6c 20 76 61 72 69 61 62 6c 65 73 3a 0a 20 2a 20 74 61 .}../*..*.Local.variables:..*.ta
1ec40 62 2d 77 69 64 74 68 3a 20 34 0a 20 2a 20 63 2d 62 61 73 69 63 2d 6f 66 66 73 65 74 3a 20 34 0a b-width:.4..*.c-basic-offset:.4.
1ec60 20 2a 20 45 6e 64 3a 0a 20 2a 2f 0a 0a 3f 3e 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .*.End:..*/..?>.................
1ec80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1eca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1ecc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1ece0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1ed00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1ed20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1ed40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1ed60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1ed80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1eda0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1edc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1ede0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1ee00 44 42 2d 31 2e 35 2e 30 52 43 31 2f 44 42 2f 69 66 78 2e 70 68 70 00 00 00 00 00 00 00 00 00 00 DB-1.5.0RC1/DB/ifx.php..........
1ee20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1ee40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1ee60 00 00 00 00 31 30 30 36 34 34 20 00 20 20 20 37 36 34 20 00 20 20 20 31 34 34 20 00 20 20 20 20 ....100644.....764.....144......
1ee80 20 20 32 33 33 33 34 20 20 37 36 37 31 34 33 36 32 34 37 20 20 20 37 33 30 33 20 00 00 00 00 00 ..23334..7671436247...7303......
1eea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1eec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1eee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1ef00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1ef20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1ef40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1ef60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1ef80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1efa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1efc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1efe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1f000 3c 3f 70 68 70 0a 2f 2a 20 76 69 6d 3a 20 73 65 74 20 65 78 70 61 6e 64 74 61 62 20 74 61 62 73 <?php./*.vim:.set.expandtab.tabs
1f020 74 6f 70 3d 34 20 73 68 69 66 74 77 69 64 74 68 3d 34 20 66 6f 6c 64 6d 65 74 68 6f 64 3d 6d 61 top=4.shiftwidth=4.foldmethod=ma
1f040 72 6b 65 72 3a 20 2a 2f 0a 2f 2f 20 2b 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d rker:.*/.//.+-------------------
1f060 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
1f080 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2b 0a 2f 2f 20 7c 20 50 48 50 20 56 65 -------------------+.//.|.PHP.Ve
1f0a0 72 73 69 6f 6e 20 34 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 rsion.4.........................
1f0c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c ...............................|
1f0e0 0a 2f 2f 20 2b 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d .//.+---------------------------
1f100 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
1f120 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2b 0a 2f 2f 20 7c 20 43 6f 70 79 72 69 67 68 74 20 28 63 29 20 -----------+.//.|.Copyright.(c).
1f140 31 39 39 37 2d 32 30 30 33 20 54 68 65 20 50 48 50 20 47 72 6f 75 70 20 20 20 20 20 20 20 20 20 1997-2003.The.PHP.Group.........
1f160 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 2f 2f 20 2b 2d 2d 2d .......................|.//.+---
1f180 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
1f1a0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
1f1c0 2d 2d 2d 2b 0a 2f 2f 20 7c 20 54 68 69 73 20 73 6f 75 72 63 65 20 66 69 6c 65 20 69 73 20 73 75 ---+.//.|.This.source.file.is.su
1f1e0 62 6a 65 63 74 20 74 6f 20 76 65 72 73 69 6f 6e 20 32 2e 30 32 20 6f 66 20 74 68 65 20 50 48 50 bject.to.version.2.02.of.the.PHP
1f200 20 6c 69 63 65 6e 73 65 2c 20 20 20 20 20 20 7c 0a 2f 2f 20 7c 20 74 68 61 74 20 69 73 20 62 75 .license,......|.//.|.that.is.bu
1f220 6e 64 6c 65 64 20 77 69 74 68 20 74 68 69 73 20 70 61 63 6b 61 67 65 20 69 6e 20 74 68 65 20 66 ndled.with.this.package.in.the.f
1f240 69 6c 65 20 4c 49 43 45 4e 53 45 2c 20 61 6e 64 20 69 73 20 20 20 20 20 20 20 20 7c 0a 2f 2f 20 ile.LICENSE,.and.is........|.//.
1f260 7c 20 61 76 61 69 6c 61 62 6c 65 20 61 74 20 74 68 72 6f 75 67 68 20 74 68 65 20 77 6f 72 6c 64 |.available.at.through.the.world
1f280 2d 77 69 64 65 2d 77 65 62 20 61 74 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -wide-web.at....................
1f2a0 20 20 20 20 20 20 20 7c 0a 2f 2f 20 7c 20 68 74 74 70 3a 2f 2f 77 77 77 2e 70 68 70 2e 6e 65 74 .......|.//.|.http://www.php.net
1f2c0 2f 6c 69 63 65 6e 73 65 2f 32 5f 30 32 2e 74 78 74 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 /license/2_02.txt...............
1f2e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 2f 2f 20 7c 20 49 66 20 79 6f 75 ...................|.//.|.If.you
1f300 20 64 69 64 20 6e 6f 74 20 72 65 63 65 69 76 65 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 50 .did.not.receive.a.copy.of.the.P
1f320 48 50 20 6c 69 63 65 6e 73 65 20 61 6e 64 20 61 72 65 20 75 6e 61 62 6c 65 20 74 6f 20 20 20 7c HP.license.and.are.unable.to...|
1f340 0a 2f 2f 20 7c 20 6f 62 74 61 69 6e 20 69 74 20 74 68 72 6f 75 67 68 20 74 68 65 20 77 6f 72 6c .//.|.obtain.it.through.the.worl
1f360 64 2d 77 69 64 65 2d 77 65 62 2c 20 70 6c 65 61 73 65 20 73 65 6e 64 20 61 20 6e 6f 74 65 20 74 d-wide-web,.please.send.a.note.t
1f380 6f 20 20 20 20 20 20 20 20 20 20 7c 0a 2f 2f 20 7c 20 6c 69 63 65 6e 73 65 40 70 68 70 2e 6e 65 o..........|.//.|.license@php.ne
1f3a0 74 20 73 6f 20 77 65 20 63 61 6e 20 6d 61 69 6c 20 79 6f 75 20 61 20 63 6f 70 79 20 69 6d 6d 65 t.so.we.can.mail.you.a.copy.imme
1f3c0 64 69 61 74 65 6c 79 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 2f 2f 20 2b 2d 2d 2d diately................|.//.+---
1f3e0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
1f400 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
1f420 2d 2d 2d 2b 0a 2f 2f 20 7c 20 41 75 74 68 6f 72 3a 20 54 6f 6d 61 73 20 56 2e 56 2e 43 6f 78 20 ---+.//.|.Author:.Tomas.V.V.Cox.
1f440 3c 63 6f 78 40 69 64 65 63 6e 65 74 2e 63 6f 6d 3e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 <cox@idecnet.com>...............
1f460 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 2f 2f 20 2b 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ...............|.//.+-----------
1f480 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
1f4a0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2b 0a 2f 2f 0a ---------------------------+.//.
1f4c0 2f 2f 20 24 49 64 3a 20 69 66 78 2e 70 68 70 2c 76 20 31 2e 31 30 20 32 30 30 33 2f 30 36 2f 31 //.$Id:.ifx.php,v.1.10.2003/06/1
1f4e0 30 20 32 30 3a 31 36 3a 33 39 20 63 6f 78 20 45 78 70 20 24 0a 2f 2f 0a 2f 2f 20 44 61 74 61 62 0.20:16:39.cox.Exp.$.//.//.Datab
1f500 61 73 65 20 69 6e 64 65 70 65 6e 64 65 6e 74 20 71 75 65 72 79 20 69 6e 74 65 72 66 61 63 65 20 ase.independent.query.interface.
1f520 64 65 66 69 6e 69 74 69 6f 6e 20 66 6f 72 20 50 48 50 27 73 20 49 6e 66 6f 72 6d 69 78 0a 2f 2f definition.for.PHP's.Informix.//
1f540 20 65 78 74 65 6e 73 69 6f 6e 2e 0a 2f 2f 0a 0a 2f 2f 20 4c 65 67 65 6e 64 3a 0a 2f 2f 20 46 6f .extension..//..//.Legend:.//.Fo
1f560 72 20 6d 6f 72 65 20 69 6e 66 6f 20 6f 6e 20 49 6e 66 6f 72 6d 69 78 20 65 72 72 6f 72 73 20 73 r.more.info.on.Informix.errors.s
1f580 65 65 3a 0a 2f 2f 20 68 74 74 70 3a 2f 2f 77 77 77 2e 69 6e 66 6f 72 6d 69 78 2e 63 6f 6d 2f 61 ee:.//.http://www.informix.com/a
1f5a0 6e 73 77 65 72 73 2f 65 6e 67 6c 69 73 68 2f 69 65 72 72 6f 72 73 2e 68 74 6d 0a 2f 2f 0a 2f 2f nswers/english/ierrors.htm.//.//
1f5c0 20 54 4f 44 4f 3a 0a 2f 2f 20 20 2d 20 73 65 74 20 6e 65 65 64 65 64 20 65 6e 76 20 49 6e 66 6f .TODO:.//..-.set.needed.env.Info
1f5e0 72 6d 69 78 20 76 61 72 73 20 6f 6e 20 63 6f 6e 6e 65 63 74 0a 2f 2f 20 20 2d 20 69 6d 70 6c 65 rmix.vars.on.connect.//..-.imple
1f600 6d 65 6e 74 20 6e 61 74 69 76 65 20 70 72 65 70 61 72 65 2f 65 78 65 63 75 74 65 0a 0a 72 65 71 ment.native.prepare/execute..req
1f620 75 69 72 65 5f 6f 6e 63 65 20 27 44 42 2f 63 6f 6d 6d 6f 6e 2e 70 68 70 27 3b 0a 0a 63 6c 61 73 uire_once.'DB/common.php';..clas
1f640 73 20 44 42 5f 69 66 78 20 65 78 74 65 6e 64 73 20 44 42 5f 63 6f 6d 6d 6f 6e 0a 7b 0a 20 20 20 s.DB_ifx.extends.DB_common.{....
1f660 20 2f 2f 20 7b 7b 7b 20 70 72 6f 70 65 72 74 69 65 73 0a 0a 20 20 20 20 76 61 72 20 24 63 6f 6e .//.{{{.properties......var.$con
1f680 6e 65 63 74 69 6f 6e 3b 0a 20 20 20 20 76 61 72 20 24 61 66 66 65 63 74 65 64 20 3d 20 30 3b 0a nection;.....var.$affected.=.0;.
1f6a0 20 20 20 20 76 61 72 20 24 64 73 6e 20 3d 20 61 72 72 61 79 28 29 3b 0a 20 20 20 20 76 61 72 20 ....var.$dsn.=.array();.....var.
1f6c0 24 66 65 74 63 68 6d 6f 64 65 20 3d 20 44 42 5f 46 45 54 43 48 4d 4f 44 45 5f 4f 52 44 45 52 45 $fetchmode.=.DB_FETCHMODE_ORDERE
1f6e0 44 3b 20 2f 2a 20 44 65 66 61 75 6c 74 20 66 65 74 63 68 20 6d 6f 64 65 20 2a 2f 0a 0a 20 20 20 D;./*.Default.fetch.mode.*/.....
1f700 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 63 6f 6e 73 74 72 75 63 74 6f 72 0a 0a .//.}}}.....//.{{{.constructor..
1f720 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 44 42 5f 69 66 78 28 29 0a 20 20 20 20 7b 0a 20 20 20 20 ....function.DB_ifx().....{.....
1f740 20 20 20 20 24 74 68 69 73 2d 3e 70 68 70 74 79 70 65 20 3d 20 27 69 66 78 27 3b 0a 20 20 20 20 ....$this->phptype.=.'ifx';.....
1f760 20 20 20 20 24 74 68 69 73 2d 3e 64 62 73 79 6e 74 61 78 20 3d 20 27 69 66 78 27 3b 0a 20 20 20 ....$this->dbsyntax.=.'ifx';....
1f780 20 20 20 20 20 24 74 68 69 73 2d 3e 66 65 61 74 75 72 65 73 20 3d 20 61 72 72 61 79 28 0a 20 20 .....$this->features.=.array(...
1f7a0 20 20 20 20 20 20 20 20 20 20 27 70 72 65 70 61 72 65 27 20 3d 3e 20 66 61 6c 73 65 2c 0a 20 20 ..........'prepare'.=>.false,...
1f7c0 20 20 20 20 20 20 20 20 20 20 27 70 63 6f 6e 6e 65 63 74 27 20 3d 3e 20 74 72 75 65 2c 0a 20 20 ..........'pconnect'.=>.true,...
1f7e0 20 20 20 20 20 20 20 20 20 20 27 74 72 61 6e 73 61 63 74 69 6f 6e 73 27 20 3d 3e 20 66 61 6c 73 ..........'transactions'.=>.fals
1f800 65 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 27 6c 69 6d 69 74 27 20 3d 3e 20 27 65 6d 75 6c 61 e,.............'limit'.=>.'emula
1f820 74 65 27 0a 20 20 20 20 20 20 20 20 29 3b 0a 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 65 72 te'.........);.........$this->er
1f840 72 6f 72 63 6f 64 65 5f 6d 61 70 20 3d 20 61 72 72 61 79 28 0a 20 20 20 20 20 20 20 20 20 20 20 rorcode_map.=.array(............
1f860 20 27 2d 32 30 31 27 20 20 20 20 3d 3e 20 44 42 5f 45 52 52 4f 52 5f 53 59 4e 54 41 58 2c 0a 20 .'-201'....=>.DB_ERROR_SYNTAX,..
1f880 20 20 20 20 20 20 20 20 20 20 20 27 2d 32 30 36 27 20 20 20 20 3d 3e 20 44 42 5f 45 52 52 4f 52 ...........'-206'....=>.DB_ERROR
1f8a0 5f 4e 4f 53 55 43 48 54 41 42 4c 45 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 27 2d 32 31 37 27 _NOSUCHTABLE,.............'-217'
1f8c0 20 20 20 20 3d 3e 20 44 42 5f 45 52 52 4f 52 5f 4e 4f 53 55 43 48 46 49 45 4c 44 2c 0a 20 20 20 ....=>.DB_ERROR_NOSUCHFIELD,....
1f8e0 20 20 20 20 20 20 20 20 20 27 2d 33 32 39 27 20 20 20 20 3d 3e 20 44 42 5f 45 52 52 4f 52 5f 4e .........'-329'....=>.DB_ERROR_N
1f900 4f 44 42 53 45 4c 45 43 54 45 44 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 27 2d 31 32 30 34 27 ODBSELECTED,.............'-1204'
1f920 20 20 20 3d 3e 20 44 42 5f 45 52 52 4f 52 5f 49 4e 56 41 4c 49 44 5f 44 41 54 45 2c 0a 20 20 20 ...=>.DB_ERROR_INVALID_DATE,....
1f940 20 20 20 20 20 20 20 20 20 27 2d 31 32 30 35 27 20 20 20 3d 3e 20 44 42 5f 45 52 52 4f 52 5f 49 .........'-1205'...=>.DB_ERROR_I
1f960 4e 56 41 4c 49 44 5f 44 41 54 45 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 27 2d 31 32 30 36 27 NVALID_DATE,.............'-1206'
1f980 20 20 20 3d 3e 20 44 42 5f 45 52 52 4f 52 5f 49 4e 56 41 4c 49 44 5f 44 41 54 45 2c 0a 20 20 20 ...=>.DB_ERROR_INVALID_DATE,....
1f9a0 20 20 20 20 20 20 20 20 20 27 2d 31 32 30 39 27 20 20 20 3d 3e 20 44 42 5f 45 52 52 4f 52 5f 49 .........'-1209'...=>.DB_ERROR_I
1f9c0 4e 56 41 4c 49 44 5f 44 41 54 45 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 27 2d 31 32 31 30 27 NVALID_DATE,.............'-1210'
1f9e0 20 20 20 3d 3e 20 44 42 5f 45 52 52 4f 52 5f 49 4e 56 41 4c 49 44 5f 44 41 54 45 2c 0a 20 20 20 ...=>.DB_ERROR_INVALID_DATE,....
1fa00 20 20 20 20 20 20 20 20 20 27 2d 31 32 31 32 27 20 20 20 3d 3e 20 44 42 5f 45 52 52 4f 52 5f 49 .........'-1212'...=>.DB_ERROR_I
1fa20 4e 56 41 4c 49 44 5f 44 41 54 45 0a 20 20 20 20 20 20 20 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 NVALID_DATE........);.....}.....
1fa40 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 63 6f 6e 6e 65 63 74 28 29 0a 20 20 20 .//.}}}.....//.{{{.connect()....
1fa60 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 43 6f 6e 6e 65 63 74 20 74 6f 20 61 20 64 61 74 61 62 61 73 ./**......*.Connect.to.a.databas
1fa80 65 20 61 6e 64 20 6c 6f 67 20 69 6e 20 61 73 20 74 68 65 20 73 70 65 63 69 66 69 65 64 20 75 73 e.and.log.in.as.the.specified.us
1faa0 65 72 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 24 64 73 6e 20 74 68 er.......*......*.@param.$dsn.th
1fac0 65 20 64 61 74 61 20 73 6f 75 72 63 65 20 6e 61 6d 65 20 28 73 65 65 20 44 42 3a 3a 70 61 72 73 e.data.source.name.(see.DB::pars
1fae0 65 44 53 4e 20 66 6f 72 20 73 79 6e 74 61 78 29 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 24 eDSN.for.syntax)......*.@param.$
1fb00 70 65 72 73 69 73 74 65 6e 74 20 28 6f 70 74 69 6f 6e 61 6c 29 20 77 68 65 74 68 65 72 20 74 68 persistent.(optional).whether.th
1fb20 65 20 63 6f 6e 6e 65 63 74 69 6f 6e 20 73 68 6f 75 6c 64 0a 20 20 20 20 20 2a 20 20 20 20 20 20 e.connection.should......*......
1fb40 20 20 62 65 20 70 65 72 73 69 73 74 65 6e 74 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 72 ..be.persistent......*......*.@r
1fb60 65 74 75 72 6e 20 69 6e 74 20 44 42 5f 4f 4b 20 6f 6e 20 73 75 63 63 65 73 73 2c 20 61 20 44 42 eturn.int.DB_OK.on.success,.a.DB
1fb80 20 65 72 72 6f 72 20 63 6f 64 65 20 6f 6e 20 66 61 69 6c 75 72 65 0a 20 20 20 20 20 2a 2f 0a 20 .error.code.on.failure......*/..
1fba0 20 20 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6e 6e 65 63 74 28 26 24 64 73 6e 69 6e 66 6f 2c 20 24 ...function.connect(&$dsninfo,.$
1fbc0 70 65 72 73 69 73 74 65 6e 74 20 3d 20 66 61 6c 73 65 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 persistent.=.false).....{.......
1fbe0 20 20 69 66 20 28 21 44 42 3a 3a 61 73 73 65 72 74 45 78 74 65 6e 73 69 6f 6e 28 27 69 6e 66 6f ..if.(!DB::assertExtension('info
1fc00 72 6d 69 78 27 29 20 26 26 20 21 44 42 3a 3a 61 73 73 65 72 74 45 78 74 65 6e 73 69 6f 6e 28 27 rmix').&&.!DB::assertExtension('
1fc20 49 6e 66 6f 72 6d 69 78 27 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e Informix')).{.............return
1fc40 20 24 74 68 69 73 2d 3e 72 61 69 73 65 45 72 72 6f 72 28 44 42 5f 45 52 52 4f 52 5f 45 58 54 45 .$this->raiseError(DB_ERROR_EXTE
1fc60 4e 53 49 4f 4e 5f 4e 4f 54 5f 46 4f 55 4e 44 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 NSION_NOT_FOUND);.........}.....
1fc80 20 20 20 20 24 74 68 69 73 2d 3e 64 73 6e 20 3d 20 24 64 73 6e 69 6e 66 6f 3b 0a 20 20 20 20 20 ....$this->dsn.=.$dsninfo;......
1fca0 20 20 20 24 64 62 68 6f 73 74 20 3d 20 24 64 73 6e 69 6e 66 6f 5b 27 68 6f 73 74 73 70 65 63 27 ...$dbhost.=.$dsninfo['hostspec'
1fcc0 5d 20 3f 20 27 40 27 20 2e 20 24 64 73 6e 69 6e 66 6f 5b 27 68 6f 73 74 73 70 65 63 27 5d 20 3a ].?.'@'...$dsninfo['hostspec'].:
1fce0 20 27 27 3b 0a 20 20 20 20 20 20 20 20 24 64 62 6e 61 6d 65 20 3d 20 24 64 73 6e 69 6e 66 6f 5b .'';.........$dbname.=.$dsninfo[
1fd00 27 64 61 74 61 62 61 73 65 27 5d 20 3f 20 24 64 73 6e 69 6e 66 6f 5b 27 64 61 74 61 62 61 73 65 'database'].?.$dsninfo['database
1fd20 27 5d 20 2e 20 24 64 62 68 6f 73 74 20 3a 20 27 27 3b 0a 20 20 20 20 20 20 20 20 24 75 73 65 72 ']...$dbhost.:.'';.........$user
1fd40 20 3d 20 24 64 73 6e 69 6e 66 6f 5b 27 75 73 65 72 6e 61 6d 65 27 5d 20 3f 20 24 64 73 6e 69 6e .=.$dsninfo['username'].?.$dsnin
1fd60 66 6f 5b 27 75 73 65 72 6e 61 6d 65 27 5d 20 3a 20 27 27 3b 0a 20 20 20 20 20 20 20 20 24 70 77 fo['username'].:.'';.........$pw
1fd80 20 3d 20 24 64 73 6e 69 6e 66 6f 5b 27 70 61 73 73 77 6f 72 64 27 5d 20 3f 20 24 64 73 6e 69 6e .=.$dsninfo['password'].?.$dsnin
1fda0 66 6f 5b 27 70 61 73 73 77 6f 72 64 27 5d 20 3a 20 27 27 3b 0a 0a 20 20 20 20 20 20 20 20 24 63 fo['password'].:.'';..........$c
1fdc0 6f 6e 6e 65 63 74 5f 66 75 6e 63 74 69 6f 6e 20 3d 20 24 70 65 72 73 69 73 74 65 6e 74 20 3f 20 onnect_function.=.$persistent.?.
1fde0 27 69 66 78 5f 70 63 6f 6e 6e 65 63 74 27 20 3a 20 27 69 66 78 5f 63 6f 6e 6e 65 63 74 27 3b 0a 'ifx_pconnect'.:.'ifx_connect';.
1fe00 0a 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 63 6f 6e 6e 65 63 74 69 6f 6e 20 3d 20 40 24 63 .........$this->connection.=.@$c
1fe20 6f 6e 6e 65 63 74 5f 66 75 6e 63 74 69 6f 6e 28 24 64 62 6e 61 6d 65 2c 20 24 75 73 65 72 2c 20 onnect_function($dbname,.$user,.
1fe40 24 70 77 29 3b 0a 20 20 20 20 20 20 20 20 69 66 20 28 21 69 73 5f 72 65 73 6f 75 72 63 65 28 24 $pw);.........if.(!is_resource($
1fe60 74 68 69 73 2d 3e 63 6f 6e 6e 65 63 74 69 6f 6e 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 this->connection)).{............
1fe80 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 69 66 78 72 61 69 73 65 45 72 72 6f 72 28 44 42 5f .return.$this->ifxraiseError(DB_
1fea0 45 52 52 4f 52 5f 43 4f 4e 4e 45 43 54 5f 46 41 49 4c 45 44 29 3b 0a 20 20 20 20 20 20 20 20 7d ERROR_CONNECT_FAILED);.........}
1fec0 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 44 42 5f 4f 4b 3b 0a 20 20 20 20 7d 0a 0a 20 20 .........return.DB_OK;.....}....
1fee0 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 64 69 73 63 6f 6e 6e 65 63 74 28 29 ..//.}}}.....//.{{{.disconnect()
1ff00 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 4c 6f 67 20 6f 75 74 20 61 6e 64 20 64 69 73 63 ...../**......*.Log.out.and.disc
1ff20 6f 6e 6e 65 63 74 20 66 72 6f 6d 20 74 68 65 20 64 61 74 61 62 61 73 65 2e 0a 20 20 20 20 20 2a onnect.from.the.database.......*
1ff40 0a 20 20 20 20 20 2a 20 40 72 65 74 75 72 6e 20 62 6f 6f 6c 20 54 52 55 45 20 6f 6e 20 73 75 63 ......*.@return.bool.TRUE.on.suc
1ff60 63 65 73 73 2c 20 46 41 4c 53 45 20 69 66 20 6e 6f 74 20 63 6f 6e 6e 65 63 74 65 64 2e 0a 20 20 cess,.FALSE.if.not.connected....
1ff80 20 20 20 2a 2f 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 64 69 73 63 6f 6e 6e 65 63 74 28 29 0a ...*/.....function.disconnect().
1ffa0 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 24 72 65 74 20 3d 20 40 69 66 78 5f 63 6c 6f 73 65 28 ....{.........$ret.=.@ifx_close(
1ffc0 24 74 68 69 73 2d 3e 63 6f 6e 6e 65 63 74 69 6f 6e 29 3b 0a 20 20 20 20 20 20 20 20 24 74 68 69 $this->connection);.........$thi
1ffe0 73 2d 3e 63 6f 6e 6e 65 63 74 69 6f 6e 20 3d 20 6e 75 6c 6c 3b 0a 20 20 20 20 20 20 20 20 72 65 s->connection.=.null;.........re
20000 74 75 72 6e 20 24 72 65 74 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 turn.$ret;.....}......//.}}}....
20020 20 2f 2f 20 7b 7b 7b 20 73 69 6d 70 6c 65 51 75 65 72 79 28 29 0a 20 20 20 20 2f 2a 2a 0a 20 20 .//.{{{.simpleQuery()...../**...
20040 20 20 20 2a 20 53 65 6e 64 20 61 20 71 75 65 72 79 20 74 6f 20 49 6e 66 6f 72 6d 69 78 20 61 6e ...*.Send.a.query.to.Informix.an
20060 64 20 72 65 74 75 72 6e 20 74 68 65 20 72 65 73 75 6c 74 73 20 61 73 20 61 0a 20 20 20 20 20 2a d.return.the.results.as.a......*
20080 20 49 6e 66 6f 72 6d 69 78 20 72 65 73 6f 75 72 63 65 20 69 64 65 6e 74 69 66 69 65 72 2e 0a 20 .Informix.resource.identifier...
200a0 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 24 71 75 65 72 79 20 74 68 65 20 53 ....*......*.@param.$query.the.S
200c0 51 4c 20 71 75 65 72 79 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 72 65 74 75 72 6e 20 69 QL.query......*......*.@return.i
200e0 6e 74 20 72 65 74 75 72 6e 73 20 61 20 76 61 6c 69 64 20 49 6e 66 6f 72 6d 69 78 20 72 65 73 75 nt.returns.a.valid.Informix.resu
20100 6c 74 20 66 6f 72 20 73 75 63 63 65 73 73 66 75 6c 20 53 45 4c 45 43 54 0a 20 20 20 20 20 2a 20 lt.for.successful.SELECT......*.
20120 71 75 65 72 69 65 73 2c 20 44 42 5f 4f 4b 20 66 6f 72 20 6f 74 68 65 72 20 73 75 63 63 65 73 73 queries,.DB_OK.for.other.success
20140 66 75 6c 20 71 75 65 72 69 65 73 2e 20 20 41 20 44 42 20 65 72 72 6f 72 20 63 6f 64 65 0a 20 20 ful.queries...A.DB.error.code...
20160 20 20 20 2a 20 69 73 20 72 65 74 75 72 6e 65 64 20 6f 6e 20 66 61 69 6c 75 72 65 2e 0a 20 20 20 ...*.is.returned.on.failure.....
20180 20 20 2a 2f 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 73 69 6d 70 6c 65 51 75 65 72 79 28 24 71 ..*/.....function.simpleQuery($q
201a0 75 65 72 79 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 6c 61 73 74 5f uery).....{.........$this->last_
201c0 71 75 65 72 79 20 3d 20 24 71 75 65 72 79 3b 0a 20 20 20 20 20 20 20 20 69 66 20 28 70 72 65 67 query.=.$query;.........if.(preg
201e0 5f 6d 61 74 63 68 28 27 2f 28 53 45 4c 45 43 54 29 2f 69 27 2c 20 24 71 75 65 72 79 29 29 20 7b _match('/(SELECT)/i',.$query)).{
20200 20 20 20 20 2f 2f 54 45 53 54 4d 45 3a 20 55 73 65 20 21 44 42 3a 3a 69 73 4d 61 6e 69 70 28 29 ....//TESTME:.Use.!DB::isManip()
20220 3f 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 74 68 65 20 73 63 72 6f 6c 6c 20 69 73 20 6e ?.............//.the.scroll.is.n
20240 65 65 64 65 64 20 66 6f 72 20 66 65 74 63 68 69 6e 67 20 61 62 73 6f 6c 75 74 65 20 72 6f 77 20 eeded.for.fetching.absolute.row.
20260 6e 75 6d 62 65 72 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 69 6e 20 61 20 73 65 6c 65 numbers.............//.in.a.sele
20280 63 74 20 71 75 65 72 79 20 72 65 73 75 6c 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 72 65 73 ct.query.result.............$res
202a0 75 6c 74 20 3d 20 40 69 66 78 5f 71 75 65 72 79 28 24 71 75 65 72 79 2c 20 24 74 68 69 73 2d 3e ult.=.@ifx_query($query,.$this->
202c0 63 6f 6e 6e 65 63 74 69 6f 6e 2c 20 49 46 58 5f 53 43 52 4f 4c 4c 29 3b 0a 20 20 20 20 20 20 20 connection,.IFX_SCROLL);........
202e0 20 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 72 65 73 75 6c 74 20 3d 20 .}.else.{.............$result.=.
20300 40 69 66 78 5f 71 75 65 72 79 28 24 71 75 65 72 79 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 6e 65 63 @ifx_query($query,.$this->connec
20320 74 69 6f 6e 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 69 66 20 28 21 24 72 tion);.........}.........if.(!$r
20340 65 73 75 6c 74 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 esult).{.............return.$thi
20360 73 2d 3e 69 66 78 72 61 69 73 65 45 72 72 6f 72 28 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 s->ifxraiseError();.........}...
20380 20 20 20 20 20 20 24 74 68 69 73 2d 3e 61 66 66 65 63 74 65 64 20 3d 20 69 66 78 5f 61 66 66 65 ......$this->affected.=.ifx_affe
203a0 63 74 65 64 5f 72 6f 77 73 20 28 24 72 65 73 75 6c 74 29 3b 0a 20 20 20 20 20 20 20 20 2f 2f 20 cted_rows.($result);.........//.
203c0 44 65 74 65 72 6d 69 6e 65 20 77 68 69 63 68 20 71 75 65 72 69 65 73 20 74 68 61 74 20 73 68 6f Determine.which.queries.that.sho
203e0 75 6c 64 20 72 65 74 75 72 6e 20 64 61 74 61 2c 20 61 6e 64 20 77 68 69 63 68 0a 20 20 20 20 20 uld.return.data,.and.which......
20400 20 20 20 2f 2f 20 73 68 6f 75 6c 64 20 72 65 74 75 72 6e 20 61 6e 20 65 72 72 6f 72 20 63 6f 64 ...//.should.return.an.error.cod
20420 65 20 6f 6e 6c 79 2e 0a 20 20 20 20 20 20 20 20 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 e.only..........if.(preg_match('
20440 2f 28 53 45 4c 45 43 54 29 2f 69 27 2c 20 24 71 75 65 72 79 29 29 20 7b 0a 20 20 20 20 20 20 20 /(SELECT)/i',.$query)).{........
20460 20 20 20 20 20 72 65 74 75 72 6e 20 24 72 65 73 75 6c 74 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 .....return.$result;.........}..
20480 20 20 20 20 20 20 20 2f 2f 20 52 65 73 75 6c 74 20 68 61 73 20 74 6f 20 62 65 20 66 72 65 65 65 .......//.Result.has.to.be.freee
204a0 64 20 65 76 65 6e 20 77 69 74 68 20 61 20 69 6e 73 65 72 74 20 6f 72 20 75 70 64 61 74 65 0a 20 d.even.with.a.insert.or.update..
204c0 20 20 20 20 20 20 20 69 66 78 5f 66 72 65 65 5f 72 65 73 75 6c 74 28 24 72 65 73 75 6c 74 29 3b .......ifx_free_result($result);
204e0 0a 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 44 42 5f 4f 4b 3b 0a 20 20 20 20 7d 0a 0a 20 ..........return.DB_OK;.....}...
20500 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 6e 65 78 74 52 65 73 75 6c 74 28 ...//.}}}.....//.{{{.nextResult(
20520 29 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 4d 6f 76 65 20 74 68 65 20 69 6e 74 65 72 )....../**......*.Move.the.inter
20540 6e 61 6c 20 69 66 78 20 72 65 73 75 6c 74 20 70 6f 69 6e 74 65 72 20 74 6f 20 74 68 65 20 6e 65 nal.ifx.result.pointer.to.the.ne
20560 78 74 20 61 76 61 69 6c 61 62 6c 65 20 72 65 73 75 6c 74 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 xt.available.result......*......
20580 2a 20 40 70 61 72 61 6d 20 61 20 76 61 6c 69 64 20 66 62 73 71 6c 20 72 65 73 75 6c 74 20 72 65 *.@param.a.valid.fbsql.result.re
205a0 73 6f 75 72 63 65 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 61 63 63 65 73 73 20 70 75 62 source......*......*.@access.pub
205c0 6c 69 63 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 72 65 74 75 72 6e 20 74 72 75 65 20 69 lic......*......*.@return.true.i
205e0 66 20 61 20 72 65 73 75 6c 74 20 69 73 20 61 76 61 69 6c 61 62 6c 65 20 6f 74 68 65 72 77 69 73 f.a.result.is.available.otherwis
20600 65 20 72 65 74 75 72 6e 20 66 61 6c 73 65 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 66 75 6e 63 74 e.return.false......*/.....funct
20620 69 6f 6e 20 6e 65 78 74 52 65 73 75 6c 74 28 24 72 65 73 75 6c 74 29 0a 20 20 20 20 7b 0a 20 20 ion.nextResult($result).....{...
20640 20 20 20 20 20 20 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f ......return.false;.....}....../
20660 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 61 66 66 65 63 74 65 64 52 6f 77 73 28 29 0a /.}}}.....//.{{{.affectedRows().
20680 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 47 65 74 73 20 74 68 65 20 6e 75 6d 62 65 72 20 6f ..../**......*.Gets.the.number.o
206a0 66 20 72 6f 77 73 20 61 66 66 65 63 74 65 64 20 62 79 20 74 68 65 20 6c 61 73 74 20 71 75 65 72 f.rows.affected.by.the.last.quer
206c0 79 2e 0a 20 20 20 20 20 2a 20 69 66 20 74 68 65 20 6c 61 73 74 20 71 75 65 72 79 20 77 61 73 20 y.......*.if.the.last.query.was.
206e0 61 20 73 65 6c 65 63 74 2c 20 72 65 74 75 72 6e 73 20 61 6e 20 5f 65 73 74 69 6d 61 74 65 5f 20 a.select,.returns.an._estimate_.
20700 76 61 6c 75 65 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 72 65 74 75 72 6e 20 6e 75 6d value.......*......*.@return.num
20720 62 65 72 20 6f 66 20 72 6f 77 73 20 61 66 66 65 63 74 65 64 20 62 79 20 74 68 65 20 6c 61 73 74 ber.of.rows.affected.by.the.last
20740 20 71 75 65 72 79 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 61 66 66 65 .query......*/.....function.affe
20760 63 74 65 64 52 6f 77 73 28 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 ctedRows().....{.........return.
20780 24 74 68 69 73 2d 3e 61 66 66 65 63 74 65 64 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d $this->affected;.....}......//.}
207a0 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 66 65 74 63 68 49 6e 74 6f 28 29 0a 20 20 20 20 2f 2a }}.....//.{{{.fetchInto()...../*
207c0 2a 0a 20 20 20 20 20 2a 20 46 65 74 63 68 20 61 20 72 6f 77 20 61 6e 64 20 72 65 74 75 72 6e 20 *......*.Fetch.a.row.and.return.
207e0 61 73 20 61 72 72 61 79 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 20 as.array.......*......*.@param..
20800 20 24 72 65 73 75 6c 74 20 20 20 20 20 49 6e 66 6f 72 6d 69 78 20 72 65 73 75 6c 74 20 69 64 65 .$result.....Informix.result.ide
20820 6e 74 69 66 69 65 72 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 20 20 24 72 6f 77 20 20 20 20 ntifier......*.@param...$row....
20840 20 20 20 20 20 28 72 65 66 65 72 65 6e 63 65 29 20 61 72 72 61 79 20 77 68 65 72 65 20 64 61 74 .....(reference).array.where.dat
20860 61 20 66 72 6f 6d 20 74 68 65 20 72 6f 77 20 69 73 20 73 74 6f 72 65 64 0a 20 20 20 20 20 2a 20 a.from.the.row.is.stored......*.
20880 40 70 61 72 61 6d 20 20 20 24 66 65 74 63 68 6d 6f 64 65 20 20 20 20 20 20 68 6f 77 20 74 68 65 @param...$fetchmode......how.the
208a0 20 72 65 73 75 6c 74 69 6e 67 20 61 72 72 61 79 20 73 68 6f 75 6c 64 20 62 65 20 69 6e 64 65 78 .resulting.array.should.be.index
208c0 65 64 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 20 20 24 72 6f 77 6e 75 6d 20 20 20 20 20 74 ed......*.@param...$rownum.....t
208e0 68 65 20 72 6f 77 20 6e 75 6d 62 65 72 20 74 6f 20 66 65 74 63 68 0a 20 20 20 20 20 2a 0a 20 20 he.row.number.to.fetch......*...
20900 20 20 20 2a 20 40 72 65 74 75 72 6e 20 69 6e 74 20 61 6e 20 61 72 72 61 79 20 6f 6e 20 73 75 63 ...*.@return.int.an.array.on.suc
20920 63 65 73 73 2c 20 61 20 44 42 20 65 72 72 6f 72 20 63 6f 64 65 20 6f 6e 20 66 61 69 6c 75 72 65 cess,.a.DB.error.code.on.failure
20940 2c 20 4e 55 4c 4c 0a 20 20 20 20 20 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 74 68 65 ,.NULL......*.............if.the
20960 72 65 20 69 73 20 6e 6f 20 6d 6f 72 65 20 64 61 74 61 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 66 re.is.no.more.data......*/.....f
20980 75 6e 63 74 69 6f 6e 20 66 65 74 63 68 49 6e 74 6f 28 24 72 65 73 75 6c 74 2c 20 26 24 72 6f 77 unction.fetchInto($result,.&$row
209a0 2c 20 24 66 65 74 63 68 6d 6f 64 65 2c 20 24 72 6f 77 6e 75 6d 3d 6e 75 6c 6c 29 0a 20 20 20 20 ,.$fetchmode,.$rownum=null).....
209c0 7b 0a 20 20 20 20 20 20 20 20 69 66 20 28 28 24 72 6f 77 6e 75 6d 20 21 3d 3d 20 6e 75 6c 6c 29 {.........if.(($rownum.!==.null)
209e0 20 26 26 20 28 24 72 6f 77 6e 75 6d 20 3c 20 30 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 .&&.($rownum.<.0)).{............
20a00 20 72 65 74 75 72 6e 20 6e 75 6c 6c 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 .return.null;.........}.........
20a20 2f 2f 20 69 66 20 24 72 6f 77 6e 75 6d 20 69 73 20 6e 75 6c 6c 2c 20 66 65 74 63 68 20 72 6f 77 //.if.$rownum.is.null,.fetch.row
20a40 20 77 69 6c 6c 20 72 65 74 75 72 6e 20 74 68 65 20 6e 65 78 74 20 72 6f 77 0a 20 20 20 20 20 20 .will.return.the.next.row.......
20a60 20 20 69 66 20 28 21 24 72 6f 77 20 3d 20 40 69 66 78 5f 66 65 74 63 68 5f 72 6f 77 28 24 72 65 ..if.(!$row.=.@ifx_fetch_row($re
20a80 73 75 6c 74 2c 20 24 72 6f 77 6e 75 6d 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 sult,.$rownum)).{.............re
20aa0 74 75 72 6e 20 6e 75 6c 6c 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 69 66 20 turn.null;.........}.........if.
20ac0 28 24 66 65 74 63 68 6d 6f 64 65 20 21 3d 3d 20 44 42 5f 46 45 54 43 48 4d 4f 44 45 5f 41 53 53 ($fetchmode.!==.DB_FETCHMODE_ASS
20ae0 4f 43 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 69 3d 30 3b 0a 20 20 20 20 20 20 20 20 OC).{.............$i=0;.........
20b00 20 20 20 20 24 6f 72 64 65 72 20 3d 20 61 72 72 61 79 28 29 3b 0a 20 20 20 20 20 20 20 20 20 20 ....$order.=.array();...........
20b20 20 20 66 6f 72 65 61 63 68 20 28 24 72 6f 77 20 61 73 20 24 6b 65 79 20 3d 3e 20 24 76 61 6c 29 ..foreach.($row.as.$key.=>.$val)
20b40 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 6f 72 64 65 72 5b 24 69 2b 2b 5d 20 .{.................$order[$i++].
20b60 3d 20 24 76 61 6c 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 20 =.$val;.............}...........
20b80 20 20 24 72 6f 77 20 3d 20 24 6f 72 64 65 72 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 ..$row.=.$order;.........}......
20ba0 20 20 20 72 65 74 75 72 6e 20 44 42 5f 4f 4b 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d ...return.DB_OK;.....}......//.}
20bc0 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 6e 75 6d 52 6f 77 73 28 29 0a 0a 20 20 20 20 66 75 6e }}.....//.{{{.numRows()......fun
20be0 63 74 69 6f 6e 20 6e 75 6d 52 6f 77 73 28 24 72 65 73 75 6c 74 29 0a 20 20 20 20 7b 0a 20 20 20 ction.numRows($result).....{....
20c00 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 61 69 73 65 45 72 72 6f 72 28 44 42 .....return.$this->raiseError(DB
20c20 5f 45 52 52 4f 52 5f 4e 4f 54 5f 43 41 50 41 42 4c 45 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 _ERROR_NOT_CAPABLE);.....}......
20c40 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 6e 75 6d 43 6f 6c 73 28 29 0a 20 20 20 20 //.}}}.....//.{{{.numCols().....
20c60 2f 2a 2a 0a 20 20 20 20 20 2a 20 47 65 74 20 74 68 65 20 6e 75 6d 62 65 72 20 6f 66 20 63 6f 6c /**......*.Get.the.number.of.col
20c80 75 6d 6e 73 20 69 6e 20 61 20 72 65 73 75 6c 74 20 73 65 74 2e 0a 20 20 20 20 20 2a 0a 20 20 20 umns.in.a.result.set.......*....
20ca0 20 20 2a 20 40 70 61 72 61 6d 20 24 72 65 73 75 6c 74 20 49 6e 66 6f 72 6d 69 78 20 72 65 73 75 ..*.@param.$result.Informix.resu
20cc0 6c 74 20 69 64 65 6e 74 69 66 69 65 72 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 72 65 74 lt.identifier......*......*.@ret
20ce0 75 72 6e 20 69 6e 74 20 74 68 65 20 6e 75 6d 62 65 72 20 6f 66 20 63 6f 6c 75 6d 6e 73 20 70 65 urn.int.the.number.of.columns.pe
20d00 72 20 72 6f 77 20 69 6e 20 24 72 65 73 75 6c 74 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 66 75 6e r.row.in.$result......*/.....fun
20d20 63 74 69 6f 6e 20 6e 75 6d 43 6f 6c 73 28 24 72 65 73 75 6c 74 29 0a 20 20 20 20 7b 0a 20 20 20 ction.numCols($result).....{....
20d40 20 20 20 20 20 69 66 20 28 21 24 63 6f 6c 73 20 3d 20 40 69 66 78 5f 6e 75 6d 5f 66 69 65 6c 64 .....if.(!$cols.=.@ifx_num_field
20d60 73 28 24 72 65 73 75 6c 74 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e s($result)).{.............return
20d80 20 24 74 68 69 73 2d 3e 69 66 78 72 61 69 73 65 45 72 72 6f 72 28 29 3b 0a 20 20 20 20 20 20 20 .$this->ifxraiseError();........
20da0 20 7d 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 63 6f 6c 73 3b 0a 20 20 20 20 7d 0a 0a .}.........return.$cols;.....}..
20dc0 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 66 72 65 65 52 65 73 75 6c 74 ....//.}}}.....//.{{{.freeResult
20de0 28 29 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 46 72 65 65 20 74 68 65 20 69 6e 74 65 72 ()...../**......*.Free.the.inter
20e00 6e 61 6c 20 72 65 73 6f 75 72 63 65 73 20 61 73 73 6f 63 69 61 74 65 64 20 77 69 74 68 20 24 72 nal.resources.associated.with.$r
20e20 65 73 75 6c 74 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 24 72 65 73 esult.......*......*.@param.$res
20e40 75 6c 74 20 49 6e 66 6f 72 6d 69 78 20 72 65 73 75 6c 74 20 69 64 65 6e 74 69 66 69 65 72 0a 20 ult.Informix.result.identifier..
20e60 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 72 65 74 75 72 6e 20 62 6f 6f 6c 20 54 52 55 45 20 6f ....*......*.@return.bool.TRUE.o
20e80 6e 20 73 75 63 63 65 73 73 2c 20 44 42 5f 65 72 72 6f 72 20 6f 6e 20 65 72 72 6f 72 0a 20 20 20 n.success,.DB_error.on.error....
20ea0 20 20 2a 2f 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 66 72 65 65 52 65 73 75 6c 74 28 24 72 65 ..*/.....function.freeResult($re
20ec0 73 75 6c 74 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 69 66 20 28 69 73 5f 72 65 73 6f 75 sult).....{.........if.(is_resou
20ee0 72 63 65 28 24 72 65 73 75 6c 74 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 rce($result)).{.............if.(
20f00 21 40 69 66 78 5f 66 72 65 65 5f 72 65 73 75 6c 74 28 24 72 65 73 75 6c 74 29 29 20 7b 0a 20 20 !@ifx_free_result($result)).{...
20f20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 69 66 78 72 ..............return.$this->ifxr
20f40 61 69 73 65 45 72 72 6f 72 28 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 aiseError();.............}......
20f60 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 .......return.true;.........}...
20f80 20 20 20 20 20 20 69 66 20 28 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 70 72 65 70 61 72 65 5f ......if.(!isset($this->prepare_
20fa0 74 6f 6b 65 6e 73 5b 28 69 6e 74 29 24 72 65 73 75 6c 74 5d 29 29 20 7b 0a 20 20 20 20 20 20 20 tokens[(int)$result])).{........
20fc0 20 20 20 20 20 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 .....return.false;.........}....
20fe0 20 20 20 20 20 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 70 72 65 70 61 72 65 5f 74 6f 6b 65 6e 73 .....unset($this->prepare_tokens
21000 5b 28 69 6e 74 29 24 72 65 73 75 6c 74 5d 29 3b 0a 20 20 20 20 20 20 20 20 75 6e 73 65 74 28 24 [(int)$result]);.........unset($
21020 74 68 69 73 2d 3e 70 72 65 70 61 72 65 5f 74 79 70 65 73 5b 28 69 6e 74 29 24 72 65 73 75 6c 74 this->prepare_types[(int)$result
21040 5d 29 3b 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 20 20 20 20 7d 0a 0a ]);.........return.true;.....}..
21060 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 69 66 78 72 61 69 73 65 45 72 ....//.}}}.....//.{{{.ifxraiseEr
21080 72 6f 72 28 29 0a 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 69 66 78 72 61 69 73 65 45 72 72 6f ror()......function.ifxraiseErro
210a0 72 28 24 65 72 72 6e 6f 20 3d 20 6e 75 6c 6c 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 69 r($errno.=.null).....{.........i
210c0 66 20 28 24 65 72 72 6e 6f 20 3d 3d 3d 20 6e 75 6c 6c 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 f.($errno.===.null).{...........
210e0 20 20 24 65 72 72 6e 6f 20 3d 20 24 74 68 69 73 2d 3e 65 72 72 6f 72 43 6f 64 65 28 69 66 78 5f ..$errno.=.$this->errorCode(ifx_
21100 65 72 72 6f 72 28 29 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 72 65 74 error());.........}..........ret
21120 75 72 6e 20 24 74 68 69 73 2d 3e 72 61 69 73 65 45 72 72 6f 72 28 24 65 72 72 6e 6f 2c 20 6e 75 urn.$this->raiseError($errno,.nu
21140 6c 6c 2c 20 6e 75 6c 6c 2c 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ll,.null,.null,.................
21160 20 20 20 20 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 65 72 72 6f 72 4e 61 74 69 76 65 28 29 ............$this->errorNative()
21180 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 );.....}......//.}}}.....//.{{{.
211a0 65 72 72 6f 72 43 6f 64 65 28 29 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 4d 61 70 20 6e errorCode()...../**......*.Map.n
211c0 61 74 69 76 65 20 65 72 72 6f 72 20 63 6f 64 65 73 20 74 6f 20 44 42 27 73 20 70 6f 72 74 61 62 ative.error.codes.to.DB's.portab
211e0 6c 65 20 6f 6e 65 73 2e 20 20 52 65 71 75 69 72 65 73 20 74 68 61 74 0a 20 20 20 20 20 2a 20 74 le.ones...Requires.that......*.t
21200 68 65 20 44 42 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 27 73 20 63 6f 6e 73 74 72 75 63 74 he.DB.implementation's.construct
21220 6f 72 20 66 69 6c 6c 73 20 69 6e 20 74 68 65 20 24 65 72 72 6f 72 63 6f 64 65 5f 6d 61 70 0a 20 or.fills.in.the.$errorcode_map..
21240 20 20 20 20 2a 20 70 72 6f 70 65 72 74 79 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 72 ....*.property.......*......*.@r
21260 65 74 75 72 6e 20 69 6e 74 20 61 20 70 6f 72 74 61 62 6c 65 20 44 42 20 65 72 72 6f 72 20 63 6f eturn.int.a.portable.DB.error.co
21280 64 65 2c 20 6f 72 20 44 42 5f 45 52 52 4f 52 20 69 66 20 74 68 69 73 20 44 42 0a 20 20 20 20 20 de,.or.DB_ERROR.if.this.DB......
212a0 2a 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 20 68 61 73 20 6e 6f 20 6d 61 70 70 69 6e 67 20 *.implementation.has.no.mapping.
212c0 66 6f 72 20 74 68 65 20 67 69 76 65 6e 20 65 72 72 6f 72 20 63 6f 64 65 2e 0a 20 20 20 20 20 2a for.the.given.error.code.......*
212e0 2f 0a 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 65 72 72 6f 72 43 6f 64 65 28 24 6e 61 74 69 76 /......function.errorCode($nativ
21300 65 63 6f 64 65 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 69 66 20 28 65 72 65 67 28 27 53 ecode).....{.........if.(ereg('S
21320 51 4c 43 4f 44 45 3d 28 2e 2a 29 5d 27 2c 20 24 6e 61 74 69 76 65 63 6f 64 65 2c 20 24 6d 61 74 QLCODE=(.*)]',.$nativecode,.$mat
21340 63 68 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 63 6f 64 65 20 3d 20 24 6d 61 74 63 ch)).{.............$code.=.$matc
21360 68 5b 31 5d 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 69 73 73 65 74 28 24 74 68 69 h[1];.............if.(isset($thi
21380 73 2d 3e 65 72 72 6f 72 63 6f 64 65 5f 6d 61 70 5b 24 63 6f 64 65 5d 29 29 20 7b 0a 20 20 20 20 s->errorcode_map[$code])).{.....
213a0 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 65 72 72 6f 72 63 ............return.$this->errorc
213c0 6f 64 65 5f 6d 61 70 5b 24 63 6f 64 65 5d 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 ode_map[$code];.............}...
213e0 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 44 42 5f 45 52 52 4f 52 3b ......}.........return.DB_ERROR;
21400 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 65 72 .....}......//.}}}.....//.{{{.er
21420 72 6f 72 4e 61 74 69 76 65 28 29 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 47 65 74 20 74 rorNative()...../**......*.Get.t
21440 68 65 20 6e 61 74 69 76 65 20 65 72 72 6f 72 20 6d 65 73 73 61 67 65 20 6f 66 20 74 68 65 20 6c he.native.error.message.of.the.l
21460 61 73 74 20 65 72 72 6f 72 20 28 69 66 20 61 6e 79 29 20 74 68 61 74 0a 20 20 20 20 20 2a 20 6f ast.error.(if.any).that......*.o
21480 63 63 75 72 65 64 20 6f 6e 20 74 68 65 20 63 75 72 72 65 6e 74 20 63 6f 6e 6e 65 63 74 69 6f 6e ccured.on.the.current.connection
214a0 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 72 65 74 75 72 6e 20 69 6e 74 20 6e 61 74 69 .......*......*.@return.int.nati
214c0 76 65 20 49 6e 66 6f 72 6d 69 78 20 65 72 72 6f 72 20 63 6f 64 65 0a 20 20 20 20 20 2a 2f 0a 20 ve.Informix.error.code......*/..
214e0 20 20 20 66 75 6e 63 74 69 6f 6e 20 65 72 72 6f 72 4e 61 74 69 76 65 28 29 0a 20 20 20 20 7b 0a ...function.errorNative().....{.
21500 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 69 66 78 5f 65 72 72 6f 72 28 29 20 2e 20 27 20 27 ........return.ifx_error()...'.'
21520 20 2e 20 69 66 78 5f 65 72 72 6f 72 6d 73 67 28 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f ...ifx_errormsg();.....}......//
21540 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 67 65 74 53 70 65 63 69 61 6c 51 75 65 72 79 28 .}}}.....//.{{{.getSpecialQuery(
21560 29 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 2a 20 52 65 74 75 72 6e 73 20 74 68 65 20 71 75 65 )....../**.....*.Returns.the.que
21580 72 79 20 6e 65 65 64 65 64 20 74 6f 20 67 65 74 20 73 6f 6d 65 20 62 61 63 6b 65 6e 64 20 69 6e ry.needed.to.get.some.backend.in
215a0 66 6f 0a 20 20 20 20 2a 20 40 70 61 72 61 6d 20 73 74 72 69 6e 67 20 24 74 79 70 65 20 57 68 61 fo.....*.@param.string.$type.Wha
215c0 74 20 6b 69 6e 64 20 6f 66 20 69 6e 66 6f 20 79 6f 75 20 77 61 6e 74 20 74 6f 20 72 65 74 72 69 t.kind.of.info.you.want.to.retri
215e0 65 76 65 0a 20 20 20 20 2a 20 40 72 65 74 75 72 6e 20 73 74 72 69 6e 67 20 54 68 65 20 53 51 4c eve.....*.@return.string.The.SQL
21600 20 71 75 65 72 79 20 73 74 72 69 6e 67 0a 20 20 20 20 2a 2f 0a 20 20 20 20 66 75 6e 63 74 69 6f .query.string.....*/.....functio
21620 6e 20 67 65 74 53 70 65 63 69 61 6c 51 75 65 72 79 28 24 74 79 70 65 29 0a 20 20 20 20 7b 0a 20 n.getSpecialQuery($type).....{..
21640 20 20 20 20 20 20 20 73 77 69 74 63 68 20 28 24 74 79 70 65 29 20 7b 0a 20 20 20 20 20 20 20 20 .......switch.($type).{.........
21660 20 20 20 20 63 61 73 65 20 27 74 61 62 6c 65 73 27 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 64 ....case.'tables':.............d
21680 65 66 61 75 6c 74 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 6e efault:.................return.n
216a0 75 6c 6c 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 73 ull;.........}.........return.$s
216c0 71 6c 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 7d 0a 0a 3f 3e 0a 00 00 00 00 ql;.....}......//.}}}.}..?>.....
216e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
21700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
21720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
21740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
21760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
21780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
217a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
217c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
217e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
21800 44 42 2d 31 2e 35 2e 30 52 43 31 2f 44 42 2f 6d 73 71 6c 2e 70 68 70 00 00 00 00 00 00 00 00 00 DB-1.5.0RC1/DB/msql.php.........
21820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
21840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
21860 00 00 00 00 31 30 30 36 34 34 20 00 20 20 20 37 36 34 20 00 20 20 20 31 34 34 20 00 20 20 20 20 ....100644.....764.....144......
21880 20 20 31 33 36 32 31 20 20 37 36 37 31 34 33 36 32 34 37 20 20 20 37 34 36 37 20 00 00 00 00 00 ..13621..7671436247...7467......
218a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
218c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
218e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
21900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
21920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
21940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
21960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
21980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
219a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
219c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
219e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
21a00 3c 3f 70 68 70 0a 2f 2a 20 76 69 6d 3a 20 73 65 74 20 65 78 70 61 6e 64 74 61 62 20 74 61 62 73 <?php./*.vim:.set.expandtab.tabs
21a20 74 6f 70 3d 34 20 73 68 69 66 74 77 69 64 74 68 3d 34 20 66 6f 6c 64 6d 65 74 68 6f 64 3d 6d 61 top=4.shiftwidth=4.foldmethod=ma
21a40 72 6b 65 72 3a 20 2a 2f 0a 2f 2f 20 2b 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d rker:.*/.//.+-------------------
21a60 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
21a80 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2b 0a 2f 2f 20 7c 20 50 48 50 20 56 65 -------------------+.//.|.PHP.Ve
21aa0 72 73 69 6f 6e 20 34 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 rsion.4.........................
21ac0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c ...............................|
21ae0 0a 2f 2f 20 2b 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d .//.+---------------------------
21b00 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
21b20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2b 0a 2f 2f 20 7c 20 43 6f 70 79 72 69 67 68 74 20 28 63 29 20 -----------+.//.|.Copyright.(c).
21b40 31 39 39 37 2d 32 30 30 33 20 54 68 65 20 50 48 50 20 47 72 6f 75 70 20 20 20 20 20 20 20 20 20 1997-2003.The.PHP.Group.........
21b60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 2f 2f 20 2b 2d 2d 2d .......................|.//.+---
21b80 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
21ba0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
21bc0 2d 2d 2d 2b 0a 2f 2f 20 7c 20 54 68 69 73 20 73 6f 75 72 63 65 20 66 69 6c 65 20 69 73 20 73 75 ---+.//.|.This.source.file.is.su
21be0 62 6a 65 63 74 20 74 6f 20 76 65 72 73 69 6f 6e 20 32 2e 30 32 20 6f 66 20 74 68 65 20 50 48 50 bject.to.version.2.02.of.the.PHP
21c00 20 6c 69 63 65 6e 73 65 2c 20 20 20 20 20 20 7c 0a 2f 2f 20 7c 20 74 68 61 74 20 69 73 20 62 75 .license,......|.//.|.that.is.bu
21c20 6e 64 6c 65 64 20 77 69 74 68 20 74 68 69 73 20 70 61 63 6b 61 67 65 20 69 6e 20 74 68 65 20 66 ndled.with.this.package.in.the.f
21c40 69 6c 65 20 4c 49 43 45 4e 53 45 2c 20 61 6e 64 20 69 73 20 20 20 20 20 20 20 20 7c 0a 2f 2f 20 ile.LICENSE,.and.is........|.//.
21c60 7c 20 61 76 61 69 6c 61 62 6c 65 20 61 74 20 74 68 72 6f 75 67 68 20 74 68 65 20 77 6f 72 6c 64 |.available.at.through.the.world
21c80 2d 77 69 64 65 2d 77 65 62 20 61 74 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -wide-web.at....................
21ca0 20 20 20 20 20 20 20 7c 0a 2f 2f 20 7c 20 68 74 74 70 3a 2f 2f 77 77 77 2e 70 68 70 2e 6e 65 74 .......|.//.|.http://www.php.net
21cc0 2f 6c 69 63 65 6e 73 65 2f 32 5f 30 32 2e 74 78 74 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 /license/2_02.txt...............
21ce0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 2f 2f 20 7c 20 49 66 20 79 6f 75 ...................|.//.|.If.you
21d00 20 64 69 64 20 6e 6f 74 20 72 65 63 65 69 76 65 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 50 .did.not.receive.a.copy.of.the.P
21d20 48 50 20 6c 69 63 65 6e 73 65 20 61 6e 64 20 61 72 65 20 75 6e 61 62 6c 65 20 74 6f 20 20 20 7c HP.license.and.are.unable.to...|
21d40 0a 2f 2f 20 7c 20 6f 62 74 61 69 6e 20 69 74 20 74 68 72 6f 75 67 68 20 74 68 65 20 77 6f 72 6c .//.|.obtain.it.through.the.worl
21d60 64 2d 77 69 64 65 2d 77 65 62 2c 20 70 6c 65 61 73 65 20 73 65 6e 64 20 61 20 6e 6f 74 65 20 74 d-wide-web,.please.send.a.note.t
21d80 6f 20 20 20 20 20 20 20 20 20 20 7c 0a 2f 2f 20 7c 20 6c 69 63 65 6e 73 65 40 70 68 70 2e 6e 65 o..........|.//.|.license@php.ne
21da0 74 20 73 6f 20 77 65 20 63 61 6e 20 6d 61 69 6c 20 79 6f 75 20 61 20 63 6f 70 79 20 69 6d 6d 65 t.so.we.can.mail.you.a.copy.imme
21dc0 64 69 61 74 65 6c 79 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 2f 2f 20 2b 2d 2d 2d diately................|.//.+---
21de0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
21e00 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
21e20 2d 2d 2d 2b 0a 2f 2f 20 7c 20 41 75 74 68 6f 72 3a 20 53 74 65 72 6c 69 6e 67 20 48 75 67 68 65 ---+.//.|.Author:.Sterling.Hughe
21e40 73 20 3c 73 74 65 72 6c 69 6e 67 40 70 68 70 2e 6e 65 74 3e 20 20 20 20 20 20 20 20 20 20 20 20 s.<sterling@php.net>............
21e60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 2f 2f 20 2b 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ...............|.//.+-----------
21e80 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
21ea0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2b 0a 2f 2f 0a ---------------------------+.//.
21ec0 2f 2f 20 24 49 64 3a 20 6d 73 71 6c 2e 70 68 70 2c 76 20 31 2e 37 20 32 30 30 33 2f 30 36 2f 31 //.$Id:.msql.php,v.1.7.2003/06/1
21ee0 30 20 32 30 3a 31 36 3a 33 39 20 63 6f 78 20 45 78 70 20 24 0a 2f 2f 0a 2f 2f 20 44 61 74 61 62 0.20:16:39.cox.Exp.$.//.//.Datab
21f00 61 73 65 20 69 6e 64 65 70 65 6e 64 65 6e 74 20 71 75 65 72 79 20 69 6e 74 65 72 66 61 63 65 20 ase.independent.query.interface.
21f20 64 65 66 69 6e 69 74 69 6f 6e 20 66 6f 72 20 50 48 50 27 73 20 4d 69 6e 69 2d 53 51 4c 0a 2f 2f definition.for.PHP's.Mini-SQL.//
21f40 20 65 78 74 65 6e 73 69 6f 6e 2e 0a 2f 2f 0a 0a 72 65 71 75 69 72 65 5f 6f 6e 63 65 20 27 44 42 .extension..//..require_once.'DB
21f60 2f 63 6f 6d 6d 6f 6e 2e 70 68 70 27 3b 0a 0a 63 6c 61 73 73 20 44 42 5f 6d 73 71 6c 20 65 78 74 /common.php';..class.DB_msql.ext
21f80 65 6e 64 73 20 44 42 5f 63 6f 6d 6d 6f 6e 0a 7b 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 70 72 6f 70 ends.DB_common.{.....//.{{{.prop
21fa0 65 72 74 69 65 73 0a 0a 20 20 20 20 76 61 72 20 24 63 6f 6e 6e 65 63 74 69 6f 6e 3b 0a 20 20 20 erties......var.$connection;....
21fc0 20 76 61 72 20 24 70 68 70 74 79 70 65 2c 20 24 64 62 73 79 6e 74 61 78 3b 0a 20 20 20 20 76 61 .var.$phptype,.$dbsyntax;.....va
21fe0 72 20 24 70 72 65 70 61 72 65 5f 74 6f 6b 65 6e 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 20 20 20 r.$prepare_tokens.=.array();....
22000 20 76 61 72 20 24 70 72 65 70 61 72 65 5f 74 79 70 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a .var.$prepare_types.=.array();..
22020 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 63 6f 6e 73 74 72 75 63 74 6f ....//.}}}.....//.{{{.constructo
22040 72 0a 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 44 42 5f 6d 73 71 6c 28 29 0a 20 20 20 20 7b 0a r......function.DB_msql().....{.
22060 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 44 42 5f 63 6f 6d 6d 6f 6e 28 29 3b 0a 20 20 20 20 ........$this->DB_common();.....
22080 20 20 20 20 24 74 68 69 73 2d 3e 70 68 70 74 79 70 65 20 3d 20 27 6d 73 71 6c 27 3b 0a 20 20 20 ....$this->phptype.=.'msql';....
220a0 20 20 20 20 20 24 74 68 69 73 2d 3e 64 62 73 79 6e 74 61 78 20 3d 20 27 6d 73 71 6c 27 3b 0a 20 .....$this->dbsyntax.=.'msql';..
220c0 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 66 65 61 74 75 72 65 73 20 3d 20 61 72 72 61 79 28 0a .......$this->features.=.array(.
220e0 20 20 20 20 20 20 20 20 20 20 20 20 27 70 72 65 70 61 72 65 27 20 3d 3e 20 66 61 6c 73 65 2c 0a ............'prepare'.=>.false,.
22100 20 20 20 20 20 20 20 20 20 20 20 20 27 70 63 6f 6e 6e 65 63 74 27 20 3d 3e 20 74 72 75 65 2c 0a ............'pconnect'.=>.true,.
22120 20 20 20 20 20 20 20 20 20 20 20 20 27 74 72 61 6e 73 61 63 74 69 6f 6e 73 27 20 3d 3e 20 66 61 ............'transactions'.=>.fa
22140 6c 73 65 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 27 6c 69 6d 69 74 27 20 3d 3e 20 27 65 6d 75 lse,.............'limit'.=>.'emu
22160 6c 61 74 65 27 0a 20 20 20 20 20 20 20 20 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d late'.........);.....}......//.}
22180 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 63 6f 6e 6e 65 63 74 28 29 0a 0a 20 20 20 20 66 75 6e }}.....//.{{{.connect()......fun
221a0 63 74 69 6f 6e 20 63 6f 6e 6e 65 63 74 28 24 64 73 6e 69 6e 66 6f 2c 20 24 70 65 72 73 69 73 74 ction.connect($dsninfo,.$persist
221c0 65 6e 74 20 3d 20 66 61 6c 73 65 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 69 66 20 28 21 ent.=.false).....{.........if.(!
221e0 44 42 3a 3a 61 73 73 65 72 74 45 78 74 65 6e 73 69 6f 6e 28 27 6d 73 71 6c 27 29 29 0a 20 20 20 DB::assertExtension('msql'))....
22200 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 61 69 73 65 45 72 72 6f .........return.$this->raiseErro
22220 72 28 44 42 5f 45 52 52 4f 52 5f 45 58 54 45 4e 53 49 4f 4e 5f 4e 4f 54 5f 46 4f 55 4e 44 29 3b r(DB_ERROR_EXTENSION_NOT_FOUND);
22240 0a 0a 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 64 73 6e 20 3d 20 24 64 73 6e 69 6e 66 6f 3b ..........$this->dsn.=.$dsninfo;
22260 0a 20 20 20 20 20 20 20 20 24 75 73 65 72 20 3d 20 24 64 73 6e 69 6e 66 6f 5b 27 75 73 65 72 6e .........$user.=.$dsninfo['usern
22280 61 6d 65 27 5d 3b 0a 20 20 20 20 20 20 20 20 24 70 77 20 3d 20 24 64 73 6e 69 6e 66 6f 5b 27 70 ame'];.........$pw.=.$dsninfo['p
222a0 61 73 73 77 6f 72 64 27 5d 3b 0a 20 20 20 20 20 20 20 20 24 64 62 68 6f 73 74 20 3d 20 24 64 73 assword'];.........$dbhost.=.$ds
222c0 6e 69 6e 66 6f 5b 27 68 6f 73 74 73 70 65 63 27 5d 20 3f 20 24 64 73 6e 69 6e 66 6f 5b 27 68 6f ninfo['hostspec'].?.$dsninfo['ho
222e0 73 74 73 70 65 63 27 5d 20 3a 20 27 6c 6f 63 61 6c 68 6f 73 74 27 3b 0a 0a 20 20 20 20 20 20 20 stspec'].:.'localhost';.........
22300 20 24 63 6f 6e 6e 65 63 74 5f 66 75 6e 63 74 69 6f 6e 20 3d 20 24 70 65 72 73 69 73 74 65 6e 74 .$connect_function.=.$persistent
22320 20 3f 20 27 6d 73 71 6c 5f 70 63 6f 6e 6e 65 63 74 27 20 3a 20 27 6d 73 71 6c 5f 63 6f 6e 6e 65 .?.'msql_pconnect'.:.'msql_conne
22340 63 74 27 3b 0a 0a 20 20 20 20 20 20 20 20 69 66 20 28 24 64 62 68 6f 73 74 20 26 26 20 24 75 73 ct';..........if.($dbhost.&&.$us
22360 65 72 20 26 26 20 24 70 77 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 63 6f 6e 6e 20 3d er.&&.$pw).{.............$conn.=
22380 20 24 63 6f 6e 6e 65 63 74 5f 66 75 6e 63 74 69 6f 6e 28 24 64 62 68 6f 73 74 2c 20 24 75 73 65 .$connect_function($dbhost,.$use
223a0 72 2c 20 24 70 77 29 3b 0a 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 69 66 20 28 24 64 62 68 6f r,.$pw);.........}.elseif.($dbho
223c0 73 74 20 26 26 20 24 75 73 65 72 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 63 6f 6e 6e st.&&.$user).{.............$conn
223e0 20 3d 20 24 63 6f 6e 6e 65 63 74 5f 66 75 6e 63 74 69 6f 6e 28 24 64 62 68 6f 73 74 2c 24 75 73 .=.$connect_function($dbhost,$us
22400 65 72 29 3b 0a 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 20 20 20 er);.........}.else.{...........
22420 20 20 24 63 6f 6e 6e 20 3d 20 24 63 6f 6e 6e 65 63 74 5f 66 75 6e 63 74 69 6f 6e 28 24 64 62 68 ..$conn.=.$connect_function($dbh
22440 6f 73 74 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 69 66 20 28 21 24 63 6f ost);.........}.........if.(!$co
22460 6e 6e 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 72 61 69 73 65 45 72 nn).{.............$this->raiseEr
22480 72 6f 72 28 44 42 5f 45 52 52 4f 52 5f 43 4f 4e 4e 45 43 54 5f 46 41 49 4c 45 44 29 3b 0a 20 20 ror(DB_ERROR_CONNECT_FAILED);...
224a0 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 69 66 20 28 21 40 6d 73 71 6c 5f 73 65 6c 65 63 ......}.........if.(!@msql_selec
224c0 74 5f 64 62 28 24 64 73 6e 69 6e 66 6f 5b 27 64 61 74 61 62 61 73 65 27 5d 2c 20 24 63 6f 6e 6e t_db($dsninfo['database'],.$conn
224e0 29 29 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 61 )){.............return.$this->ra
22500 69 73 65 45 72 72 6f 72 28 44 42 5f 45 52 52 4f 52 5f 4e 4f 44 42 53 45 4c 45 43 54 45 44 29 3b iseError(DB_ERROR_NODBSELECTED);
22520 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 63 6f 6e 6e 65 63 .........}.........$this->connec
22540 74 69 6f 6e 20 3d 20 24 63 6f 6e 6e 3b 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 44 42 5f tion.=.$conn;.........return.DB_
22560 4f 4b 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b OK;.....}......//.}}}.....//.{{{
22580 20 64 69 73 63 6f 6e 6e 65 63 74 28 29 0a 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 64 69 73 63 .disconnect()......function.disc
225a0 6f 6e 6e 65 63 74 28 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 24 72 65 74 20 3d 20 40 6d onnect().....{.........$ret.=.@m
225c0 73 71 6c 5f 63 6c 6f 73 65 28 24 74 68 69 73 2d 3e 63 6f 6e 6e 65 63 74 69 6f 6e 29 3b 0a 20 20 sql_close($this->connection);...
225e0 20 20 20 20 20 20 24 74 68 69 73 2d 3e 63 6f 6e 6e 65 63 74 69 6f 6e 20 3d 20 6e 75 6c 6c 3b 0a ......$this->connection.=.null;.
22600 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 72 65 74 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 ........return.$ret;.....}......
22620 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 73 69 6d 70 6c 65 51 75 65 72 79 28 29 0a //.}}}.....//.{{{.simpleQuery().
22640 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 73 69 6d 70 6c 65 51 75 65 72 79 28 24 71 75 65 72 79 .....function.simpleQuery($query
22660 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 6c 61 73 74 5f 71 75 65 72 ).....{.........$this->last_quer
22680 79 20 3d 20 24 71 75 65 72 79 3b 0a 20 20 20 20 20 20 20 20 24 71 75 65 72 79 20 3d 20 24 74 68 y.=.$query;.........$query.=.$th
226a0 69 73 2d 3e 6d 6f 64 69 66 79 51 75 65 72 79 28 24 71 75 65 72 79 29 3b 0a 20 20 20 20 20 20 20 is->modifyQuery($query);........
226c0 20 24 72 65 73 75 6c 74 20 3d 20 40 6d 73 71 6c 5f 71 75 65 72 79 28 24 71 75 65 72 79 2c 20 24 .$result.=.@msql_query($query,.$
226e0 74 68 69 73 2d 3e 63 6f 6e 6e 65 63 74 69 6f 6e 29 3b 0a 20 20 20 20 20 20 20 20 69 66 20 28 21 this->connection);.........if.(!
22700 24 72 65 73 75 6c 74 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 $result).{.............return.$t
22720 68 69 73 2d 3e 72 61 69 73 65 45 72 72 6f 72 28 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 his->raiseError();.........}....
22740 20 20 20 20 20 2f 2f 20 44 65 74 65 72 6d 69 6e 65 20 77 68 69 63 68 20 71 75 65 72 69 65 73 20 .....//.Determine.which.queries.
22760 74 68 61 74 20 73 68 6f 75 6c 64 20 72 65 74 75 72 6e 20 64 61 74 61 2c 20 61 6e 64 20 77 68 69 that.should.return.data,.and.whi
22780 63 68 0a 20 20 20 20 20 20 20 20 2f 2f 20 73 68 6f 75 6c 64 20 72 65 74 75 72 6e 20 61 6e 20 65 ch.........//.should.return.an.e
227a0 72 72 6f 72 20 63 6f 64 65 20 6f 6e 6c 79 2e 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 44 rror.code.only..........return.D
227c0 42 3a 3a 69 73 4d 61 6e 69 70 28 24 71 75 65 72 79 29 20 3f 20 44 42 5f 4f 4b 20 3a 20 24 72 65 B::isManip($query).?.DB_OK.:.$re
227e0 73 75 6c 74 3b 0a 20 20 20 20 7d 0a 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 sult;.....}.......//.}}}.....//.
22800 7b 7b 7b 20 6e 65 78 74 52 65 73 75 6c 74 28 29 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a {{{.nextResult()....../**......*
22820 20 4d 6f 76 65 20 74 68 65 20 69 6e 74 65 72 6e 61 6c 20 6d 73 71 6c 20 72 65 73 75 6c 74 20 70 .Move.the.internal.msql.result.p
22840 6f 69 6e 74 65 72 20 74 6f 20 74 68 65 20 6e 65 78 74 20 61 76 61 69 6c 61 62 6c 65 20 72 65 73 ointer.to.the.next.available.res
22860 75 6c 74 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 61 20 76 61 6c 69 64 ult......*......*.@param.a.valid
22880 20 66 62 73 71 6c 20 72 65 73 75 6c 74 20 72 65 73 6f 75 72 63 65 0a 20 20 20 20 20 2a 0a 20 20 .fbsql.result.resource......*...
228a0 20 20 20 2a 20 40 61 63 63 65 73 73 20 70 75 62 6c 69 63 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 ...*.@access.public......*......
228c0 2a 20 40 72 65 74 75 72 6e 20 74 72 75 65 20 69 66 20 61 20 72 65 73 75 6c 74 20 69 73 20 61 76 *.@return.true.if.a.result.is.av
228e0 61 69 6c 61 62 6c 65 20 6f 74 68 65 72 77 69 73 65 20 72 65 74 75 72 6e 20 66 61 6c 73 65 0a 20 ailable.otherwise.return.false..
22900 20 20 20 20 2a 2f 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 6e 65 78 74 52 65 73 75 6c 74 28 24 ....*/.....function.nextResult($
22920 72 65 73 75 6c 74 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 66 61 6c result).....{.........return.fal
22940 73 65 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b se;.....}......//.}}}.....//.{{{
22960 20 66 65 74 63 68 49 6e 74 6f 28 29 0a 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 66 65 74 63 68 .fetchInto()......function.fetch
22980 49 6e 74 6f 28 24 72 65 73 75 6c 74 2c 20 26 24 61 72 2c 20 24 66 65 74 63 68 6d 6f 64 65 2c 20 Into($result,.&$ar,.$fetchmode,.
229a0 24 72 6f 77 6e 75 6d 3d 6e 75 6c 6c 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 69 66 20 28 $rownum=null).....{.........if.(
229c0 24 72 6f 77 6e 75 6d 20 21 3d 3d 20 6e 75 6c 6c 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 $rownum.!==.null).{.............
229e0 69 66 20 28 21 40 6d 73 71 6c 5f 64 61 74 61 5f 73 65 65 6b 28 24 72 65 73 75 6c 74 2c 20 24 72 if.(!@msql_data_seek($result,.$r
22a00 6f 77 6e 75 6d 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e ownum)).{.................return
22a20 20 6e 75 6c 6c 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 7d 0a 20 .null;.............}.........}..
22a40 20 20 20 20 20 20 20 69 66 20 28 24 66 65 74 63 68 6d 6f 64 65 20 26 20 44 42 5f 46 45 54 43 48 .......if.($fetchmode.&.DB_FETCH
22a60 4d 4f 44 45 5f 41 53 53 4f 43 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 61 72 20 3d 20 MODE_ASSOC).{.............$ar.=.
22a80 40 6d 73 71 6c 5f 66 65 74 63 68 5f 61 72 72 61 79 28 24 72 65 73 75 6c 74 2c 20 4d 53 51 4c 5f @msql_fetch_array($result,.MSQL_
22aa0 41 53 53 4f 43 29 3b 0a 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 ASSOC);.........}.else.{........
22ac0 20 20 20 20 20 24 61 72 20 3d 20 40 6d 73 71 6c 5f 66 65 74 63 68 5f 72 6f 77 28 24 72 65 73 75 .....$ar.=.@msql_fetch_row($resu
22ae0 6c 74 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 69 66 20 28 21 24 61 72 29 lt);.........}.........if.(!$ar)
22b00 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 24 65 72 72 6f 72 20 3d 20 6d 73 71 6c .{.............if.($error.=.msql
22b20 5f 65 72 72 6f 72 28 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 _error()).{.................retu
22b40 72 6e 20 24 74 68 69 73 2d 3e 72 61 69 73 65 45 72 72 6f 72 28 24 65 72 72 6f 72 29 3b 0a 20 20 rn.$this->raiseError($error);...
22b60 20 20 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ..........}.else.{..............
22b80 20 20 20 72 65 74 75 72 6e 20 6e 75 6c 6c 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 ...return.null;.............}...
22ba0 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 44 42 5f 4f 4b 3b 0a 20 20 ......}.........return.DB_OK;...
22bc0 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 66 72 65 65 52 ..}......//.}}}.....//.{{{.freeR
22be0 65 73 75 6c 74 28 29 0a 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 66 72 65 65 52 65 73 75 6c 74 esult()......function.freeResult
22c00 28 24 72 65 73 75 6c 74 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 69 66 20 28 69 73 5f 72 ($result).....{.........if.(is_r
22c20 65 73 6f 75 72 63 65 28 24 72 65 73 75 6c 74 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 esource($result)).{.............
22c40 72 65 74 75 72 6e 20 40 6d 73 71 6c 5f 66 72 65 65 5f 72 65 73 75 6c 74 28 24 72 65 73 75 6c 74 return.@msql_free_result($result
22c60 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 69 66 20 28 21 69 73 73 65 74 28 );.........}.........if.(!isset(
22c80 24 74 68 69 73 2d 3e 70 72 65 70 61 72 65 5f 74 6f 6b 65 6e 73 5b 24 72 65 73 75 6c 74 5d 29 29 $this->prepare_tokens[$result]))
22ca0 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 20 20 20 .{.............return.false;....
22cc0 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 70 72 65 70 .....}.........unset($this->prep
22ce0 61 72 65 5f 74 6f 6b 65 6e 73 5b 24 72 65 73 75 6c 74 5d 29 3b 0a 20 20 20 20 20 20 20 20 75 6e are_tokens[$result]);.........un
22d00 73 65 74 28 24 74 68 69 73 2d 3e 70 72 65 70 61 72 65 5f 74 79 70 65 73 5b 24 72 65 73 75 6c 74 set($this->prepare_types[$result
22d20 5d 29 3b 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 20 20 20 20 7d 0a 0a ]);.........return.true;.....}..
22d40 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 6e 75 6d 43 6f 6c 73 28 29 0a ....//.}}}.....//.{{{.numCols().
22d60 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 6e 75 6d 43 6f 6c 73 28 24 72 65 73 75 6c 74 29 0a 20 .....function.numCols($result)..
22d80 20 20 20 7b 0a 20 20 20 20 20 20 20 20 24 63 6f 6c 73 20 3d 20 40 6d 73 71 6c 5f 6e 75 6d 5f 66 ...{.........$cols.=.@msql_num_f
22da0 69 65 6c 64 73 28 24 72 65 73 75 6c 74 29 3b 0a 20 20 20 20 20 20 20 20 69 66 20 28 21 24 63 6f ields($result);.........if.(!$co
22dc0 6c 73 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e ls).{.............return.$this->
22de0 72 61 69 73 65 45 72 72 6f 72 28 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 raiseError();.........}.........
22e00 72 65 74 75 72 6e 20 24 63 6f 6c 73 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a return.$cols;.....}......//.}}}.
22e20 20 20 20 20 2f 2f 20 7b 7b 7b 20 6e 75 6d 52 6f 77 73 28 29 0a 0a 20 20 20 20 66 75 6e 63 74 69 ....//.{{{.numRows()......functi
22e40 6f 6e 20 6e 75 6d 52 6f 77 73 28 24 72 65 73 75 6c 74 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 on.numRows($result).....{.......
22e60 20 20 24 72 6f 77 73 20 3d 20 40 6d 73 71 6c 5f 6e 75 6d 5f 72 6f 77 73 28 24 72 65 73 75 6c 74 ..$rows.=.@msql_num_rows($result
22e80 29 3b 0a 20 20 20 20 20 20 20 20 69 66 20 28 21 24 72 6f 77 73 29 20 7b 0a 20 20 20 20 20 20 20 );.........if.(!$rows).{........
22ea0 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 61 69 73 65 45 72 72 6f 72 28 29 3b .....return.$this->raiseError();
22ec0 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 72 6f 77 73 3b .........}.........return.$rows;
22ee0 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 61 66 .....}......//.}}}.....//.{{{.af
22f00 66 65 63 74 65 64 28 29 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 47 65 74 73 20 74 68 fected()....../**......*.Gets.th
22f20 65 20 6e 75 6d 62 65 72 20 6f 66 20 72 6f 77 73 20 61 66 66 65 63 74 65 64 20 62 79 20 61 20 71 e.number.of.rows.affected.by.a.q
22f40 75 65 72 79 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 72 65 74 75 72 6e 20 6e 75 6d 62 uery.......*......*.@return.numb
22f60 65 72 20 6f 66 20 72 6f 77 73 20 61 66 66 65 63 74 65 64 20 62 79 20 74 68 65 20 6c 61 73 74 20 er.of.rows.affected.by.the.last.
22f80 71 75 65 72 79 0a 20 20 20 20 20 2a 2f 0a 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 61 66 66 65 query......*/......function.affe
22fa0 63 74 65 64 52 6f 77 73 28 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 ctedRows().....{.........return.
22fc0 40 6d 73 71 6c 5f 61 66 66 65 63 74 65 64 5f 72 6f 77 73 28 24 74 68 69 73 2d 3e 63 6f 6e 6e 65 @msql_affected_rows($this->conne
22fe0 63 74 69 6f 6e 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f ction);.....}......//.}}}.....//
23000 20 7b 7b 7b 20 67 65 74 53 70 65 63 69 61 6c 51 75 65 72 79 28 29 0a 0a 20 20 20 20 2f 2a 2a 0a .{{{.getSpecialQuery()....../**.
23020 20 20 20 20 2a 20 52 65 74 75 72 6e 73 20 74 68 65 20 71 75 65 72 79 20 6e 65 65 64 65 64 20 74 ....*.Returns.the.query.needed.t
23040 6f 20 67 65 74 20 73 6f 6d 65 20 62 61 63 6b 65 6e 64 20 69 6e 66 6f 0a 20 20 20 20 2a 20 40 70 o.get.some.backend.info.....*.@p
23060 61 72 61 6d 20 73 74 72 69 6e 67 20 24 74 79 70 65 20 57 68 61 74 20 6b 69 6e 64 20 6f 66 20 69 aram.string.$type.What.kind.of.i
23080 6e 66 6f 20 79 6f 75 20 77 61 6e 74 20 74 6f 20 72 65 74 72 69 65 76 65 0a 20 20 20 20 2a 20 40 nfo.you.want.to.retrieve.....*.@
230a0 72 65 74 75 72 6e 20 73 74 72 69 6e 67 20 54 68 65 20 53 51 4c 20 71 75 65 72 79 20 73 74 72 69 return.string.The.SQL.query.stri
230c0 6e 67 0a 20 20 20 20 2a 2f 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 70 65 63 69 61 ng.....*/.....function.getSpecia
230e0 6c 51 75 65 72 79 28 24 74 79 70 65 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 73 77 69 74 lQuery($type).....{.........swit
23100 63 68 20 28 24 74 79 70 65 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 63 61 73 65 20 27 74 ch.($type).{.............case.'t
23120 61 62 6c 65 73 27 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 64 65 66 61 75 6c 74 3a 0a 20 20 20 ables':.............default:....
23140 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 6e 75 6c 6c 3b 0a 20 20 20 20 20 20 .............return.null;.......
23160 20 20 7d 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 73 71 6c 3b 0a 20 20 20 20 7d 0a 0a ..}.........return.$sql;.....}..
23180 20 20 20 20 2f 2f 20 7d 7d 7d 0a 0a 7d 0a 3f 3e 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ....//.}}}..}.?>................
231a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
231c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
231e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
23200 44 42 2d 31 2e 35 2e 30 52 43 31 2f 44 42 2f 6d 73 73 71 6c 2e 70 68 70 00 00 00 00 00 00 00 00 DB-1.5.0RC1/DB/mssql.php........
23220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
23240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
23260 00 00 00 00 31 30 30 36 34 34 20 00 20 20 20 37 36 34 20 00 20 20 20 31 34 34 20 00 20 20 20 20 ....100644.....764.....144......
23280 20 20 34 31 31 32 36 20 20 37 36 37 35 31 32 32 30 33 33 20 20 20 37 36 34 30 20 00 00 00 00 00 ..41126..7675122033...7640......
232a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
232c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
232e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
23300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
23320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
23340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
23360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
23380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
233a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
233c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
233e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
23400 3c 3f 70 68 70 0a 2f 2a 20 76 69 6d 3a 20 73 65 74 20 65 78 70 61 6e 64 74 61 62 20 74 61 62 73 <?php./*.vim:.set.expandtab.tabs
23420 74 6f 70 3d 34 20 73 68 69 66 74 77 69 64 74 68 3d 34 20 66 6f 6c 64 6d 65 74 68 6f 64 3d 6d 61 top=4.shiftwidth=4.foldmethod=ma
23440 72 6b 65 72 3a 20 2a 2f 0a 2f 2f 20 2b 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d rker:.*/.//.+-------------------
23460 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
23480 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2b 0a 2f 2f 20 7c 20 50 48 50 20 56 65 -------------------+.//.|.PHP.Ve
234a0 72 73 69 6f 6e 20 34 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 rsion.4.........................
234c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c ...............................|
234e0 0a 2f 2f 20 2b 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d .//.+---------------------------
23500 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
23520 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2b 0a 2f 2f 20 7c 20 43 6f 70 79 72 69 67 68 74 20 28 63 29 20 -----------+.//.|.Copyright.(c).
23540 31 39 39 37 2d 32 30 30 33 20 54 68 65 20 50 48 50 20 47 72 6f 75 70 20 20 20 20 20 20 20 20 20 1997-2003.The.PHP.Group.........
23560 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 2f 2f 20 2b 2d 2d 2d .......................|.//.+---
23580 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
235a0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
235c0 2d 2d 2d 2b 0a 2f 2f 20 7c 20 54 68 69 73 20 73 6f 75 72 63 65 20 66 69 6c 65 20 69 73 20 73 75 ---+.//.|.This.source.file.is.su
235e0 62 6a 65 63 74 20 74 6f 20 76 65 72 73 69 6f 6e 20 32 2e 30 32 20 6f 66 20 74 68 65 20 50 48 50 bject.to.version.2.02.of.the.PHP
23600 20 6c 69 63 65 6e 73 65 2c 20 20 20 20 20 20 7c 0a 2f 2f 20 7c 20 74 68 61 74 20 69 73 20 62 75 .license,......|.//.|.that.is.bu
23620 6e 64 6c 65 64 20 77 69 74 68 20 74 68 69 73 20 70 61 63 6b 61 67 65 20 69 6e 20 74 68 65 20 66 ndled.with.this.package.in.the.f
23640 69 6c 65 20 4c 49 43 45 4e 53 45 2c 20 61 6e 64 20 69 73 20 20 20 20 20 20 20 20 7c 0a 2f 2f 20 ile.LICENSE,.and.is........|.//.
23660 7c 20 61 76 61 69 6c 61 62 6c 65 20 61 74 20 74 68 72 6f 75 67 68 20 74 68 65 20 77 6f 72 6c 64 |.available.at.through.the.world
23680 2d 77 69 64 65 2d 77 65 62 20 61 74 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -wide-web.at....................
236a0 20 20 20 20 20 20 20 7c 0a 2f 2f 20 7c 20 68 74 74 70 3a 2f 2f 77 77 77 2e 70 68 70 2e 6e 65 74 .......|.//.|.http://www.php.net
236c0 2f 6c 69 63 65 6e 73 65 2f 32 5f 30 32 2e 74 78 74 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 /license/2_02.txt...............
236e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 2f 2f 20 7c 20 49 66 20 79 6f 75 ...................|.//.|.If.you
23700 20 64 69 64 20 6e 6f 74 20 72 65 63 65 69 76 65 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 50 .did.not.receive.a.copy.of.the.P
23720 48 50 20 6c 69 63 65 6e 73 65 20 61 6e 64 20 61 72 65 20 75 6e 61 62 6c 65 20 74 6f 20 20 20 7c HP.license.and.are.unable.to...|
23740 0a 2f 2f 20 7c 20 6f 62 74 61 69 6e 20 69 74 20 74 68 72 6f 75 67 68 20 74 68 65 20 77 6f 72 6c .//.|.obtain.it.through.the.worl
23760 64 2d 77 69 64 65 2d 77 65 62 2c 20 70 6c 65 61 73 65 20 73 65 6e 64 20 61 20 6e 6f 74 65 20 74 d-wide-web,.please.send.a.note.t
23780 6f 20 20 20 20 20 20 20 20 20 20 7c 0a 2f 2f 20 7c 20 6c 69 63 65 6e 73 65 40 70 68 70 2e 6e 65 o..........|.//.|.license@php.ne
237a0 74 20 73 6f 20 77 65 20 63 61 6e 20 6d 61 69 6c 20 79 6f 75 20 61 20 63 6f 70 79 20 69 6d 6d 65 t.so.we.can.mail.you.a.copy.imme
237c0 64 69 61 74 65 6c 79 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 2f 2f 20 2b 2d 2d 2d diately................|.//.+---
237e0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
23800 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
23820 2d 2d 2d 2b 0a 2f 2f 20 7c 20 41 75 74 68 6f 72 3a 20 53 74 65 72 6c 69 6e 67 20 48 75 67 68 65 ---+.//.|.Author:.Sterling.Hughe
23840 73 20 3c 73 74 65 72 6c 69 6e 67 40 70 68 70 2e 6e 65 74 3e 20 20 20 20 20 20 20 20 20 20 20 20 s.<sterling@php.net>............
23860 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 2f 2f 20 2b 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ...............|.//.+-----------
23880 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
238a0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2b 0a 2f 2f 0a ---------------------------+.//.
238c0 2f 2f 20 24 49 64 3a 20 6d 73 73 71 6c 2e 70 68 70 2c 76 20 31 2e 31 32 20 32 30 30 33 2f 30 36 //.$Id:.mssql.php,v.1.12.2003/06
238e0 2f 32 31 20 31 38 3a 32 39 3a 34 37 20 63 6f 78 20 45 78 70 20 24 0a 2f 2f 0a 2f 2f 20 44 61 74 /21.18:29:47.cox.Exp.$.//.//.Dat
23900 61 62 61 73 65 20 69 6e 64 65 70 65 6e 64 65 6e 74 20 71 75 65 72 79 20 69 6e 74 65 72 66 61 63 abase.independent.query.interfac
23920 65 20 64 65 66 69 6e 69 74 69 6f 6e 20 66 6f 72 20 50 48 50 27 73 20 4d 69 63 72 6f 73 6f 66 74 e.definition.for.PHP's.Microsoft
23940 20 53 51 4c 20 53 65 72 76 65 72 0a 2f 2f 20 65 78 74 65 6e 73 69 6f 6e 2e 0a 2f 2f 0a 0a 72 65 .SQL.Server.//.extension..//..re
23960 71 75 69 72 65 5f 6f 6e 63 65 20 27 44 42 2f 63 6f 6d 6d 6f 6e 2e 70 68 70 27 3b 0a 0a 63 6c 61 quire_once.'DB/common.php';..cla
23980 73 73 20 44 42 5f 6d 73 73 71 6c 20 65 78 74 65 6e 64 73 20 44 42 5f 63 6f 6d 6d 6f 6e 0a 7b 0a ss.DB_mssql.extends.DB_common.{.
239a0 20 20 20 20 2f 2f 20 7b 7b 7b 20 70 72 6f 70 65 72 74 69 65 73 0a 0a 20 20 20 20 76 61 72 20 24 ....//.{{{.properties......var.$
239c0 63 6f 6e 6e 65 63 74 69 6f 6e 3b 0a 20 20 20 20 76 61 72 20 24 70 68 70 74 79 70 65 2c 20 24 64 connection;.....var.$phptype,.$d
239e0 62 73 79 6e 74 61 78 3b 0a 20 20 20 20 76 61 72 20 24 70 72 65 70 61 72 65 5f 74 6f 6b 65 6e 73 bsyntax;.....var.$prepare_tokens
23a00 20 3d 20 61 72 72 61 79 28 29 3b 0a 20 20 20 20 76 61 72 20 24 70 72 65 70 61 72 65 5f 74 79 70 .=.array();.....var.$prepare_typ
23a20 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 20 20 20 20 76 61 72 20 24 74 72 61 6e 73 61 63 74 69 es.=.array();.....var.$transacti
23a40 6f 6e 5f 6f 70 63 6f 75 6e 74 20 3d 20 30 3b 0a 20 20 20 20 76 61 72 20 24 61 75 74 6f 63 6f 6d on_opcount.=.0;.....var.$autocom
23a60 6d 69 74 20 3d 20 74 72 75 65 3b 0a 20 20 20 20 76 61 72 20 24 5f 64 62 20 3d 20 6e 75 6c 6c 3b mit.=.true;.....var.$_db.=.null;
23a80 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 63 6f 6e 73 74 72 75 63 ......//.}}}.....//.{{{.construc
23aa0 74 6f 72 0a 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 44 42 5f 6d 73 73 71 6c 28 29 0a 20 20 20 tor......function.DB_mssql()....
23ac0 20 7b 0a 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 44 42 5f 63 6f 6d 6d 6f 6e 28 29 3b 0a 20 .{.........$this->DB_common();..
23ae0 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 70 68 70 74 79 70 65 20 3d 20 27 6d 73 73 71 6c 27 3b .......$this->phptype.=.'mssql';
23b00 0a 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 64 62 73 79 6e 74 61 78 20 3d 20 27 6d 73 73 71 .........$this->dbsyntax.=.'mssq
23b20 6c 27 3b 0a 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 66 65 61 74 75 72 65 73 20 3d 20 61 72 l';.........$this->features.=.ar
23b40 72 61 79 28 0a 20 20 20 20 20 20 20 20 20 20 20 20 27 70 72 65 70 61 72 65 27 20 3d 3e 20 66 61 ray(.............'prepare'.=>.fa
23b60 6c 73 65 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 27 70 63 6f 6e 6e 65 63 74 27 20 3d 3e 20 74 lse,.............'pconnect'.=>.t
23b80 72 75 65 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 27 74 72 61 6e 73 61 63 74 69 6f 6e 73 27 20 rue,.............'transactions'.
23ba0 3d 3e 20 74 72 75 65 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 27 6c 69 6d 69 74 27 20 3d 3e 20 =>.true,.............'limit'.=>.
23bc0 27 65 6d 75 6c 61 74 65 27 0a 20 20 20 20 20 20 20 20 29 3b 0a 20 20 20 20 20 20 20 20 2f 2f 20 'emulate'.........);.........//.
23be0 58 58 58 20 41 64 64 20 68 65 72 65 20 65 72 72 6f 72 20 63 6f 64 65 73 20 69 65 3a 20 27 53 31 XXX.Add.here.error.codes.ie:.'S1
23c00 30 30 45 27 20 3d 3e 20 44 42 5f 45 52 52 4f 52 5f 53 59 4e 54 41 58 0a 20 20 20 20 20 20 20 20 00E'.=>.DB_ERROR_SYNTAX.........
23c20 24 74 68 69 73 2d 3e 65 72 72 6f 72 63 6f 64 65 5f 6d 61 70 20 3d 20 61 72 72 61 79 28 0a 20 20 $this->errorcode_map.=.array(...
23c40 20 20 20 20 20 20 20 20 20 20 31 37 30 20 20 20 3d 3e 20 44 42 5f 45 52 52 4f 52 5f 53 59 4e 54 ..........170...=>.DB_ERROR_SYNT
23c60 41 58 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 32 30 37 20 20 20 3d 3e 20 44 42 5f 45 52 52 4f AX,.............207...=>.DB_ERRO
23c80 52 5f 4e 4f 53 55 43 48 46 49 45 4c 44 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 32 30 38 20 20 R_NOSUCHFIELD,.............208..
23ca0 20 3d 3e 20 44 42 5f 45 52 52 4f 52 5f 4e 4f 53 55 43 48 54 41 42 4c 45 2c 0a 20 20 20 20 20 20 .=>.DB_ERROR_NOSUCHTABLE,.......
23cc0 20 20 20 20 20 20 32 34 35 20 20 20 3d 3e 20 44 42 5f 45 52 52 4f 52 5f 49 4e 56 41 4c 49 44 5f ......245...=>.DB_ERROR_INVALID_
23ce0 4e 55 4d 42 45 52 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 35 34 37 20 20 20 3d 3e 20 44 42 5f NUMBER,.............547...=>.DB_
23d00 45 52 52 4f 52 5f 43 4f 4e 53 54 52 41 49 4e 54 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 32 37 ERROR_CONSTRAINT,.............27
23d20 31 34 20 20 3d 3e 20 44 42 5f 45 52 52 4f 52 5f 41 4c 52 45 41 44 59 5f 45 58 49 53 54 53 2c 0d 14..=>.DB_ERROR_ALREADY_EXISTS,.
23d40 0a 20 20 20 20 20 20 20 20 20 20 20 20 33 37 30 31 20 20 3d 3e 20 44 42 5f 45 52 52 4f 52 5f 4e .............3701..=>.DB_ERROR_N
23d60 4f 53 55 43 48 54 41 42 4c 45 0a 20 20 20 20 20 20 20 20 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 OSUCHTABLE.........);.....}.....
23d80 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 63 6f 6e 6e 65 63 74 28 29 0a 0a 20 20 .//.}}}.....//.{{{.connect()....
23da0 20 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6e 6e 65 63 74 28 24 64 73 6e 69 6e 66 6f 2c 20 24 70 65 ..function.connect($dsninfo,.$pe
23dc0 72 73 69 73 74 65 6e 74 20 3d 20 66 61 6c 73 65 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 rsistent.=.false).....{.........
23de0 69 66 20 28 21 44 42 3a 3a 61 73 73 65 72 74 45 78 74 65 6e 73 69 6f 6e 28 27 6d 73 73 71 6c 27 if.(!DB::assertExtension('mssql'
23e00 29 20 26 26 20 21 44 42 3a 3a 61 73 73 65 72 74 45 78 74 65 6e 73 69 6f 6e 28 27 73 79 62 61 73 ).&&.!DB::assertExtension('sybas
23e20 65 27 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 26 26 20 21 44 42 3a 3a 61 73 73 65 72 74 45 78 e').............&&.!DB::assertEx
23e40 74 65 6e 73 69 6f 6e 28 27 73 79 62 61 73 65 5f 63 74 27 29 29 0a 20 20 20 20 20 20 20 20 7b 0a tension('sybase_ct')).........{.
23e60 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 61 69 73 65 45 ............return.$this->raiseE
23e80 72 72 6f 72 28 44 42 5f 45 52 52 4f 52 5f 45 58 54 45 4e 53 49 4f 4e 5f 4e 4f 54 5f 46 4f 55 4e rror(DB_ERROR_EXTENSION_NOT_FOUN
23ea0 44 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 64 73 6e D);.........}.........$this->dsn
23ec0 20 3d 20 24 64 73 6e 69 6e 66 6f 3b 0a 20 20 20 20 20 20 20 20 24 75 73 65 72 20 3d 20 24 64 73 .=.$dsninfo;.........$user.=.$ds
23ee0 6e 69 6e 66 6f 5b 27 75 73 65 72 6e 61 6d 65 27 5d 3b 0a 20 20 20 20 20 20 20 20 24 70 77 20 3d ninfo['username'];.........$pw.=
23f00 20 24 64 73 6e 69 6e 66 6f 5b 27 70 61 73 73 77 6f 72 64 27 5d 3b 0a 20 20 20 20 20 20 20 20 24 .$dsninfo['password'];.........$
23f20 64 62 68 6f 73 74 20 3d 20 24 64 73 6e 69 6e 66 6f 5b 27 68 6f 73 74 73 70 65 63 27 5d 20 3f 20 dbhost.=.$dsninfo['hostspec'].?.
23f40 24 64 73 6e 69 6e 66 6f 5b 27 68 6f 73 74 73 70 65 63 27 5d 20 3a 20 27 6c 6f 63 61 6c 68 6f 73 $dsninfo['hostspec'].:.'localhos
23f60 74 27 3b 0a 20 20 20 20 20 20 20 20 24 70 6f 72 74 20 20 20 3d 20 24 64 73 6e 69 6e 66 6f 5b 27 t';.........$port...=.$dsninfo['
23f80 70 6f 72 74 27 5d 20 3f 20 27 3a 27 20 2e 20 24 64 73 6e 69 6e 66 6f 5b 27 70 6f 72 74 27 5d 20 port'].?.':'...$dsninfo['port'].
23fa0 3a 20 27 27 3b 0a 20 20 20 20 20 20 20 20 24 64 62 68 6f 73 74 20 2e 3d 20 24 70 6f 72 74 3b 0d :.'';.........$dbhost..=.$port;.
23fc0 0a 0a 20 20 20 20 20 20 20 20 24 63 6f 6e 6e 65 63 74 5f 66 75 6e 63 74 69 6f 6e 20 3d 20 24 70 ..........$connect_function.=.$p
23fe0 65 72 73 69 73 74 65 6e 74 20 3f 20 27 6d 73 73 71 6c 5f 70 63 6f 6e 6e 65 63 74 27 20 3a 20 27 ersistent.?.'mssql_pconnect'.:.'
24000 6d 73 73 71 6c 5f 63 6f 6e 6e 65 63 74 27 3b 0a 0a 20 20 20 20 20 20 20 20 69 66 20 28 24 64 62 mssql_connect';..........if.($db
24020 68 6f 73 74 20 26 26 20 24 75 73 65 72 20 26 26 20 24 70 77 29 20 7b 0a 20 20 20 20 20 20 20 20 host.&&.$user.&&.$pw).{.........
24040 20 20 20 20 24 63 6f 6e 6e 20 3d 20 40 24 63 6f 6e 6e 65 63 74 5f 66 75 6e 63 74 69 6f 6e 28 24 ....$conn.=.@$connect_function($
24060 64 62 68 6f 73 74 2c 20 24 75 73 65 72 2c 20 24 70 77 29 3b 0a 20 20 20 20 20 20 20 20 7d 20 65 dbhost,.$user,.$pw);.........}.e
24080 6c 73 65 69 66 20 28 24 64 62 68 6f 73 74 20 26 26 20 24 75 73 65 72 29 20 7b 0a 20 20 20 20 20 lseif.($dbhost.&&.$user).{......
240a0 20 20 20 20 20 20 20 24 63 6f 6e 6e 20 3d 20 40 24 63 6f 6e 6e 65 63 74 5f 66 75 6e 63 74 69 6f .......$conn.=.@$connect_functio
240c0 6e 28 24 64 62 68 6f 73 74 2c 20 24 75 73 65 72 29 3b 0a 20 20 20 20 20 20 20 20 7d 20 65 6c 73 n($dbhost,.$user);.........}.els
240e0 65 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 63 6f 6e 6e 20 3d 20 40 24 63 6f 6e 6e 65 63 e.{.............$conn.=.@$connec
24100 74 5f 66 75 6e 63 74 69 6f 6e 28 24 64 62 68 6f 73 74 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 t_function($dbhost);.........}..
24120 20 20 20 20 20 20 20 69 66 20 28 21 24 63 6f 6e 6e 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 .......if.(!$conn).{............
24140 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 61 69 73 65 45 72 72 6f 72 28 44 42 5f 45 52 52 .return.$this->raiseError(DB_ERR
24160 4f 52 5f 43 4f 4e 4e 45 43 54 5f 46 41 49 4c 45 44 2c 20 6e 75 6c 6c 2c 20 6e 75 6c 6c 2c 0a 20 OR_CONNECT_FAILED,.null,.null,..
24180 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
241a0 20 20 20 20 20 20 20 20 6e 75 6c 6c 2c 20 6d 73 73 71 6c 5f 67 65 74 5f 6c 61 73 74 5f 6d 65 73 ........null,.mssql_get_last_mes
241c0 73 61 67 65 28 29 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 69 66 20 28 24 sage());.........}.........if.($
241e0 64 73 6e 69 6e 66 6f 5b 27 64 61 74 61 62 61 73 65 27 5d 29 20 7b 0a 20 20 20 20 20 20 20 20 20 dsninfo['database']).{..........
24200 20 20 20 69 66 20 28 21 40 6d 73 73 71 6c 5f 73 65 6c 65 63 74 5f 64 62 28 24 64 73 6e 69 6e 66 ...if.(!@mssql_select_db($dsninf
24220 6f 5b 27 64 61 74 61 62 61 73 65 27 5d 2c 20 24 63 6f 6e 6e 29 29 20 7b 0a 20 20 20 20 20 20 20 o['database'],.$conn)).{........
24240 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 61 69 73 65 45 72 72 6f .........return.$this->raiseErro
24260 72 28 44 42 5f 45 52 52 4f 52 5f 4e 4f 44 42 53 45 4c 45 43 54 45 44 2c 20 6e 75 6c 6c 2c 20 6e r(DB_ERROR_NODBSELECTED,.null,.n
24280 75 6c 6c 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ull,............................
242a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 75 6c 6c 2c 20 6d 73 73 71 6c 5f 67 65 74 5f 6c 61 ..............null,.mssql_get_la
242c0 73 74 5f 6d 65 73 73 61 67 65 28 29 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 st_message());.............}....
242e0 20 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 5f 64 62 20 3d 20 24 64 73 6e 69 6e 66 6f 5b 27 .........$this->_db.=.$dsninfo['
24300 64 61 74 61 62 61 73 65 27 5d 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 24 74 database'];.........}.........$t
24320 68 69 73 2d 3e 63 6f 6e 6e 65 63 74 69 6f 6e 20 3d 20 24 63 6f 6e 6e 3b 0a 20 20 20 20 20 20 20 his->connection.=.$conn;........
24340 20 72 65 74 75 72 6e 20 44 42 5f 4f 4b 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d .return.DB_OK;.....}......//.}}}
24360 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 64 69 73 63 6f 6e 6e 65 63 74 28 29 0a 0a 20 20 20 20 66 75 .....//.{{{.disconnect()......fu
24380 6e 63 74 69 6f 6e 20 64 69 73 63 6f 6e 6e 65 63 74 28 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 nction.disconnect().....{.......
243a0 20 20 24 72 65 74 20 3d 20 40 6d 73 73 71 6c 5f 63 6c 6f 73 65 28 24 74 68 69 73 2d 3e 63 6f 6e ..$ret.=.@mssql_close($this->con
243c0 6e 65 63 74 69 6f 6e 29 3b 0a 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 63 6f 6e 6e 65 63 74 nection);.........$this->connect
243e0 69 6f 6e 20 3d 20 6e 75 6c 6c 3b 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 72 65 74 3b ion.=.null;.........return.$ret;
24400 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 73 69 .....}......//.}}}.....//.{{{.si
24420 6d 70 6c 65 51 75 65 72 79 28 29 0a 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 73 69 6d 70 6c 65 mpleQuery()......function.simple
24440 51 75 65 72 79 28 24 71 75 65 72 79 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 24 69 73 6d Query($query).....{.........$ism
24460 61 6e 69 70 20 3d 20 44 42 3a 3a 69 73 4d 61 6e 69 70 28 24 71 75 65 72 79 29 3b 0a 20 20 20 20 anip.=.DB::isManip($query);.....
24480 20 20 20 20 24 74 68 69 73 2d 3e 6c 61 73 74 5f 71 75 65 72 79 20 3d 20 24 71 75 65 72 79 3b 0a ....$this->last_query.=.$query;.
244a0 20 20 20 20 20 20 20 20 69 66 20 28 21 40 6d 73 73 71 6c 5f 73 65 6c 65 63 74 5f 64 62 28 24 74 ........if.(!@mssql_select_db($t
244c0 68 69 73 2d 3e 5f 64 62 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 6e 65 63 74 69 6f 6e 29 29 20 7b 0a his->_db,.$this->connection)).{.
244e0 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6d 73 73 71 6c 52 ............return.$this->mssqlR
24500 61 69 73 65 45 72 72 6f 72 28 44 42 5f 45 52 52 4f 52 5f 4e 4f 44 42 53 45 4c 45 43 54 45 44 29 aiseError(DB_ERROR_NODBSELECTED)
24520 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 24 71 75 65 72 79 20 3d 20 24 74 68 ;.........}.........$query.=.$th
24540 69 73 2d 3e 6d 6f 64 69 66 79 51 75 65 72 79 28 24 71 75 65 72 79 29 3b 0a 20 20 20 20 20 20 20 is->modifyQuery($query);........
24560 20 69 66 20 28 21 24 74 68 69 73 2d 3e 61 75 74 6f 63 6f 6d 6d 69 74 20 26 26 20 24 69 73 6d 61 .if.(!$this->autocommit.&&.$isma
24580 6e 69 70 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 24 74 68 69 73 2d 3e 74 72 nip).{.............if.($this->tr
245a0 61 6e 73 61 63 74 69 6f 6e 5f 6f 70 63 6f 75 6e 74 20 3d 3d 20 30 29 20 7b 0a 20 20 20 20 20 20 ansaction_opcount.==.0).{.......
245c0 20 20 20 20 20 20 20 20 20 20 24 72 65 73 75 6c 74 20 3d 20 40 6d 73 73 71 6c 5f 71 75 65 72 79 ..........$result.=.@mssql_query
245e0 28 27 42 45 47 49 4e 20 54 52 41 4e 27 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 6e 65 63 74 69 6f 6e ('BEGIN.TRAN',.$this->connection
24600 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 21 24 72 65 73 75 6c 74 29 );.................if.(!$result)
24620 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 .{.....................return.$t
24640 68 69 73 2d 3e 6d 73 73 71 6c 52 61 69 73 65 45 72 72 6f 72 28 29 3b 0a 20 20 20 20 20 20 20 20 his->mssqlRaiseError();.........
24660 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 ........}.............}.........
24680 20 20 20 20 24 74 68 69 73 2d 3e 74 72 61 6e 73 61 63 74 69 6f 6e 5f 6f 70 63 6f 75 6e 74 2b 2b ....$this->transaction_opcount++
246a0 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 24 72 65 73 75 6c 74 20 3d 20 40 6d ;.........}.........$result.=.@m
246c0 73 73 71 6c 5f 71 75 65 72 79 28 24 71 75 65 72 79 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 6e 65 63 ssql_query($query,.$this->connec
246e0 74 69 6f 6e 29 3b 0a 20 20 20 20 20 20 20 20 69 66 20 28 21 24 72 65 73 75 6c 74 29 20 7b 0a 20 tion);.........if.(!$result).{..
24700 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6d 73 73 71 6c 52 61 ...........return.$this->mssqlRa
24720 69 73 65 45 72 72 6f 72 28 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 2f 2f iseError();.........}.........//
24740 20 44 65 74 65 72 6d 69 6e 65 20 77 68 69 63 68 20 71 75 65 72 69 65 73 20 74 68 61 74 20 73 68 .Determine.which.queries.that.sh
24760 6f 75 6c 64 20 72 65 74 75 72 6e 20 64 61 74 61 2c 20 61 6e 64 20 77 68 69 63 68 0a 20 20 20 20 ould.return.data,.and.which.....
24780 20 20 20 20 2f 2f 20 73 68 6f 75 6c 64 20 72 65 74 75 72 6e 20 61 6e 20 65 72 72 6f 72 20 63 6f ....//.should.return.an.error.co
247a0 64 65 20 6f 6e 6c 79 2e 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 69 73 6d 61 6e 69 70 de.only..........return.$ismanip
247c0 20 3f 20 44 42 5f 4f 4b 20 3a 20 24 72 65 73 75 6c 74 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f .?.DB_OK.:.$result;.....}....../
247e0 2f 20 7d 7d 7d 0a 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 6e 65 78 74 52 65 73 75 6c 74 28 29 0a 0a /.}}}......//.{{{.nextResult()..
24800 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 4d 6f 76 65 20 74 68 65 20 69 6e 74 65 72 6e 61 6c ..../**......*.Move.the.internal
24820 20 6d 73 73 71 6c 20 72 65 73 75 6c 74 20 70 6f 69 6e 74 65 72 20 74 6f 20 74 68 65 20 6e 65 78 .mssql.result.pointer.to.the.nex
24840 74 20 61 76 61 69 6c 61 62 6c 65 20 72 65 73 75 6c 74 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a t.available.result......*......*
24860 20 40 70 61 72 61 6d 20 61 20 76 61 6c 69 64 20 66 62 73 71 6c 20 72 65 73 75 6c 74 20 72 65 73 .@param.a.valid.fbsql.result.res
24880 6f 75 72 63 65 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 61 63 63 65 73 73 20 70 75 62 6c ource......*......*.@access.publ
248a0 69 63 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 72 65 74 75 72 6e 20 74 72 75 65 20 69 66 ic......*......*.@return.true.if
248c0 20 61 20 72 65 73 75 6c 74 20 69 73 20 61 76 61 69 6c 61 62 6c 65 20 6f 74 68 65 72 77 69 73 65 .a.result.is.available.otherwise
248e0 20 72 65 74 75 72 6e 20 66 61 6c 73 65 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 66 75 6e 63 74 69 .return.false......*/.....functi
24900 6f 6e 20 6e 65 78 74 52 65 73 75 6c 74 28 24 72 65 73 75 6c 74 29 0a 20 20 20 20 7b 0a 20 20 20 on.nextResult($result).....{....
24920 20 20 20 20 20 72 65 74 75 72 6e 20 6d 73 73 71 6c 5f 6e 65 78 74 5f 72 65 73 75 6c 74 28 24 72 .....return.mssql_next_result($r
24940 65 73 75 6c 74 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f esult);.....}......//.}}}.....//
24960 20 7b 7b 7b 20 66 65 74 63 68 49 6e 74 6f 28 29 0a 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 66 .{{{.fetchInto()......function.f
24980 65 74 63 68 49 6e 74 6f 28 24 72 65 73 75 6c 74 2c 20 26 24 61 72 2c 20 24 66 65 74 63 68 6d 6f etchInto($result,.&$ar,.$fetchmo
249a0 64 65 2c 20 24 72 6f 77 6e 75 6d 3d 6e 75 6c 6c 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 de,.$rownum=null).....{.........
249c0 69 66 20 28 24 72 6f 77 6e 75 6d 20 21 3d 3d 20 6e 75 6c 6c 29 20 7b 0a 20 20 20 20 20 20 20 20 if.($rownum.!==.null).{.........
249e0 20 20 20 20 69 66 20 28 21 40 6d 73 73 71 6c 5f 64 61 74 61 5f 73 65 65 6b 28 24 72 65 73 75 6c ....if.(!@mssql_data_seek($resul
24a00 74 2c 20 24 72 6f 77 6e 75 6d 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 t,.$rownum)).{.................r
24a20 65 74 75 72 6e 20 6e 75 6c 6c 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 eturn.null;.............}.......
24a40 20 20 7d 0a 20 20 20 20 20 20 20 20 69 66 20 28 24 66 65 74 63 68 6d 6f 64 65 20 26 20 44 42 5f ..}.........if.($fetchmode.&.DB_
24a60 46 45 54 43 48 4d 4f 44 45 5f 41 53 53 4f 43 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 FETCHMODE_ASSOC).{.............$
24a80 61 72 20 3d 20 40 6d 73 73 71 6c 5f 66 65 74 63 68 5f 61 72 72 61 79 28 24 72 65 73 75 6c 74 2c ar.=.@mssql_fetch_array($result,
24aa0 20 4d 53 53 51 4c 5f 41 53 53 4f 43 29 3b 0a 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a .MSSQL_ASSOC);.........}.else.{.
24ac0 20 20 20 20 20 20 20 20 20 20 20 20 24 61 72 20 3d 20 40 6d 73 73 71 6c 5f 66 65 74 63 68 5f 72 ............$ar.=.@mssql_fetch_r
24ae0 6f 77 28 24 72 65 73 75 6c 74 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 69 ow($result);.........}.........i
24b00 66 20 28 21 24 61 72 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2a 20 54 68 69 73 20 74 f.(!$ar).{............./*.This.t
24b20 68 72 6f 77 73 20 69 6e 66 6f 72 6d 61 74 69 76 65 20 65 72 72 6f 72 20 6d 65 73 73 61 67 65 73 hrows.informative.error.messages
24b40 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 64 6f 6e 27 74 20 75 73 65 20 69 74 20 66 6f ,................don't.use.it.fo
24b60 72 20 6e 6f 77 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 24 6d 73 67 20 3d 20 6d 73 73 r.now.............if.($msg.=.mss
24b80 71 6c 5f 67 65 74 5f 6c 61 73 74 5f 6d 65 73 73 61 67 65 28 29 29 20 7b 0a 20 20 20 20 20 20 20 ql_get_last_message()).{........
24ba0 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 61 69 73 65 45 72 72 6f .........return.$this->raiseErro
24bc0 72 28 24 6d 73 67 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 r($msg);.............}..........
24be0 20 20 20 2a 2f 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 6e 75 6c 6c 3b 0a 20 ...*/.............return.null;..
24c00 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 44 42 5f 4f 4b 3b 0a 20 .......}.........return.DB_OK;..
24c20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 66 72 65 65 ...}......//.}}}.....//.{{{.free
24c40 52 65 73 75 6c 74 28 29 0a 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 66 72 65 65 52 65 73 75 6c Result()......function.freeResul
24c60 74 28 24 72 65 73 75 6c 74 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 69 66 20 28 69 73 5f t($result).....{.........if.(is_
24c80 72 65 73 6f 75 72 63 65 28 24 72 65 73 75 6c 74 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 resource($result)).{............
24ca0 20 72 65 74 75 72 6e 20 40 6d 73 73 71 6c 5f 66 72 65 65 5f 72 65 73 75 6c 74 28 24 72 65 73 75 .return.@mssql_free_result($resu
24cc0 6c 74 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 69 66 20 28 21 69 73 73 65 lt);.........}.........if.(!isse
24ce0 74 28 24 74 68 69 73 2d 3e 70 72 65 70 61 72 65 5f 74 6f 6b 65 6e 73 5b 24 72 65 73 75 6c 74 5d t($this->prepare_tokens[$result]
24d00 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 20 )).{.............return.false;..
24d20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 70 72 .......}.........unset($this->pr
24d40 65 70 61 72 65 5f 74 6f 6b 65 6e 73 5b 24 72 65 73 75 6c 74 5d 29 3b 0a 20 20 20 20 20 20 20 20 epare_tokens[$result]);.........
24d60 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 70 72 65 70 61 72 65 5f 74 79 70 65 73 5b 24 72 65 73 75 unset($this->prepare_types[$resu
24d80 6c 74 5d 29 3b 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 20 20 20 20 7d lt]);.........return.true;.....}
24da0 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 6e 75 6d 43 6f 6c 73 28 ......//.}}}.....//.{{{.numCols(
24dc0 29 0a 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 6e 75 6d 43 6f 6c 73 28 24 72 65 73 75 6c 74 29 )......function.numCols($result)
24de0 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 24 63 6f 6c 73 20 3d 20 40 6d 73 73 71 6c 5f 6e 75 .....{.........$cols.=.@mssql_nu
24e00 6d 5f 66 69 65 6c 64 73 28 24 72 65 73 75 6c 74 29 3b 0a 20 20 20 20 20 20 20 20 69 66 20 28 21 m_fields($result);.........if.(!
24e20 24 63 6f 6c 73 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 $cols).{.............return.$thi
24e40 73 2d 3e 6d 73 73 71 6c 52 61 69 73 65 45 72 72 6f 72 28 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a s->mssqlRaiseError();.........}.
24e60 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 63 6f 6c 73 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 ........return.$cols;.....}.....
24e80 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 6e 75 6d 52 6f 77 73 28 29 0a 0a 20 20 .//.}}}.....//.{{{.numRows()....
24ea0 20 20 66 75 6e 63 74 69 6f 6e 20 6e 75 6d 52 6f 77 73 28 24 72 65 73 75 6c 74 29 0a 20 20 20 20 ..function.numRows($result).....
24ec0 7b 0a 20 20 20 20 20 20 20 20 24 72 6f 77 73 20 3d 20 40 6d 73 73 71 6c 5f 6e 75 6d 5f 72 6f 77 {.........$rows.=.@mssql_num_row
24ee0 73 28 24 72 65 73 75 6c 74 29 3b 0a 20 20 20 20 20 20 20 20 69 66 20 28 24 72 6f 77 73 20 3d 3d s($result);.........if.($rows.==
24f00 3d 20 66 61 6c 73 65 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 =.false).{.............return.$t
24f20 68 69 73 2d 3e 6d 73 73 71 6c 52 61 69 73 65 45 72 72 6f 72 28 29 3b 0a 20 20 20 20 20 20 20 20 his->mssqlRaiseError();.........
24f40 7d 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 72 6f 77 73 3b 0a 20 20 20 20 7d 0a 0a 20 }.........return.$rows;.....}...
24f60 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 61 75 74 6f 43 6f 6d 6d 69 74 28 ...//.}}}.....//.{{{.autoCommit(
24f80 29 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 45 6e 61 62 6c 65 2f 64 69 73 61 62 6c 65 )....../**......*.Enable/disable
24fa0 20 61 75 74 6f 6d 61 74 69 63 20 63 6f 6d 6d 69 74 73 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 66 .automatic.commits......*/.....f
24fc0 75 6e 63 74 69 6f 6e 20 61 75 74 6f 43 6f 6d 6d 69 74 28 24 6f 6e 6f 66 66 20 3d 20 66 61 6c 73 unction.autoCommit($onoff.=.fals
24fe0 65 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 2f 2f 20 58 58 58 20 69 66 20 24 74 68 69 73 e).....{.........//.XXX.if.$this
25000 2d 3e 74 72 61 6e 73 61 63 74 69 6f 6e 5f 6f 70 63 6f 75 6e 74 20 3e 20 30 2c 20 77 65 20 73 68 ->transaction_opcount.>.0,.we.sh
25020 6f 75 6c 64 20 70 72 6f 62 61 62 6c 79 0a 20 20 20 20 20 20 20 20 2f 2f 20 69 73 73 75 65 20 61 ould.probably.........//.issue.a
25040 20 77 61 72 6e 69 6e 67 20 68 65 72 65 2e 0a 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 61 75 .warning.here..........$this->au
25060 74 6f 63 6f 6d 6d 69 74 20 3d 20 24 6f 6e 6f 66 66 20 3f 20 74 72 75 65 20 3a 20 66 61 6c 73 65 tocommit.=.$onoff.?.true.:.false
25080 3b 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 44 42 5f 4f 4b 3b 0a 20 20 20 20 7d 0a 0a 20 ;.........return.DB_OK;.....}...
250a0 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 63 6f 6d 6d 69 74 28 29 0a 0a 20 ...//.}}}.....//.{{{.commit()...
250c0 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 43 6f 6d 6d 69 74 20 74 68 65 20 63 75 72 72 65 6e 74 .../**......*.Commit.the.current
250e0 20 74 72 61 6e 73 61 63 74 69 6f 6e 2e 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 66 75 6e 63 74 69 .transaction.......*/.....functi
25100 6f 6e 20 63 6f 6d 6d 69 74 28 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 69 66 20 28 24 74 on.commit().....{.........if.($t
25120 68 69 73 2d 3e 74 72 61 6e 73 61 63 74 69 6f 6e 5f 6f 70 63 6f 75 6e 74 20 3e 20 30 29 20 7b 0a his->transaction_opcount.>.0).{.
25140 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 21 40 6d 73 73 71 6c 5f 73 65 6c 65 63 74 5f 64 ............if.(!@mssql_select_d
25160 62 28 24 74 68 69 73 2d 3e 5f 64 62 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 6e 65 63 74 69 6f 6e 29 b($this->_db,.$this->connection)
25180 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 ).{.................return.$this
251a0 2d 3e 6d 73 73 71 6c 52 61 69 73 65 45 72 72 6f 72 28 44 42 5f 45 52 52 4f 52 5f 4e 4f 44 42 53 ->mssqlRaiseError(DB_ERROR_NODBS
251c0 45 4c 45 43 54 45 44 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 ELECTED);.............}.........
251e0 20 20 20 20 24 72 65 73 75 6c 74 20 3d 20 40 6d 73 73 71 6c 5f 71 75 65 72 79 28 27 43 4f 4d 4d ....$result.=.@mssql_query('COMM
25200 49 54 20 54 52 41 4e 27 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 6e 65 63 74 69 6f 6e 29 3b 0a 20 20 IT.TRAN',.$this->connection);...
25220 20 20 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 74 72 61 6e 73 61 63 74 69 6f 6e 5f 6f 70 63 ..........$this->transaction_opc
25240 6f 75 6e 74 20 3d 20 30 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 21 24 72 65 73 75 ount.=.0;.............if.(!$resu
25260 6c 74 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 lt).{.................return.$th
25280 69 73 2d 3e 6d 73 73 71 6c 52 61 69 73 65 45 72 72 6f 72 28 29 3b 0a 20 20 20 20 20 20 20 20 20 is->mssqlRaiseError();..........
252a0 20 20 20 7d 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 44 42 ...}.........}.........return.DB
252c0 5f 4f 4b 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b _OK;.....}......//.}}}.....//.{{
252e0 7b 20 72 6f 6c 6c 62 61 63 6b 28 29 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 52 6f 6c {.rollback()....../**......*.Rol
25300 6c 20 62 61 63 6b 20 28 75 6e 64 6f 29 20 74 68 65 20 63 75 72 72 65 6e 74 20 74 72 61 6e 73 61 l.back.(undo).the.current.transa
25320 63 74 69 6f 6e 2e 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 72 6f 6c 6c ction.......*/.....function.roll
25340 62 61 63 6b 28 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 69 66 20 28 24 74 68 69 73 2d 3e back().....{.........if.($this->
25360 74 72 61 6e 73 61 63 74 69 6f 6e 5f 6f 70 63 6f 75 6e 74 20 3e 20 30 29 20 7b 0a 20 20 20 20 20 transaction_opcount.>.0).{......
25380 20 20 20 20 20 20 20 69 66 20 28 21 40 6d 73 73 71 6c 5f 73 65 6c 65 63 74 5f 64 62 28 24 74 68 .......if.(!@mssql_select_db($th
253a0 69 73 2d 3e 5f 64 62 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 6e 65 63 74 69 6f 6e 29 29 20 7b 0a 20 is->_db,.$this->connection)).{..
253c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6d 73 73 ...............return.$this->mss
253e0 71 6c 52 61 69 73 65 45 72 72 6f 72 28 44 42 5f 45 52 52 4f 52 5f 4e 4f 44 42 53 45 4c 45 43 54 qlRaiseError(DB_ERROR_NODBSELECT
25400 45 44 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 ED);.............}.............$
25420 72 65 73 75 6c 74 20 3d 20 40 6d 73 73 71 6c 5f 71 75 65 72 79 28 27 52 4f 4c 4c 42 41 43 4b 20 result.=.@mssql_query('ROLLBACK.
25440 54 52 41 4e 27 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 6e 65 63 74 69 6f 6e 29 3b 0a 20 20 20 20 20 TRAN',.$this->connection);......
25460 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 74 72 61 6e 73 61 63 74 69 6f 6e 5f 6f 70 63 6f 75 6e .......$this->transaction_opcoun
25480 74 20 3d 20 30 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 21 24 72 65 73 75 6c 74 29 t.=.0;.............if.(!$result)
254a0 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d .{.................return.$this-
254c0 3e 6d 73 73 71 6c 52 61 69 73 65 45 72 72 6f 72 28 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 >mssqlRaiseError();.............
254e0 7d 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 44 42 5f 4f 4b }.........}.........return.DB_OK
25500 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 61 ;.....}......//.}}}.....//.{{{.a
25520 66 66 65 63 74 65 64 52 6f 77 73 28 29 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 47 65 ffectedRows()....../**......*.Ge
25540 74 73 20 74 68 65 20 6e 75 6d 62 65 72 20 6f 66 20 72 6f 77 73 20 61 66 66 65 63 74 65 64 20 62 ts.the.number.of.rows.affected.b
25560 79 20 74 68 65 20 6c 61 73 74 20 71 75 65 72 79 2e 0a 20 20 20 20 20 2a 20 69 66 20 74 68 65 20 y.the.last.query.......*.if.the.
25580 6c 61 73 74 20 71 75 65 72 79 20 77 61 73 20 61 20 73 65 6c 65 63 74 2c 20 72 65 74 75 72 6e 73 last.query.was.a.select,.returns
255a0 20 30 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 72 65 74 75 72 6e 20 6e 75 6d 62 65 72 .0.......*......*.@return.number
255c0 20 6f 66 20 72 6f 77 73 20 61 66 66 65 63 74 65 64 20 62 79 20 74 68 65 20 6c 61 73 74 20 71 75 .of.rows.affected.by.the.last.qu
255e0 65 72 79 20 6f 72 20 44 42 5f 45 52 52 4f 52 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 66 75 6e 63 ery.or.DB_ERROR......*/.....func
25600 74 69 6f 6e 20 61 66 66 65 63 74 65 64 52 6f 77 73 28 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 tion.affectedRows().....{.......
25620 20 20 69 66 20 28 44 42 3a 3a 69 73 4d 61 6e 69 70 28 24 74 68 69 73 2d 3e 6c 61 73 74 5f 71 75 ..if.(DB::isManip($this->last_qu
25640 65 72 79 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 72 65 73 20 3d 20 40 6d 73 73 71 ery)).{.............$res.=.@mssq
25660 6c 5f 71 75 65 72 79 28 27 73 65 6c 65 63 74 20 40 40 72 6f 77 63 6f 75 6e 74 27 2c 20 24 74 68 l_query('select.@@rowcount',.$th
25680 69 73 2d 3e 63 6f 6e 6e 65 63 74 69 6f 6e 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 is->connection);.............if.
256a0 28 21 24 72 65 73 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e (!$res).{.................return
256c0 20 24 74 68 69 73 2d 3e 6d 73 73 71 6c 52 61 69 73 65 45 72 72 6f 72 28 29 3b 0a 20 20 20 20 20 .$this->mssqlRaiseError();......
256e0 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 61 72 20 3d 20 40 6d 73 73 71 .......}.............$ar.=.@mssq
25700 6c 5f 66 65 74 63 68 5f 72 6f 77 28 24 72 65 73 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 l_fetch_row($res);.............i
25720 66 20 28 21 24 61 72 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 72 65 73 75 f.(!$ar).{.................$resu
25740 6c 74 20 3d 20 30 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20 20 lt.=.0;.............}.else.{....
25760 20 20 20 20 20 20 20 20 20 20 20 20 20 40 6d 73 73 71 6c 5f 66 72 65 65 5f 72 65 73 75 6c 74 28 .............@mssql_free_result(
25780 24 72 65 73 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 72 65 73 75 6c 74 20 3d $res);.................$result.=
257a0 20 24 61 72 5b 30 5d 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 7d .$ar[0];.............}.........}
257c0 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 72 65 73 75 6c 74 20 3d 20 30 3b .else.{.............$result.=.0;
257e0 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 72 65 73 75 6c .........}.........return.$resul
25800 74 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 t;.....}......//.}}}.....//.{{{.
25820 6e 65 78 74 49 64 28 29 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 47 65 74 20 74 68 65 nextId()....../**......*.Get.the
25840 20 6e 65 78 74 20 76 61 6c 75 65 20 69 6e 20 61 20 73 65 71 75 65 6e 63 65 2e 20 20 57 65 20 65 .next.value.in.a.sequence...We.e
25860 6d 75 6c 61 74 65 20 73 65 71 75 65 6e 63 65 73 0a 20 20 20 20 20 2a 20 66 6f 72 20 4d 53 53 51 mulate.sequences......*.for.MSSQ
25880 4c 2e 20 20 57 69 6c 6c 20 63 72 65 61 74 65 20 74 68 65 20 73 65 71 75 65 6e 63 65 20 69 66 20 L...Will.create.the.sequence.if.
258a0 69 74 20 64 6f 65 73 20 6e 6f 74 20 65 78 69 73 74 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a it.does.not.exist.......*......*
258c0 20 40 61 63 63 65 73 73 20 70 75 62 6c 69 63 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 70 .@access.public......*......*.@p
258e0 61 72 61 6d 20 24 73 65 71 5f 6e 61 6d 65 20 74 68 65 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 73 aram.$seq_name.the.name.of.the.s
25900 65 71 75 65 6e 63 65 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 24 6f 6e equence......*......*.@param.$on
25920 64 65 6d 61 6e 64 20 77 68 65 74 68 65 72 20 74 6f 20 63 72 65 61 74 65 20 74 68 65 20 73 65 71 demand.whether.to.create.the.seq
25940 75 65 6e 63 65 20 74 61 62 6c 65 20 6f 6e 20 64 65 6d 61 6e 64 0a 20 20 20 20 20 2a 20 28 64 65 uence.table.on.demand......*.(de
25960 66 61 75 6c 74 20 69 73 20 74 72 75 65 29 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 72 65 fault.is.true)......*......*.@re
25980 74 75 72 6e 20 61 20 73 65 71 75 65 6e 63 65 20 69 6e 74 65 67 65 72 2c 20 6f 72 20 61 20 44 42 turn.a.sequence.integer,.or.a.DB
259a0 20 65 72 72 6f 72 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 6e 65 78 74 .error......*/.....function.next
259c0 49 64 28 24 73 65 71 5f 6e 61 6d 65 2c 20 24 6f 6e 64 65 6d 61 6e 64 20 3d 20 74 72 75 65 29 0a Id($seq_name,.$ondemand.=.true).
259e0 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 24 73 65 71 6e 61 6d 65 20 3d 20 24 74 68 69 73 2d 3e ....{.........$seqname.=.$this->
25a00 67 65 74 53 65 71 75 65 6e 63 65 4e 61 6d 65 28 24 73 65 71 5f 6e 61 6d 65 29 3b 0a 20 20 20 20 getSequenceName($seq_name);.....
25a20 20 20 20 20 69 66 20 28 21 40 6d 73 73 71 6c 5f 73 65 6c 65 63 74 5f 64 62 28 24 74 68 69 73 2d ....if.(!@mssql_select_db($this-
25a40 3e 5f 64 62 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 6e 65 63 74 69 6f 6e 29 29 20 7b 0a 20 20 20 20 >_db,.$this->connection)).{.....
25a60 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6d 73 73 71 6c 52 61 69 73 65 ........return.$this->mssqlRaise
25a80 45 72 72 6f 72 28 44 42 5f 45 52 52 4f 52 5f 4e 4f 44 42 53 45 4c 45 43 54 45 44 29 3b 0a 20 20 Error(DB_ERROR_NODBSELECTED);...
25aa0 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 24 72 65 70 65 61 74 20 3d 20 30 3b 0a 20 20 20 ......}.........$repeat.=.0;....
25ac0 20 20 20 20 20 64 6f 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 70 75 73 .....do.{.............$this->pus
25ae0 68 45 72 72 6f 72 48 61 6e 64 6c 69 6e 67 28 50 45 41 52 5f 45 52 52 4f 52 5f 52 45 54 55 52 4e hErrorHandling(PEAR_ERROR_RETURN
25b00 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 72 65 73 75 6c 74 20 3d 20 24 74 68 69 73 2d 3e );.............$result.=.$this->
25b20 71 75 65 72 79 28 22 49 4e 53 45 52 54 20 49 4e 54 4f 20 24 73 65 71 6e 61 6d 65 20 28 76 61 70 query("INSERT.INTO.$seqname.(vap
25b40 6f 72 29 20 56 41 4c 55 45 53 20 28 30 29 22 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 74 or).VALUES.(0)");.............$t
25b60 68 69 73 2d 3e 70 6f 70 45 72 72 6f 72 48 61 6e 64 6c 69 6e 67 28 29 3b 0a 20 20 20 20 20 20 20 his->popErrorHandling();........
25b80 20 20 20 20 20 69 66 20 28 24 6f 6e 64 65 6d 61 6e 64 20 26 26 20 44 42 3a 3a 69 73 45 72 72 6f .....if.($ondemand.&&.DB::isErro
25ba0 72 28 24 72 65 73 75 6c 74 29 20 26 26 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 24 r($result).&&.................($
25bc0 72 65 73 75 6c 74 2d 3e 67 65 74 43 6f 64 65 28 29 20 3d 3d 20 44 42 5f 45 52 52 4f 52 20 7c 7c result->getCode().==.DB_ERROR.||
25be0 20 24 72 65 73 75 6c 74 2d 3e 67 65 74 43 6f 64 65 28 29 20 3d 3d 20 44 42 5f 45 52 52 4f 52 5f .$result->getCode().==.DB_ERROR_
25c00 4e 4f 53 55 43 48 54 41 42 4c 45 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 20 NOSUCHTABLE)).............{.....
25c20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 72 65 70 65 61 74 20 3d 20 31 3b 0a 20 20 20 20 20 20 .............$repeat.=.1;.......
25c40 20 20 20 20 20 20 20 20 20 20 24 72 65 73 75 6c 74 20 3d 20 24 74 68 69 73 2d 3e 63 72 65 61 74 ..........$result.=.$this->creat
25c60 65 53 65 71 75 65 6e 63 65 28 24 73 65 71 5f 6e 61 6d 65 29 3b 0a 20 20 20 20 20 20 20 20 20 20 eSequence($seq_name);...........
25c80 20 20 20 20 20 20 69 66 20 28 44 42 3a 3a 69 73 45 72 72 6f 72 28 24 72 65 73 75 6c 74 29 29 20 ......if.(DB::isError($result)).
25ca0 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 {.....................return.$th
25cc0 69 73 2d 3e 72 61 69 73 65 45 72 72 6f 72 28 24 72 65 73 75 6c 74 29 3b 0a 20 20 20 20 20 20 20 is->raiseError($result);........
25ce0 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 69 66 20 .........}.............}.elseif.
25d00 28 21 44 42 3a 3a 69 73 45 72 72 6f 72 28 24 72 65 73 75 6c 74 29 29 20 7b 0d 0a 20 20 20 20 20 (!DB::isError($result)).{.......
25d20 20 20 20 20 20 20 20 20 20 20 20 24 72 65 73 75 6c 74 20 3d 20 24 74 68 69 73 2d 3e 71 75 65 72 ...........$result.=.$this->quer
25d40 79 28 22 53 45 4c 45 43 54 20 40 40 49 44 45 4e 54 49 54 59 20 46 52 4f 4d 20 24 73 65 71 6e 61 y("SELECT.@@IDENTITY.FROM.$seqna
25d60 6d 65 22 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 72 65 70 65 61 74 20 3d 20 me");.................$repeat.=.
25d80 30 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 0d 0a 20 20 20 20 20 20 20 0;.............}.else.{.........
25da0 20 20 20 20 20 20 20 20 20 24 72 65 70 65 61 74 20 3d 20 66 61 6c 73 65 3b 0d 0a 20 20 20 20 20 .........$repeat.=.false;.......
25dc0 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 7d 20 77 68 69 6c 65 20 28 24 72 65 70 65 61 .......}.........}.while.($repea
25de0 74 29 3b 0a 20 20 20 20 20 20 20 20 69 66 20 28 44 42 3a 3a 69 73 45 72 72 6f 72 28 24 72 65 73 t);.........if.(DB::isError($res
25e00 75 6c 74 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 ult)).{.............return.$this
25e20 2d 3e 72 61 69 73 65 45 72 72 6f 72 28 24 72 65 73 75 6c 74 29 3b 0a 20 20 20 20 20 20 20 20 7d ->raiseError($result);.........}
25e40 0a 20 20 20 20 20 20 20 20 24 72 65 73 75 6c 74 20 3d 20 24 72 65 73 75 6c 74 2d 3e 66 65 74 63 .........$result.=.$result->fetc
25e60 68 52 6f 77 28 44 42 5f 46 45 54 43 48 4d 4f 44 45 5f 4f 52 44 45 52 45 44 29 3b 0a 20 20 20 20 hRow(DB_FETCHMODE_ORDERED);.....
25e80 20 20 20 20 72 65 74 75 72 6e 20 24 72 65 73 75 6c 74 5b 30 5d 3b 0a 20 20 20 20 7d 0a 0a 20 20 ....return.$result[0];.....}....
25ea0 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 63 72 65 61 74 65 53 65 71 75 65 6e ..//.}}}.....//.{{{.createSequen
25ec0 63 65 28 29 0a 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 63 72 65 61 74 65 53 65 71 75 65 6e 63 ce()......function.createSequenc
25ee0 65 28 24 73 65 71 5f 6e 61 6d 65 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 24 73 65 71 6e e($seq_name).....{.........$seqn
25f00 61 6d 65 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 53 65 71 75 65 6e 63 65 4e 61 6d 65 28 24 73 65 ame.=.$this->getSequenceName($se
25f20 71 5f 6e 61 6d 65 29 3b 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 71 q_name);.........return.$this->q
25f40 75 65 72 79 28 22 43 52 45 41 54 45 20 54 41 42 4c 45 20 24 73 65 71 6e 61 6d 65 20 22 2e 0a 20 uery("CREATE.TABLE.$seqname."...
25f60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 28 5b 69 64 ...........................'([id
25f80 5d 20 5b 69 6e 74 5d 20 49 44 45 4e 54 49 54 59 20 28 31 2c 20 31 29 20 4e 4f 54 20 4e 55 4c 4c ].[int].IDENTITY.(1,.1).NOT.NULL
25fa0 20 2c 27 20 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .,'.............................
25fc0 20 20 27 5b 76 61 70 6f 72 5d 20 5b 69 6e 74 5d 20 4e 55 4c 4c 29 27 29 3b 0a 20 20 20 20 7d 0a ..'[vapor].[int].NULL)');.....}.
25fe0 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 64 72 6f 70 53 65 71 75 65 6e ....//.}}}.....//.{{{.dropSequen
26000 63 65 28 29 0a 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 64 72 6f 70 53 65 71 75 65 6e 63 65 28 ce()......function.dropSequence(
26020 24 73 65 71 5f 6e 61 6d 65 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 24 73 65 71 6e 61 6d $seq_name).....{.........$seqnam
26040 65 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 53 65 71 75 65 6e 63 65 4e 61 6d 65 28 24 73 65 71 5f e.=.$this->getSequenceName($seq_
26060 6e 61 6d 65 29 3b 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 71 75 65 name);.........return.$this->que
26080 72 79 28 22 44 52 4f 50 20 54 41 42 4c 45 20 24 73 65 71 6e 61 6d 65 22 29 3b 0a 20 20 20 20 7d ry("DROP.TABLE.$seqname");.....}
260a0 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 65 72 72 6f 72 43 6f 64 65 .....//.}}}.....//.{{{.errorCode
260c0 28 29 0a 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 65 72 72 6f 72 43 6f 64 65 28 29 0a 20 20 20 ()......function.errorCode()....
260e0 20 7b 0a 20 20 20 20 20 20 20 24 72 65 73 20 3d 20 6d 73 73 71 6c 5f 71 75 65 72 79 28 27 73 65 .{........$res.=.mssql_query('se
26100 6c 65 63 74 20 40 40 45 52 52 4f 52 20 61 73 20 45 72 72 6f 72 43 6f 64 65 27 2c 20 24 74 68 69 lect.@@ERROR.as.ErrorCode',.$thi
26120 73 2d 3e 63 6f 6e 6e 65 63 74 69 6f 6e 29 3b 0a 20 20 20 20 20 20 20 69 66 20 28 21 24 72 65 73 s->connection);........if.(!$res
26140 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 44 42 5f 45 52 52 4f 52 3b 0a ).{............return.DB_ERROR;.
26160 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 24 72 6f 77 20 3d 20 6d 73 73 71 6c 5f 66 65 74 .......}........$row.=.mssql_fet
26180 63 68 5f 72 6f 77 28 24 72 65 73 29 3b 0a 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 72 6f 77 ch_row($res);........return.$row
261a0 5b 30 5d 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b [0];.....}......//.}}}.....//.{{
261c0 7b 20 6d 73 73 71 6c 52 61 69 73 65 45 72 72 6f 72 28 29 0a 0a 20 20 20 20 66 75 6e 63 74 69 6f {.mssqlRaiseError()......functio
261e0 6e 20 6d 73 73 71 6c 52 61 69 73 65 45 72 72 6f 72 28 24 63 6f 64 65 20 3d 20 6e 75 6c 6c 29 0a n.mssqlRaiseError($code.=.null).
26200 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 20 24 6e 61 74 69 76 65 5f 6d 73 67 20 3d 20 6d 73 73 ....{..........$native_msg.=.mss
26220 71 6c 5f 67 65 74 5f 6c 61 73 74 5f 6d 65 73 73 61 67 65 28 29 3b 0a 20 20 20 20 20 20 20 20 24 ql_get_last_message();.........$
26240 6e 61 74 69 76 65 5f 63 6f 64 65 20 3d 20 24 74 68 69 73 2d 3e 65 72 72 6f 72 43 6f 64 65 28 29 native_code.=.$this->errorCode()
26260 3b 0a 20 20 20 20 20 20 20 20 69 66 20 28 24 63 6f 64 65 20 3d 3d 3d 20 6e 75 6c 6c 29 20 7b 0d ;.........if.($code.===.null).{.
26280 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 65 72 .............if.(isset($this->er
262a0 72 6f 72 63 6f 64 65 5f 6d 61 70 5b 24 6e 61 74 69 76 65 5f 63 6f 64 65 5d 29 29 20 7b 0d 0a 20 rorcode_map[$native_code])).{...
262c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 63 6f 64 65 20 3d 20 24 74 68 69 73 2d 3e 65 72 ...............$code.=.$this->er
262e0 72 6f 72 63 6f 64 65 5f 6d 61 70 5b 24 6e 61 74 69 76 65 5f 63 6f 64 65 5d 3b 0d 0a 20 20 20 20 rorcode_map[$native_code];......
26300 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ........}.else.{................
26320 20 20 24 63 6f 64 65 20 3d 20 44 42 5f 45 52 52 4f 52 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 ..$code.=.DB_ERROR;.............
26340 20 7d 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 .}.........}.........return.$thi
26360 73 2d 3e 72 61 69 73 65 45 72 72 6f 72 28 24 63 6f 64 65 2c 20 6e 75 6c 6c 2c 20 6e 75 6c 6c 2c s->raiseError($code,.null,.null,
26380 20 6e 75 6c 6c 2c 20 24 6e 61 74 69 76 65 5f 63 6f 64 65 20 2e 20 27 20 2d 20 27 20 2e 20 24 6e .null,.$native_code...'.-.'...$n
263a0 61 74 69 76 65 5f 6d 73 67 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 ative_msg);.....}......//.}}}...
263c0 20 20 2f 2f 20 7b 7b 7b 20 74 61 62 6c 65 49 6e 66 6f 28 29 0a 0a 20 20 2f 2a 2a 0a 0a 20 20 20 ..//.{{{.tableInfo()..../**.....
263e0 20 20 2a 20 52 65 74 75 72 6e 73 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 61 62 6f 75 74 20 61 20 ..*.Returns.information.about.a.
26400 74 61 62 6c 65 20 6f 72 20 61 20 72 65 73 75 6c 74 20 73 65 74 0a 20 20 20 20 20 2a 0a 20 20 20 table.or.a.result.set......*....
26420 20 20 2a 20 4e 4f 54 45 3a 20 64 6f 65 73 6e 27 74 20 73 75 70 70 6f 72 74 20 74 61 62 6c 65 20 ..*.NOTE:.doesn't.support.table.
26440 6e 61 6d 65 20 61 6e 64 20 66 6c 61 67 73 20 69 66 20 63 61 6c 6c 65 64 20 66 72 6f 6d 20 61 20 name.and.flags.if.called.from.a.
26460 64 62 5f 72 65 73 75 6c 74 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 20 db_result......*......*.@param..
26480 6d 69 78 65 64 20 24 72 65 73 6f 75 72 63 65 20 53 51 4c 20 53 65 72 76 65 72 20 72 65 73 75 6c mixed.$resource.SQL.Server.resul
264a0 74 20 69 64 65 6e 74 69 66 69 65 72 20 6f 72 20 74 61 62 6c 65 20 6e 61 6d 65 0a 20 20 20 20 20 t.identifier.or.table.name......
264c0 2a 20 40 70 61 72 61 6d 20 20 69 6e 74 20 24 6d 6f 64 65 20 41 20 76 61 6c 69 64 20 74 61 62 6c *.@param..int.$mode.A.valid.tabl
264e0 65 49 6e 66 6f 20 6d 6f 64 65 20 28 44 42 5f 54 41 42 4c 45 49 4e 46 4f 5f 4f 52 44 45 52 54 41 eInfo.mode.(DB_TABLEINFO_ORDERTA
26500 42 4c 45 20 6f 72 0a 20 20 20 20 20 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 BLE.or......*...................
26520 44 42 5f 54 41 42 4c 45 49 4e 46 4f 5f 4f 52 44 45 52 29 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 DB_TABLEINFO_ORDER)......*......
26540 2a 20 40 72 65 74 75 72 6e 20 61 72 72 61 79 20 41 6e 20 61 72 72 61 79 20 77 69 74 68 20 61 6c *.@return.array.An.array.with.al
26560 6c 20 74 68 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 0a 20 20 20 20 20 2a 2f 0a 0a 20 20 20 20 66 l.the.information......*/......f
26580 75 6e 63 74 69 6f 6e 20 74 61 62 6c 65 49 6e 66 6f 28 24 72 65 73 75 6c 74 2c 20 24 6d 6f 64 65 unction.tableInfo($result,.$mode
265a0 20 3d 20 6e 75 6c 6c 29 0a 20 20 20 20 7b 0a 0a 20 20 20 20 20 20 20 20 24 63 6f 75 6e 74 20 3d .=.null).....{..........$count.=
265c0 20 30 3b 0a 20 20 20 20 20 20 20 20 24 69 64 20 20 20 20 3d 20 30 3b 0a 20 20 20 20 20 20 20 20 .0;.........$id....=.0;.........
265e0 24 72 65 73 20 20 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 20 20 20 20 20 20 20 20 2f 2a 0a 20 20 $res...=.array();........../*...
26600 20 20 20 20 20 20 20 2a 20 64 65 70 65 6e 64 69 6e 67 20 6f 6e 20 24 6d 6f 64 65 2c 20 6d 65 74 .......*.depending.on.$mode,.met
26620 61 64 61 74 61 20 72 65 74 75 72 6e 73 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 76 61 6c 75 adata.returns.the.following.valu
26640 65 73 3a 0a 20 20 20 20 20 20 20 20 20 2a 0a 20 20 20 20 20 20 20 20 20 2a 20 2d 20 6d 6f 64 65 es:..........*..........*.-.mode
26660 20 69 73 20 66 61 6c 73 65 20 28 64 65 66 61 75 6c 74 29 3a 0a 20 20 20 20 20 20 20 20 20 2a 20 .is.false.(default):..........*.
26680 24 72 65 73 75 6c 74 5b 5d 3a 0a 20 20 20 20 20 20 20 20 20 2a 20 20 20 5b 30 5d 5b 22 74 61 62 $result[]:..........*...[0]["tab
266a0 6c 65 22 5d 20 20 74 61 62 6c 65 20 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 2a 20 20 20 5b 30 le"]..table.name..........*...[0
266c0 5d 5b 22 6e 61 6d 65 22 5d 20 20 20 66 69 65 6c 64 20 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 ]["name"]...field.name..........
266e0 2a 20 20 20 5b 30 5d 5b 22 74 79 70 65 22 5d 20 20 20 66 69 65 6c 64 20 74 79 70 65 0a 20 20 20 *...[0]["type"]...field.type....
26700 20 20 20 20 20 20 2a 20 20 20 5b 30 5d 5b 22 6c 65 6e 22 5d 20 20 20 20 66 69 65 6c 64 20 6c 65 ......*...[0]["len"]....field.le
26720 6e 67 74 68 0a 20 20 20 20 20 20 20 20 20 2a 20 20 20 5b 30 5d 5b 22 66 6c 61 67 73 22 5d 20 20 ngth..........*...[0]["flags"]..
26740 66 69 65 6c 64 20 66 6c 61 67 73 0a 20 20 20 20 20 20 20 20 20 2a 0a 20 20 20 20 20 20 20 20 20 field.flags..........*..........
26760 2a 20 2d 20 6d 6f 64 65 20 69 73 20 44 42 5f 54 41 42 4c 45 49 4e 46 4f 5f 4f 52 44 45 52 0a 20 *.-.mode.is.DB_TABLEINFO_ORDER..
26780 20 20 20 20 20 20 20 20 2a 20 24 72 65 73 75 6c 74 5b 5d 3a 0a 20 20 20 20 20 20 20 20 20 2a 20 ........*.$result[]:..........*.
267a0 20 20 5b 22 6e 75 6d 5f 66 69 65 6c 64 73 22 5d 20 6e 75 6d 62 65 72 20 6f 66 20 6d 65 74 61 64 ..["num_fields"].number.of.metad
267c0 61 74 61 20 72 65 63 6f 72 64 73 0a 20 20 20 20 20 20 20 20 20 2a 20 20 20 5b 30 5d 5b 22 74 61 ata.records..........*...[0]["ta
267e0 62 6c 65 22 5d 20 20 74 61 62 6c 65 20 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 2a 20 20 20 5b ble"]..table.name..........*...[
26800 30 5d 5b 22 6e 61 6d 65 22 5d 20 20 20 66 69 65 6c 64 20 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 0]["name"]...field.name.........
26820 20 2a 20 20 20 5b 30 5d 5b 22 74 79 70 65 22 5d 20 20 20 66 69 65 6c 64 20 74 79 70 65 0a 20 20 .*...[0]["type"]...field.type...
26840 20 20 20 20 20 20 20 2a 20 20 20 5b 30 5d 5b 22 6c 65 6e 22 5d 20 20 20 20 66 69 65 6c 64 20 6c .......*...[0]["len"]....field.l
26860 65 6e 67 74 68 0a 20 20 20 20 20 20 20 20 20 2a 20 20 20 5b 30 5d 5b 22 66 6c 61 67 73 22 5d 20 ength..........*...[0]["flags"].
26880 20 66 69 65 6c 64 20 66 6c 61 67 73 0a 20 20 20 20 20 20 20 20 20 2a 20 20 20 5b 22 6f 72 64 65 .field.flags..........*...["orde
268a0 72 22 5d 5b 66 69 65 6c 64 20 6e 61 6d 65 5d 20 20 69 6e 64 65 78 20 6f 66 20 66 69 65 6c 64 20 r"][field.name]..index.of.field.
268c0 6e 61 6d 65 64 20 22 66 69 65 6c 64 20 6e 61 6d 65 22 0a 20 20 20 20 20 20 20 20 20 2a 20 20 20 named."field.name"..........*...
268e0 54 68 65 20 6c 61 73 74 20 6f 6e 65 20 69 73 20 75 73 65 64 2c 20 69 66 20 79 6f 75 20 68 61 76 The.last.one.is.used,.if.you.hav
26900 65 20 61 20 66 69 65 6c 64 20 6e 61 6d 65 2c 20 62 75 74 20 6e 6f 20 69 6e 64 65 78 2e 0a 20 20 e.a.field.name,.but.no.index....
26920 20 20 20 20 20 20 20 2a 20 20 20 54 65 73 74 3a 20 20 69 66 20 28 69 73 73 65 74 28 24 72 65 73 .......*...Test:..if.(isset($res
26940 75 6c 74 5b 27 6d 65 74 61 27 5d 5b 27 6d 79 66 69 65 6c 64 27 5d 29 29 20 7b 20 2e 2e 2e 0a 20 ult['meta']['myfield'])).{......
26960 20 20 20 20 20 20 20 20 2a 0a 20 20 20 20 20 20 20 20 20 2a 20 2d 20 6d 6f 64 65 20 69 73 20 44 ........*..........*.-.mode.is.D
26980 42 5f 54 41 42 4c 45 49 4e 46 4f 5f 4f 52 44 45 52 54 41 42 4c 45 0a 20 20 20 20 20 20 20 20 20 B_TABLEINFO_ORDERTABLE..........
269a0 2a 20 20 20 20 74 68 65 20 73 61 6d 65 20 61 73 20 61 62 6f 76 65 2e 20 62 75 74 20 61 64 64 69 *....the.same.as.above..but.addi
269c0 74 69 6f 6e 61 6c 6c 79 0a 20 20 20 20 20 20 20 20 20 2a 20 20 20 5b 22 6f 72 64 65 72 74 61 62 tionally..........*...["ordertab
269e0 6c 65 22 5d 5b 74 61 62 6c 65 20 6e 61 6d 65 5d 5b 66 69 65 6c 64 20 6e 61 6d 65 5d 20 69 6e 64 le"][table.name][field.name].ind
26a00 65 78 20 6f 66 20 66 69 65 6c 64 0a 20 20 20 20 20 20 20 20 20 2a 20 20 20 20 20 20 6e 61 6d 65 ex.of.field..........*......name
26a20 64 20 22 66 69 65 6c 64 20 6e 61 6d 65 22 0a 20 20 20 20 20 20 20 20 20 2a 0a 20 20 20 20 20 20 d."field.name"..........*.......
26a40 20 20 20 2a 20 20 20 20 20 20 74 68 69 73 20 69 73 2c 20 62 65 63 61 75 73 65 20 69 66 20 79 6f ...*......this.is,.because.if.yo
26a60 75 20 68 61 76 65 20 66 69 65 6c 64 73 20 66 72 6f 6d 20 64 69 66 66 65 72 65 6e 74 0a 20 20 20 u.have.fields.from.different....
26a80 20 20 20 20 20 20 2a 20 20 20 20 20 20 74 61 62 6c 65 73 20 77 69 74 68 20 74 68 65 20 73 61 6d ......*......tables.with.the.sam
26aa0 65 20 66 69 65 6c 64 20 6e 61 6d 65 20 2a 20 74 68 65 79 20 6f 76 65 72 72 69 64 65 20 65 61 63 e.field.name.*.they.override.eac
26ac0 68 0a 20 20 20 20 20 20 20 20 20 2a 20 20 20 20 20 20 6f 74 68 65 72 20 77 69 74 68 20 44 42 5f h..........*......other.with.DB_
26ae0 54 41 42 4c 45 49 4e 46 4f 5f 4f 52 44 45 52 0a 20 20 20 20 20 20 20 20 20 2a 0a 20 20 20 20 20 TABLEINFO_ORDER..........*......
26b00 20 20 20 20 2a 20 20 20 20 20 20 79 6f 75 20 63 61 6e 20 63 6f 6d 62 69 6e 65 20 44 42 5f 54 41 ....*......you.can.combine.DB_TA
26b20 42 4c 45 49 4e 46 4f 5f 4f 52 44 45 52 20 61 6e 64 0a 20 20 20 20 20 20 20 20 20 2a 20 20 20 20 BLEINFO_ORDER.and..........*....
26b40 20 20 44 42 5f 54 41 42 4c 45 49 4e 46 4f 5f 4f 52 44 45 52 54 41 42 4c 45 20 77 69 74 68 20 44 ..DB_TABLEINFO_ORDERTABLE.with.D
26b60 42 5f 54 41 42 4c 45 49 4e 46 4f 5f 4f 52 44 45 52 20 7c 0a 20 20 20 20 20 20 20 20 20 2a 20 20 B_TABLEINFO_ORDER.|..........*..
26b80 20 20 20 20 44 42 5f 54 41 42 4c 45 49 4e 46 4f 5f 4f 52 44 45 52 54 41 42 4c 45 20 2a 20 6f 72 ....DB_TABLEINFO_ORDERTABLE.*.or
26ba0 20 77 69 74 68 20 44 42 5f 54 41 42 4c 45 49 4e 46 4f 5f 46 55 4c 4c 0a 20 20 20 20 20 20 20 20 .with.DB_TABLEINFO_FULL.........
26bc0 20 2a 2f 0a 0a 20 20 20 20 20 20 20 20 2f 2f 20 69 66 20 24 72 65 73 75 6c 74 20 69 73 20 61 20 .*/..........//.if.$result.is.a.
26be0 73 74 72 69 6e 67 2c 20 74 68 65 6e 20 77 65 20 77 61 6e 74 20 69 6e 66 6f 72 6d 61 74 69 6f 6e string,.then.we.want.information
26c00 20 61 62 6f 75 74 20 61 0a 20 20 20 20 20 20 20 20 2f 2f 20 74 61 62 6c 65 20 77 69 74 68 6f 75 .about.a.........//.table.withou
26c20 74 20 61 20 72 65 73 75 6c 74 73 65 74 0a 0a 20 20 20 20 20 20 20 20 69 66 20 28 69 73 5f 73 74 t.a.resultset..........if.(is_st
26c40 72 69 6e 67 28 24 72 65 73 75 6c 74 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 ring($result)).{.............if.
26c60 28 21 40 6d 73 73 71 6c 5f 73 65 6c 65 63 74 5f 64 62 28 24 74 68 69 73 2d 3e 5f 64 62 2c 20 24 (!@mssql_select_db($this->_db,.$
26c80 74 68 69 73 2d 3e 63 6f 6e 6e 65 63 74 69 6f 6e 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 this->connection)).{............
26ca0 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6d 73 73 71 6c 52 61 69 73 65 45 72 72 .....return.$this->mssqlRaiseErr
26cc0 6f 72 28 44 42 5f 45 52 52 4f 52 5f 4e 4f 44 42 53 45 4c 45 43 54 45 44 29 3b 0a 20 20 20 20 20 or(DB_ERROR_NODBSELECTED);......
26ce0 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 69 64 20 3d 20 6d 73 73 71 6c .......}.............$id.=.mssql
26d00 5f 71 75 65 72 79 28 22 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 24 72 65 73 75 6c 74 22 2c 20 _query("SELECT.*.FROM.$result",.
26d20 24 74 68 69 73 2d 3e 63 6f 6e 6e 65 63 74 69 6f 6e 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 $this->connection);.............
26d40 69 66 20 28 65 6d 70 74 79 28 24 69 64 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 if.(empty($id)).{...............
26d60 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6d 73 73 71 6c 52 61 69 73 65 45 72 72 6f 72 28 ..return.$this->mssqlRaiseError(
26d80 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 );.............}.........}.else.
26da0 7b 20 2f 2f 20 65 6c 73 65 20 77 65 20 77 61 6e 74 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 61 62 {.//.else.we.want.information.ab
26dc0 6f 75 74 20 61 20 72 65 73 75 6c 74 73 65 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 69 64 20 out.a.resultset.............$id.
26de0 3d 20 24 72 65 73 75 6c 74 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 65 6d 70 74 79 =.$result;.............if.(empty
26e00 28 24 69 64 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 ($id)).{.................return.
26e20 24 74 68 69 73 2d 3e 6d 73 73 71 6c 52 61 69 73 65 45 72 72 6f 72 28 29 3b 0a 20 20 20 20 20 20 $this->mssqlRaiseError();.......
26e40 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 24 63 6f 75 6e ......}.........}..........$coun
26e60 74 20 3d 20 40 6d 73 73 71 6c 5f 6e 75 6d 5f 66 69 65 6c 64 73 28 24 69 64 29 3b 0a 0a 20 20 20 t.=.@mssql_num_fields($id);.....
26e80 20 20 20 20 20 2f 2f 20 6d 61 64 65 20 74 68 69 73 20 49 46 20 64 75 65 20 74 6f 20 70 65 72 66 .....//.made.this.IF.due.to.perf
26ea0 6f 72 6d 61 6e 63 65 20 28 6f 6e 65 20 69 66 20 69 73 20 66 61 73 74 65 72 20 74 68 61 6e 20 24 ormance.(one.if.is.faster.than.$
26ec0 63 6f 75 6e 74 20 69 66 27 73 29 0a 20 20 20 20 20 20 20 20 69 66 20 28 65 6d 70 74 79 28 24 6d count.if's).........if.(empty($m
26ee0 6f 64 65 29 29 20 7b 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 20 28 24 69 3d 30 3b 20 ode)).{..............for.($i=0;.
26f00 24 69 3c 24 63 6f 75 6e 74 3b 20 24 69 2b 2b 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 $i<$count;.$i++).{..............
26f20 20 20 20 24 72 65 73 5b 24 69 5d 5b 27 74 61 62 6c 65 27 5d 20 3d 20 28 69 73 5f 73 74 72 69 6e ...$res[$i]['table'].=.(is_strin
26f40 67 28 24 72 65 73 75 6c 74 29 29 20 3f 20 24 72 65 73 75 6c 74 20 3a 20 27 27 3b 0a 20 20 20 20 g($result)).?.$result.:.'';.....
26f60 20 20 20 20 20 20 20 20 20 20 20 20 24 72 65 73 5b 24 69 5d 5b 27 6e 61 6d 65 27 5d 20 20 3d 20 ............$res[$i]['name']..=.
26f80 40 6d 73 73 71 6c 5f 66 69 65 6c 64 5f 6e 61 6d 65 28 24 69 64 2c 20 24 69 29 3b 0a 20 20 20 20 @mssql_field_name($id,.$i);.....
26fa0 20 20 20 20 20 20 20 20 20 20 20 20 24 72 65 73 5b 24 69 5d 5b 27 74 79 70 65 27 5d 20 20 3d 20 ............$res[$i]['type']..=.
26fc0 40 6d 73 73 71 6c 5f 66 69 65 6c 64 5f 74 79 70 65 28 24 69 64 2c 20 24 69 29 3b 0a 20 20 20 20 @mssql_field_type($id,.$i);.....
26fe0 20 20 20 20 20 20 20 20 20 20 20 20 24 72 65 73 5b 24 69 5d 5b 27 6c 65 6e 27 5d 20 20 20 3d 20 ............$res[$i]['len']...=.
27000 40 6d 73 73 71 6c 5f 66 69 65 6c 64 5f 6c 65 6e 67 74 68 28 24 69 64 2c 20 24 69 29 3b 0a 20 20 @mssql_field_length($id,.$i);...
27020 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 72 65 73 5b 24 69 5d 5b 27 66 6c 61 67 73 27 5d 20 ..............$res[$i]['flags'].
27040 3d 20 27 27 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 7d 20 65 =.'';.............}..........}.e
27060 6c 73 65 20 7b 20 2f 2f 20 66 75 6c 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 72 65 73 5b 27 lse.{.//.full.............$res['
27080 6e 75 6d 5f 66 69 65 6c 64 73 27 5d 3d 20 24 63 6f 75 6e 74 3b 0a 0a 20 20 20 20 20 20 20 20 20 num_fields']=.$count;...........
270a0 20 20 20 66 6f 72 20 28 24 69 3d 30 3b 20 24 69 3c 24 63 6f 75 6e 74 3b 20 24 69 2b 2b 29 20 7b ...for.($i=0;.$i<$count;.$i++).{
270c0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 72 65 73 5b 24 69 5d 5b 27 74 61 62 6c 65 .................$res[$i]['table
270e0 27 5d 20 3d 20 28 69 73 5f 73 74 72 69 6e 67 28 24 72 65 73 75 6c 74 29 29 20 3f 20 24 72 65 73 '].=.(is_string($result)).?.$res
27100 75 6c 74 20 3a 20 27 27 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 72 65 73 5b 24 ult.:.'';.................$res[$
27120 69 5d 5b 27 6e 61 6d 65 27 5d 20 20 3d 20 40 6d 73 73 71 6c 5f 66 69 65 6c 64 5f 6e 61 6d 65 28 i]['name']..=.@mssql_field_name(
27140 24 69 64 2c 20 24 69 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 72 65 73 5b 24 $id,.$i);.................$res[$
27160 69 5d 5b 27 74 79 70 65 27 5d 20 20 3d 20 40 6d 73 73 71 6c 5f 66 69 65 6c 64 5f 74 79 70 65 28 i]['type']..=.@mssql_field_type(
27180 24 69 64 2c 20 24 69 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 72 65 73 5b 24 $id,.$i);.................$res[$
271a0 69 5d 5b 27 6c 65 6e 27 5d 20 20 20 3d 20 40 6d 73 73 71 6c 5f 66 69 65 6c 64 5f 6c 65 6e 67 74 i]['len']...=.@mssql_field_lengt
271c0 68 28 24 69 64 2c 20 24 69 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 72 65 73 h($id,.$i);.................$res
271e0 5b 24 69 5d 5b 27 66 6c 61 67 73 27 5d 20 3d 20 27 27 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 [$i]['flags'].=.'';.............
27200 20 20 20 20 69 66 20 28 24 6d 6f 64 65 20 26 20 44 42 5f 54 41 42 4c 45 49 4e 46 4f 5f 4f 52 44 ....if.($mode.&.DB_TABLEINFO_ORD
27220 45 52 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 72 65 73 5b 27 ER).{.....................$res['
27240 6f 72 64 65 72 27 5d 5b 24 72 65 73 5b 24 69 5d 5b 27 6e 61 6d 65 27 5d 5d 20 3d 20 24 69 3b 0a order'][$res[$i]['name']].=.$i;.
27260 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................}...............
27280 20 20 69 66 20 28 24 6d 6f 64 65 20 26 20 44 42 5f 54 41 42 4c 45 49 4e 46 4f 5f 4f 52 44 45 52 ..if.($mode.&.DB_TABLEINFO_ORDER
272a0 54 41 42 4c 45 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 72 65 TABLE).{.....................$re
272c0 73 5b 27 6f 72 64 65 72 74 61 62 6c 65 27 5d 5b 24 72 65 73 5b 24 69 5d 5b 27 74 61 62 6c 65 27 s['ordertable'][$res[$i]['table'
272e0 5d 5d 5b 24 72 65 73 5b 24 69 5d 5b 27 6e 61 6d 65 27 5d 5d 20 3d 20 24 69 3b 0a 20 20 20 20 20 ]][$res[$i]['name']].=.$i;......
27300 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 ...........}.............}......
27320 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 2f 2f 20 66 72 65 65 20 74 68 65 20 72 65 73 75 6c 74 ...}..........//.free.the.result
27340 20 6f 6e 6c 79 20 69 66 20 77 65 20 77 65 72 65 20 63 61 6c 6c 65 64 20 6f 6e 20 61 20 74 61 62 .only.if.we.were.called.on.a.tab
27360 6c 65 0a 20 20 20 20 20 20 20 20 69 66 20 28 69 73 5f 73 74 72 69 6e 67 28 24 72 65 73 75 6c 74 le.........if.(is_string($result
27380 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 40 6d 73 73 71 6c 5f 66 72 65 65 5f 72 65 73 )).{.............@mssql_free_res
273a0 75 6c 74 28 24 69 64 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 72 65 74 75 ult($id);.........}.........retu
273c0 72 6e 20 24 72 65 73 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f rn.$res;.....}......//.}}}...../
273e0 2f 20 7b 7b 7b 20 67 65 74 53 70 65 63 69 61 6c 51 75 65 72 79 28 29 0a 0a 20 20 20 20 2f 2a 2a /.{{{.getSpecialQuery()....../**
27400 0a 20 20 20 20 2a 20 52 65 74 75 72 6e 73 20 74 68 65 20 71 75 65 72 79 20 6e 65 65 64 65 64 20 .....*.Returns.the.query.needed.
27420 74 6f 20 67 65 74 20 73 6f 6d 65 20 62 61 63 6b 65 6e 64 20 69 6e 66 6f 0a 20 20 20 20 2a 20 40 to.get.some.backend.info.....*.@
27440 70 61 72 61 6d 20 73 74 72 69 6e 67 20 24 74 79 70 65 20 57 68 61 74 20 6b 69 6e 64 20 6f 66 20 param.string.$type.What.kind.of.
27460 69 6e 66 6f 20 79 6f 75 20 77 61 6e 74 20 74 6f 20 72 65 74 72 69 65 76 65 0a 20 20 20 20 2a 20 info.you.want.to.retrieve.....*.
27480 40 72 65 74 75 72 6e 20 73 74 72 69 6e 67 20 54 68 65 20 53 51 4c 20 71 75 65 72 79 20 73 74 72 @return.string.The.SQL.query.str
274a0 69 6e 67 0a 20 20 20 20 2a 2f 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 70 65 63 69 ing.....*/.....function.getSpeci
274c0 61 6c 51 75 65 72 79 28 24 74 79 70 65 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 73 77 69 alQuery($type).....{.........swi
274e0 74 63 68 20 28 24 74 79 70 65 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 63 61 73 65 20 27 tch.($type).{.............case.'
27500 74 61 62 6c 65 73 27 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 73 71 6c 20 3d 20 tables':.................$sql.=.
27520 22 73 65 6c 65 63 74 20 6e 61 6d 65 20 66 72 6f 6d 20 73 79 73 6f 62 6a 65 63 74 73 20 77 68 65 "select.name.from.sysobjects.whe
27540 72 65 20 74 79 70 65 20 3d 20 27 55 27 20 6f 72 64 65 72 20 62 79 20 6e 61 6d 65 22 3b 0a 20 20 re.type.=.'U'.order.by.name";...
27560 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 72 65 61 6b 3b 0a 20 20 20 20 20 20 20 20 20 20 20 ..............break;............
27580 20 63 61 73 65 20 27 76 69 65 77 73 27 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 .case.'views':.................$
275a0 73 71 6c 20 3d 20 22 73 65 6c 65 63 74 20 6e 61 6d 65 20 66 72 6f 6d 20 73 79 73 6f 62 6a 65 63 sql.=."select.name.from.sysobjec
275c0 74 73 20 77 68 65 72 65 20 74 79 70 65 20 3d 20 27 56 27 22 3b 0a 20 20 20 20 20 20 20 20 20 20 ts.where.type.=.'V'";...........
275e0 20 20 20 20 20 20 62 72 65 61 6b 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 64 65 66 61 75 6c 74 ......break;.............default
27600 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 6e 75 6c 6c 3b 0a 20 :.................return.null;..
27620 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 73 71 6c 3b 0a 20 20 .......}.........return.$sql;...
27640 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 0a 7d 0a 3f 3e 0a 00 00 00 00 00 00 00 00 00 00 ..}......//.}}}..}.?>...........
27660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
27680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
276a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
276c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
276e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
27700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
27720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
27740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
27760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
27780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
277a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
277c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
277e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
27800 44 42 2d 31 2e 35 2e 30 52 43 31 2f 44 42 2f 6d 79 73 71 6c 2e 70 68 70 00 00 00 00 00 00 00 00 DB-1.5.0RC1/DB/mysql.php........
27820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
27840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
27860 00 00 00 00 31 30 30 36 34 34 20 00 20 20 20 37 36 34 20 00 20 20 20 31 34 34 20 00 20 20 20 20 ....100644.....764.....144......
27880 20 20 36 33 34 32 33 20 20 37 36 37 35 31 30 35 36 34 36 20 20 20 37 36 36 35 20 00 00 00 00 00 ..63423..7675105646...7665......
278a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
278c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
278e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
27900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
27920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
27940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
27960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
27980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
279a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
279c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
279e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
27a00 3c 3f 70 68 70 0a 2f 2a 20 76 69 6d 3a 20 73 65 74 20 65 78 70 61 6e 64 74 61 62 20 74 61 62 73 <?php./*.vim:.set.expandtab.tabs
27a20 74 6f 70 3d 34 20 73 68 69 66 74 77 69 64 74 68 3d 34 20 66 6f 6c 64 6d 65 74 68 6f 64 3d 6d 61 top=4.shiftwidth=4.foldmethod=ma
27a40 72 6b 65 72 3a 20 2a 2f 0a 2f 2f 20 2b 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d rker:.*/.//.+-------------------
27a60 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
27a80 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2b 0a 2f 2f 20 7c 20 50 48 50 20 56 65 -------------------+.//.|.PHP.Ve
27aa0 72 73 69 6f 6e 20 34 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 rsion.4.........................
27ac0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c ...............................|
27ae0 0a 2f 2f 20 2b 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d .//.+---------------------------
27b00 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
27b20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2b 0a 2f 2f 20 7c 20 43 6f 70 79 72 69 67 68 74 20 28 63 29 20 -----------+.//.|.Copyright.(c).
27b40 31 39 39 37 2d 32 30 30 33 20 54 68 65 20 50 48 50 20 47 72 6f 75 70 20 20 20 20 20 20 20 20 20 1997-2003.The.PHP.Group.........
27b60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 2f 2f 20 2b 2d 2d 2d .......................|.//.+---
27b80 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
27ba0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
27bc0 2d 2d 2d 2b 0a 2f 2f 20 7c 20 54 68 69 73 20 73 6f 75 72 63 65 20 66 69 6c 65 20 69 73 20 73 75 ---+.//.|.This.source.file.is.su
27be0 62 6a 65 63 74 20 74 6f 20 76 65 72 73 69 6f 6e 20 32 2e 30 32 20 6f 66 20 74 68 65 20 50 48 50 bject.to.version.2.02.of.the.PHP
27c00 20 6c 69 63 65 6e 73 65 2c 20 20 20 20 20 20 7c 0a 2f 2f 20 7c 20 74 68 61 74 20 69 73 20 62 75 .license,......|.//.|.that.is.bu
27c20 6e 64 6c 65 64 20 77 69 74 68 20 74 68 69 73 20 70 61 63 6b 61 67 65 20 69 6e 20 74 68 65 20 66 ndled.with.this.package.in.the.f
27c40 69 6c 65 20 4c 49 43 45 4e 53 45 2c 20 61 6e 64 20 69 73 20 20 20 20 20 20 20 20 7c 0a 2f 2f 20 ile.LICENSE,.and.is........|.//.
27c60 7c 20 61 76 61 69 6c 61 62 6c 65 20 61 74 20 74 68 72 6f 75 67 68 20 74 68 65 20 77 6f 72 6c 64 |.available.at.through.the.world
27c80 2d 77 69 64 65 2d 77 65 62 20 61 74 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -wide-web.at....................
27ca0 20 20 20 20 20 20 20 7c 0a 2f 2f 20 7c 20 68 74 74 70 3a 2f 2f 77 77 77 2e 70 68 70 2e 6e 65 74 .......|.//.|.http://www.php.net
27cc0 2f 6c 69 63 65 6e 73 65 2f 32 5f 30 32 2e 74 78 74 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 /license/2_02.txt...............
27ce0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 2f 2f 20 7c 20 49 66 20 79 6f 75 ...................|.//.|.If.you
27d00 20 64 69 64 20 6e 6f 74 20 72 65 63 65 69 76 65 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 50 .did.not.receive.a.copy.of.the.P
27d20 48 50 20 6c 69 63 65 6e 73 65 20 61 6e 64 20 61 72 65 20 75 6e 61 62 6c 65 20 74 6f 20 20 20 7c HP.license.and.are.unable.to...|
27d40 0a 2f 2f 20 7c 20 6f 62 74 61 69 6e 20 69 74 20 74 68 72 6f 75 67 68 20 74 68 65 20 77 6f 72 6c .//.|.obtain.it.through.the.worl
27d60 64 2d 77 69 64 65 2d 77 65 62 2c 20 70 6c 65 61 73 65 20 73 65 6e 64 20 61 20 6e 6f 74 65 20 74 d-wide-web,.please.send.a.note.t
27d80 6f 20 20 20 20 20 20 20 20 20 20 7c 0a 2f 2f 20 7c 20 6c 69 63 65 6e 73 65 40 70 68 70 2e 6e 65 o..........|.//.|.license@php.ne
27da0 74 20 73 6f 20 77 65 20 63 61 6e 20 6d 61 69 6c 20 79 6f 75 20 61 20 63 6f 70 79 20 69 6d 6d 65 t.so.we.can.mail.you.a.copy.imme
27dc0 64 69 61 74 65 6c 79 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 2f 2f 20 2b 2d 2d 2d diately................|.//.+---
27de0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
27e00 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
27e20 2d 2d 2d 2b 0a 2f 2f 20 7c 20 41 75 74 68 6f 72 3a 20 53 74 69 67 20 42 61 6b 6b 65 6e 20 3c 73 ---+.//.|.Author:.Stig.Bakken.<s
27e40 73 62 40 70 68 70 2e 6e 65 74 3e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 sb@php.net>.....................
27e60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 2f 2f 20 2b 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ...............|.//.+-----------
27e80 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
27ea0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2b 0a 2f 2f 0a ---------------------------+.//.
27ec0 2f 2f 20 24 49 64 3a 20 6d 79 73 71 6c 2e 70 68 70 2c 76 20 31 2e 31 39 20 32 30 30 33 2f 30 36 //.$Id:.mysql.php,v.1.19.2003/06
27ee0 2f 32 31 20 31 36 3a 34 35 3a 32 36 20 63 6f 78 20 45 78 70 20 24 0a 2f 2f 0a 2f 2f 20 44 61 74 /21.16:45:26.cox.Exp.$.//.//.Dat
27f00 61 62 61 73 65 20 69 6e 64 65 70 65 6e 64 65 6e 74 20 71 75 65 72 79 20 69 6e 74 65 72 66 61 63 abase.independent.query.interfac
27f20 65 20 64 65 66 69 6e 69 74 69 6f 6e 20 66 6f 72 20 50 48 50 27 73 20 4d 79 53 51 4c 0a 2f 2f 20 e.definition.for.PHP's.MySQL.//.
27f40 65 78 74 65 6e 73 69 6f 6e 2e 0a 2f 2f 0a 0a 2f 2f 0a 2f 2f 20 58 58 58 20 6c 65 67 65 6e 64 3a extension..//..//.//.XXX.legend:
27f60 0a 2f 2f 0a 2f 2f 20 58 58 58 20 45 52 52 4f 52 4d 53 47 3a 20 54 68 65 20 65 72 72 6f 72 20 6d .//.//.XXX.ERRORMSG:.The.error.m
27f80 65 73 73 61 67 65 20 66 72 6f 6d 20 74 68 65 20 6d 79 73 71 6c 20 66 75 6e 63 74 69 6f 6e 20 73 essage.from.the.mysql.function.s
27fa0 68 6f 75 6c 64 0a 2f 2f 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 65 20 72 65 67 69 73 74 hould.//...............be.regist
27fc0 65 72 65 64 20 68 65 72 65 2e 0a 2f 2f 0a 0a 72 65 71 75 69 72 65 5f 6f 6e 63 65 20 22 44 42 2f ered.here..//..require_once."DB/
27fe0 63 6f 6d 6d 6f 6e 2e 70 68 70 22 3b 0a 0a 63 6c 61 73 73 20 44 42 5f 6d 79 73 71 6c 20 65 78 74 common.php";..class.DB_mysql.ext
28000 65 6e 64 73 20 44 42 5f 63 6f 6d 6d 6f 6e 0a 7b 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 70 72 6f 70 ends.DB_common.{.....//.{{{.prop
28020 65 72 74 69 65 73 0a 0a 20 20 20 20 76 61 72 20 24 63 6f 6e 6e 65 63 74 69 6f 6e 3b 0a 20 20 20 erties......var.$connection;....
28040 20 76 61 72 20 24 70 68 70 74 79 70 65 2c 20 24 64 62 73 79 6e 74 61 78 3b 0a 20 20 20 20 76 61 .var.$phptype,.$dbsyntax;.....va
28060 72 20 24 70 72 65 70 61 72 65 5f 74 6f 6b 65 6e 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 20 20 20 r.$prepare_tokens.=.array();....
28080 20 76 61 72 20 24 70 72 65 70 61 72 65 5f 74 79 70 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 20 .var.$prepare_types.=.array();..
280a0 20 20 20 76 61 72 20 24 6e 75 6d 5f 72 6f 77 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 20 20 20 20 ...var.$num_rows.=.array();.....
280c0 76 61 72 20 24 74 72 61 6e 73 61 63 74 69 6f 6e 5f 6f 70 63 6f 75 6e 74 20 3d 20 30 3b 0a 20 20 var.$transaction_opcount.=.0;...
280e0 20 20 76 61 72 20 24 61 75 74 6f 63 6f 6d 6d 69 74 20 3d 20 74 72 75 65 3b 0a 20 20 20 20 76 61 ..var.$autocommit.=.true;.....va
28100 72 20 24 66 65 74 63 68 6d 6f 64 65 20 3d 20 44 42 5f 46 45 54 43 48 4d 4f 44 45 5f 4f 52 44 45 r.$fetchmode.=.DB_FETCHMODE_ORDE
28120 52 45 44 3b 20 2f 2a 20 44 65 66 61 75 6c 74 20 66 65 74 63 68 20 6d 6f 64 65 20 2a 2f 0a 20 20 RED;./*.Default.fetch.mode.*/...
28140 20 20 76 61 72 20 24 5f 64 62 20 3d 20 66 61 6c 73 65 3b 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a ..var.$_db.=.false;......//.}}}.
28160 20 20 20 20 2f 2f 20 7b 7b 7b 20 63 6f 6e 73 74 72 75 63 74 6f 72 0a 0a 20 20 20 20 2f 2a 2a 0a ....//.{{{.constructor....../**.
28180 20 20 20 20 20 2a 20 44 42 5f 6d 79 73 71 6c 20 63 6f 6e 73 74 72 75 63 74 6f 72 2e 0a 20 20 20 .....*.DB_mysql.constructor.....
281a0 20 20 2a 0a 20 20 20 20 20 2a 20 40 61 63 63 65 73 73 20 70 75 62 6c 69 63 0a 20 20 20 20 20 2a ..*......*.@access.public......*
281c0 2f 0a 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 44 42 5f 6d 79 73 71 6c 28 29 0a 20 20 20 20 7b /......function.DB_mysql().....{
281e0 0a 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 44 42 5f 63 6f 6d 6d 6f 6e 28 29 3b 0a 20 20 20 .........$this->DB_common();....
28200 20 20 20 20 20 24 74 68 69 73 2d 3e 70 68 70 74 79 70 65 20 3d 20 27 6d 79 73 71 6c 27 3b 0a 20 .....$this->phptype.=.'mysql';..
28220 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 64 62 73 79 6e 74 61 78 20 3d 20 27 6d 79 73 71 6c 27 .......$this->dbsyntax.=.'mysql'
28240 3b 0a 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 66 65 61 74 75 72 65 73 20 3d 20 61 72 72 61 ;.........$this->features.=.arra
28260 79 28 0a 20 20 20 20 20 20 20 20 20 20 20 20 27 70 72 65 70 61 72 65 27 20 3d 3e 20 66 61 6c 73 y(.............'prepare'.=>.fals
28280 65 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 27 70 63 6f 6e 6e 65 63 74 27 20 3d 3e 20 74 72 75 e,.............'pconnect'.=>.tru
282a0 65 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 27 74 72 61 6e 73 61 63 74 69 6f 6e 73 27 20 3d 3e e,.............'transactions'.=>
282c0 20 74 72 75 65 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 27 6c 69 6d 69 74 27 20 3d 3e 20 27 61 .true,.............'limit'.=>.'a
282e0 6c 74 65 72 27 0a 20 20 20 20 20 20 20 20 29 3b 0a 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e lter'.........);.........$this->
28300 65 72 72 6f 72 63 6f 64 65 5f 6d 61 70 20 3d 20 61 72 72 61 79 28 0a 20 20 20 20 20 20 20 20 20 errorcode_map.=.array(..........
28320 20 20 20 31 30 30 34 20 3d 3e 20 44 42 5f 45 52 52 4f 52 5f 43 41 4e 4e 4f 54 5f 43 52 45 41 54 ...1004.=>.DB_ERROR_CANNOT_CREAT
28340 45 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 31 30 30 35 20 3d 3e 20 44 42 5f 45 52 52 4f 52 5f E,.............1005.=>.DB_ERROR_
28360 43 41 4e 4e 4f 54 5f 43 52 45 41 54 45 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 31 30 30 36 20 CANNOT_CREATE,.............1006.
28380 3d 3e 20 44 42 5f 45 52 52 4f 52 5f 43 41 4e 4e 4f 54 5f 43 52 45 41 54 45 2c 0a 20 20 20 20 20 =>.DB_ERROR_CANNOT_CREATE,......
283a0 20 20 20 20 20 20 20 31 30 30 37 20 3d 3e 20 44 42 5f 45 52 52 4f 52 5f 41 4c 52 45 41 44 59 5f .......1007.=>.DB_ERROR_ALREADY_
283c0 45 58 49 53 54 53 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 31 30 30 38 20 3d 3e 20 44 42 5f 45 EXISTS,.............1008.=>.DB_E
283e0 52 52 4f 52 5f 43 41 4e 4e 4f 54 5f 44 52 4f 50 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 31 30 RROR_CANNOT_DROP,.............10
28400 34 36 20 3d 3e 20 44 42 5f 45 52 52 4f 52 5f 4e 4f 44 42 53 45 4c 45 43 54 45 44 2c 0a 20 20 20 46.=>.DB_ERROR_NODBSELECTED,....
28420 20 20 20 20 20 20 20 20 20 31 30 35 30 20 3d 3e 20 44 42 5f 45 52 52 4f 52 5f 41 4c 52 45 41 44 .........1050.=>.DB_ERROR_ALREAD
28440 59 5f 45 58 49 53 54 53 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 31 30 35 31 20 3d 3e 20 44 42 Y_EXISTS,.............1051.=>.DB
28460 5f 45 52 52 4f 52 5f 4e 4f 53 55 43 48 54 41 42 4c 45 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 _ERROR_NOSUCHTABLE,.............
28480 31 30 35 34 20 3d 3e 20 44 42 5f 45 52 52 4f 52 5f 4e 4f 53 55 43 48 46 49 45 4c 44 2c 0a 20 20 1054.=>.DB_ERROR_NOSUCHFIELD,...
284a0 20 20 20 20 20 20 20 20 20 20 31 30 36 32 20 3d 3e 20 44 42 5f 45 52 52 4f 52 5f 41 4c 52 45 41 ..........1062.=>.DB_ERROR_ALREA
284c0 44 59 5f 45 58 49 53 54 53 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 31 30 36 34 20 3d 3e 20 44 DY_EXISTS,.............1064.=>.D
284e0 42 5f 45 52 52 4f 52 5f 53 59 4e 54 41 58 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 31 31 30 30 B_ERROR_SYNTAX,.............1100
28500 20 3d 3e 20 44 42 5f 45 52 52 4f 52 5f 4e 4f 54 5f 4c 4f 43 4b 45 44 2c 0a 20 20 20 20 20 20 20 .=>.DB_ERROR_NOT_LOCKED,........
28520 20 20 20 20 20 31 31 33 36 20 3d 3e 20 44 42 5f 45 52 52 4f 52 5f 56 41 4c 55 45 5f 43 4f 55 4e .....1136.=>.DB_ERROR_VALUE_COUN
28540 54 5f 4f 4e 5f 52 4f 57 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 31 31 34 36 20 3d 3e 20 44 42 T_ON_ROW,.............1146.=>.DB
28560 5f 45 52 52 4f 52 5f 4e 4f 53 55 43 48 54 41 42 4c 45 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 _ERROR_NOSUCHTABLE,.............
28580 31 30 34 38 20 3d 3e 20 44 42 5f 45 52 52 4f 52 5f 43 4f 4e 53 54 52 41 49 4e 54 2c 0a 20 20 20 1048.=>.DB_ERROR_CONSTRAINT,....
285a0 20 20 20 20 20 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 0a 20 20 20 20 2f .....);.....}......//.}}}....../
285c0 2f 20 7b 7b 7b 20 63 6f 6e 6e 65 63 74 28 29 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 /.{{{.connect()....../**......*.
285e0 43 6f 6e 6e 65 63 74 20 74 6f 20 61 20 64 61 74 61 62 61 73 65 20 61 6e 64 20 6c 6f 67 20 69 6e Connect.to.a.database.and.log.in
28600 20 61 73 20 74 68 65 20 73 70 65 63 69 66 69 65 64 20 75 73 65 72 2e 0a 20 20 20 20 20 2a 0a 20 .as.the.specified.user.......*..
28620 20 20 20 20 2a 20 40 70 61 72 61 6d 20 24 64 73 6e 20 74 68 65 20 64 61 74 61 20 73 6f 75 72 63 ....*.@param.$dsn.the.data.sourc
28640 65 20 6e 61 6d 65 20 28 73 65 65 20 44 42 3a 3a 70 61 72 73 65 44 53 4e 20 66 6f 72 20 73 79 6e e.name.(see.DB::parseDSN.for.syn
28660 74 61 78 29 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 24 70 65 72 73 69 73 74 65 6e 74 20 28 tax)......*.@param.$persistent.(
28680 6f 70 74 69 6f 6e 61 6c 29 20 77 68 65 74 68 65 72 20 74 68 65 20 63 6f 6e 6e 65 63 74 69 6f 6e optional).whether.the.connection
286a0 20 73 68 6f 75 6c 64 0a 20 20 20 20 20 2a 20 20 20 20 20 20 20 20 62 65 20 70 65 72 73 69 73 74 .should......*........be.persist
286c0 65 6e 74 0a 20 20 20 20 20 2a 20 40 61 63 63 65 73 73 20 70 75 62 6c 69 63 0a 20 20 20 20 20 2a ent......*.@access.public......*
286e0 20 40 72 65 74 75 72 6e 20 69 6e 74 20 44 42 5f 4f 4b 20 6f 6e 20 73 75 63 63 65 73 73 2c 20 61 .@return.int.DB_OK.on.success,.a
28700 20 44 42 20 65 72 72 6f 72 20 6f 6e 20 66 61 69 6c 75 72 65 0a 20 20 20 20 20 2a 2f 0a 0a 20 20 .DB.error.on.failure......*/....
28720 20 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6e 6e 65 63 74 28 24 64 73 6e 69 6e 66 6f 2c 20 24 70 65 ..function.connect($dsninfo,.$pe
28740 72 73 69 73 74 65 6e 74 20 3d 20 66 61 6c 73 65 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 rsistent.=.false).....{.........
28760 69 66 20 28 21 44 42 3a 3a 61 73 73 65 72 74 45 78 74 65 6e 73 69 6f 6e 28 27 6d 79 73 71 6c 27 if.(!DB::assertExtension('mysql'
28780 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 61 69 )).............return.$this->rai
287a0 73 65 45 72 72 6f 72 28 44 42 5f 45 52 52 4f 52 5f 45 58 54 45 4e 53 49 4f 4e 5f 4e 4f 54 5f 46 seError(DB_ERROR_EXTENSION_NOT_F
287c0 4f 55 4e 44 29 3b 0a 0a 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 64 73 6e 20 3d 20 24 64 73 OUND);..........$this->dsn.=.$ds
287e0 6e 69 6e 66 6f 3b 0a 20 20 20 20 20 20 20 20 69 66 20 28 69 73 73 65 74 28 24 64 73 6e 69 6e 66 ninfo;.........if.(isset($dsninf
28800 6f 5b 27 70 72 6f 74 6f 63 6f 6c 27 5d 29 20 26 26 20 24 64 73 6e 69 6e 66 6f 5b 27 70 72 6f 74 o['protocol']).&&.$dsninfo['prot
28820 6f 63 6f 6c 27 5d 20 3d 3d 20 27 75 6e 69 78 27 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 ocol'].==.'unix').{.............
28840 24 64 62 68 6f 73 74 20 3d 20 27 3a 27 20 2e 20 24 64 73 6e 69 6e 66 6f 5b 27 73 6f 63 6b 65 74 $dbhost.=.':'...$dsninfo['socket
28860 27 5d 3b 0a 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 '];.........}.else.{............
28880 20 24 64 62 68 6f 73 74 20 3d 20 24 64 73 6e 69 6e 66 6f 5b 27 68 6f 73 74 73 70 65 63 27 5d 20 .$dbhost.=.$dsninfo['hostspec'].
288a0 3f 20 24 64 73 6e 69 6e 66 6f 5b 27 68 6f 73 74 73 70 65 63 27 5d 20 3a 20 27 6c 6f 63 61 6c 68 ?.$dsninfo['hostspec'].:.'localh
288c0 6f 73 74 27 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 21 65 6d 70 74 79 28 24 64 73 ost';.............if.(!empty($ds
288e0 6e 69 6e 66 6f 5b 27 70 6f 72 74 27 5d 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ninfo['port'])).{...............
28900 20 20 24 64 62 68 6f 73 74 20 2e 3d 20 27 3a 27 20 2e 20 24 64 73 6e 69 6e 66 6f 5b 27 70 6f 72 ..$dbhost..=.':'...$dsninfo['por
28920 74 27 5d 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 t'];.............}.........}....
28940 20 20 20 20 20 24 75 73 65 72 20 3d 20 24 64 73 6e 69 6e 66 6f 5b 27 75 73 65 72 6e 61 6d 65 27 .....$user.=.$dsninfo['username'
28960 5d 3b 0a 20 20 20 20 20 20 20 20 24 70 77 20 3d 20 24 64 73 6e 69 6e 66 6f 5b 27 70 61 73 73 77 ];.........$pw.=.$dsninfo['passw
28980 6f 72 64 27 5d 3b 0a 0a 20 20 20 20 20 20 20 20 24 63 6f 6e 6e 65 63 74 5f 66 75 6e 63 74 69 6f ord'];..........$connect_functio
289a0 6e 20 3d 20 24 70 65 72 73 69 73 74 65 6e 74 20 3f 20 27 6d 79 73 71 6c 5f 70 63 6f 6e 6e 65 63 n.=.$persistent.?.'mysql_pconnec
289c0 74 27 20 3a 20 27 6d 79 73 71 6c 5f 63 6f 6e 6e 65 63 74 27 3b 0a 0a 20 20 20 20 20 20 20 20 69 t'.:.'mysql_connect';..........i
289e0 66 20 28 24 64 62 68 6f 73 74 20 26 26 20 24 75 73 65 72 20 26 26 20 24 70 77 29 20 7b 0a 20 20 f.($dbhost.&&.$user.&&.$pw).{...
28a00 20 20 20 20 20 20 20 20 20 20 24 63 6f 6e 6e 20 3d 20 40 24 63 6f 6e 6e 65 63 74 5f 66 75 6e 63 ..........$conn.=.@$connect_func
28a20 74 69 6f 6e 28 24 64 62 68 6f 73 74 2c 20 24 75 73 65 72 2c 20 24 70 77 29 3b 0a 20 20 20 20 20 tion($dbhost,.$user,.$pw);......
28a40 20 20 20 7d 20 65 6c 73 65 69 66 20 28 24 64 62 68 6f 73 74 20 26 26 20 24 75 73 65 72 29 20 7b ...}.elseif.($dbhost.&&.$user).{
28a60 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 63 6f 6e 6e 20 3d 20 40 24 63 6f 6e 6e 65 63 74 5f 66 .............$conn.=.@$connect_f
28a80 75 6e 63 74 69 6f 6e 28 24 64 62 68 6f 73 74 2c 20 24 75 73 65 72 29 3b 0a 20 20 20 20 20 20 20 unction($dbhost,.$user);........
28aa0 20 7d 20 65 6c 73 65 69 66 20 28 24 64 62 68 6f 73 74 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 .}.elseif.($dbhost).{...........
28ac0 20 20 24 63 6f 6e 6e 20 3d 20 40 24 63 6f 6e 6e 65 63 74 5f 66 75 6e 63 74 69 6f 6e 28 24 64 62 ..$conn.=.@$connect_function($db
28ae0 68 6f 73 74 29 3b 0a 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 20 host);.........}.else.{.........
28b00 20 20 20 20 24 63 6f 6e 6e 20 3d 20 66 61 6c 73 65 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 ....$conn.=.false;.........}....
28b20 20 20 20 20 20 69 66 20 28 65 6d 70 74 79 28 24 63 6f 6e 6e 29 29 20 7b 0a 20 20 20 20 20 20 20 .....if.(empty($conn)).{........
28b40 20 20 20 20 20 69 66 20 28 28 24 65 72 72 20 3d 20 40 6d 79 73 71 6c 5f 65 72 72 6f 72 28 29 29 .....if.(($err.=.@mysql_error())
28b60 20 21 3d 20 27 27 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e .!=.'').{.................return
28b80 20 24 74 68 69 73 2d 3e 72 61 69 73 65 45 72 72 6f 72 28 44 42 5f 45 52 52 4f 52 5f 43 4f 4e 4e .$this->raiseError(DB_ERROR_CONN
28ba0 45 43 54 5f 46 41 49 4c 45 44 2c 20 6e 75 6c 6c 2c 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 20 20 ECT_FAILED,.null,.null,.........
28bc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
28be0 20 6e 75 6c 6c 2c 20 24 65 72 72 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 .null,.$err);.............}.else
28c00 69 66 20 28 65 6d 70 74 79 28 24 70 68 70 5f 65 72 72 6f 72 6d 73 67 29 29 20 7b 0a 20 20 20 20 if.(empty($php_errormsg)).{.....
28c20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 61 69 73 65 45 ............return.$this->raiseE
28c40 72 72 6f 72 28 44 42 5f 45 52 52 4f 52 5f 43 4f 4e 4e 45 43 54 5f 46 41 49 4c 45 44 29 3b 0a 20 rror(DB_ERROR_CONNECT_FAILED);..
28c60 20 20 20 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 ...........}.else.{.............
28c80 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 61 69 73 65 45 72 72 6f 72 28 44 42 5f ....return.$this->raiseError(DB_
28ca0 45 52 52 4f 52 5f 43 4f 4e 4e 45 43 54 5f 46 41 49 4c 45 44 2c 20 6e 75 6c 6c 2c 20 6e 75 6c 6c ERROR_CONNECT_FAILED,.null,.null
28cc0 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ,...............................
28ce0 20 20 20 20 20 20 20 20 20 20 20 6e 75 6c 6c 2c 20 24 70 68 70 5f 65 72 72 6f 72 6d 73 67 29 3b ...........null,.$php_errormsg);
28d00 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 .............}.........}........
28d20 20 20 69 66 20 28 24 64 73 6e 69 6e 66 6f 5b 27 64 61 74 61 62 61 73 65 27 5d 29 20 7b 0a 20 20 ..if.($dsninfo['database']).{...
28d40 20 20 20 20 20 20 20 20 20 20 69 66 20 28 21 40 6d 79 73 71 6c 5f 73 65 6c 65 63 74 5f 64 62 28 ..........if.(!@mysql_select_db(
28d60 24 64 73 6e 69 6e 66 6f 5b 27 64 61 74 61 62 61 73 65 27 5d 2c 20 24 63 6f 6e 6e 29 29 20 7b 0a $dsninfo['database'],.$conn)).{.
28d80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 77 69 74 63 68 28 6d 79 73 71 6c 5f 65 72 72 6e ...............switch(mysql_errn
28da0 6f 28 24 63 6f 6e 6e 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 o($conn)).{.....................
28dc0 20 20 20 20 63 61 73 65 20 31 30 34 39 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ....case.1049:..................
28de0 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 61 69 73 65 45 72 ...........return.$this->raiseEr
28e00 72 6f 72 28 44 42 5f 45 52 52 4f 52 5f 4e 4f 53 55 43 48 44 42 2c 20 6e 75 6c 6c 2c 20 6e 75 6c ror(DB_ERROR_NOSUCHDB,.null,.nul
28e20 6c 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 l,..............................
28e40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 75 6c 6c 2c 20 6d 79 ........................null,.my
28e60 73 71 6c 5f 65 72 72 6f 72 28 24 63 6f 6e 6e 29 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 sql_error($conn));..............
28e80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 72 65 61 6b 3b 0a 20 20 20 20 20 20 20 20 20 20 ...............break;...........
28ea0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 61 73 65 20 31 30 34 34 3a 0a 20 20 20 20 20 20 20 ..............case.1044:........
28ec0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 ......................return.$th
28ee0 69 73 2d 3e 72 61 69 73 65 45 72 72 6f 72 28 44 42 5f 45 52 52 4f 52 5f 41 43 43 45 53 53 5f 56 is->raiseError(DB_ERROR_ACCESS_V
28f00 49 4f 4c 41 54 49 4f 4e 2c 20 6e 75 6c 6c 2c 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 20 20 20 20 IOLATION,.null,.null,...........
28f20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
28f40 20 20 20 20 20 20 20 20 20 20 20 20 6e 75 6c 6c 2c 20 6d 79 73 71 6c 5f 65 72 72 6f 72 28 24 63 ............null,.mysql_error($c
28f60 6f 6e 6e 29 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 onn));..........................
28f80 20 20 20 62 72 65 61 6b 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ...break;.......................
28fa0 20 20 64 65 66 61 75 6c 74 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..default:......................
28fc0 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 61 69 73 65 45 72 72 6f 72 28 .......return.$this->raiseError(
28fe0 44 42 5f 45 52 52 4f 52 2c 20 6e 75 6c 6c 2c 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 20 20 20 20 DB_ERROR,.null,.null,...........
29000 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
29020 20 20 20 20 20 20 20 20 20 20 20 6e 75 6c 6c 2c 20 6d 79 73 71 6c 5f 65 72 72 6f 72 28 24 63 6f ...........null,.mysql_error($co
29040 6e 6e 29 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 nn));...........................
29060 20 20 62 72 65 61 6b 3b 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a ..break;......................}.
29080 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 66 69 78 ............}.............//.fix
290a0 20 74 6f 20 61 6c 6c 6f 77 20 63 61 6c 6c 73 20 74 6f 20 64 69 66 66 65 72 65 6e 74 20 64 61 74 .to.allow.calls.to.different.dat
290c0 61 62 61 73 65 73 20 69 6e 20 74 68 65 20 73 61 6d 65 20 73 63 72 69 70 74 0a 20 20 20 20 20 20 abases.in.the.same.script.......
290e0 20 20 20 20 20 20 24 74 68 69 73 2d 3e 5f 64 62 20 3d 20 24 64 73 6e 69 6e 66 6f 5b 27 64 61 74 ......$this->_db.=.$dsninfo['dat
29100 61 62 61 73 65 27 5d 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 24 74 68 69 abase'];.........}..........$thi
29120 73 2d 3e 63 6f 6e 6e 65 63 74 69 6f 6e 20 3d 20 24 63 6f 6e 6e 3b 0a 20 20 20 20 20 20 20 20 72 s->connection.=.$conn;.........r
29140 65 74 75 72 6e 20 44 42 5f 4f 4b 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 eturn.DB_OK;.....}......//.}}}..
29160 20 20 20 2f 2f 20 7b 7b 7b 20 64 69 73 63 6f 6e 6e 65 63 74 28 29 0a 0a 20 20 20 20 2f 2a 2a 0a ...//.{{{.disconnect()....../**.
29180 20 20 20 20 20 2a 20 4c 6f 67 20 6f 75 74 20 61 6e 64 20 64 69 73 63 6f 6e 6e 65 63 74 20 66 72 .....*.Log.out.and.disconnect.fr
291a0 6f 6d 20 74 68 65 20 64 61 74 61 62 61 73 65 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 om.the.database.......*......*.@
291c0 61 63 63 65 73 73 20 70 75 62 6c 69 63 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 72 65 74 access.public......*......*.@ret
291e0 75 72 6e 20 62 6f 6f 6c 20 54 52 55 45 20 6f 6e 20 73 75 63 63 65 73 73 2c 20 46 41 4c 53 45 20 urn.bool.TRUE.on.success,.FALSE.
29200 69 66 20 6e 6f 74 20 63 6f 6e 6e 65 63 74 65 64 2e 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 66 75 if.not.connected.......*/.....fu
29220 6e 63 74 69 6f 6e 20 64 69 73 63 6f 6e 6e 65 63 74 28 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 nction.disconnect().....{.......
29240 20 20 24 72 65 74 20 3d 20 6d 79 73 71 6c 5f 63 6c 6f 73 65 28 24 74 68 69 73 2d 3e 63 6f 6e 6e ..$ret.=.mysql_close($this->conn
29260 65 63 74 69 6f 6e 29 3b 0a 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 63 6f 6e 6e 65 63 74 69 ection);.........$this->connecti
29280 6f 6e 20 3d 20 6e 75 6c 6c 3b 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 72 65 74 3b 0a on.=.null;.........return.$ret;.
292a0 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 73 69 6d ....}......//.}}}.....//.{{{.sim
292c0 70 6c 65 51 75 65 72 79 28 29 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 53 65 6e 64 20 pleQuery()....../**......*.Send.
292e0 61 20 71 75 65 72 79 20 74 6f 20 4d 79 53 51 4c 20 61 6e 64 20 72 65 74 75 72 6e 20 74 68 65 20 a.query.to.MySQL.and.return.the.
29300 72 65 73 75 6c 74 73 20 61 73 20 61 20 4d 79 53 51 4c 20 72 65 73 6f 75 72 63 65 0a 20 20 20 20 results.as.a.MySQL.resource.....
29320 20 2a 20 69 64 65 6e 74 69 66 69 65 72 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 70 61 .*.identifier.......*......*.@pa
29340 72 61 6d 20 74 68 65 20 53 51 4c 20 71 75 65 72 79 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 ram.the.SQL.query......*......*.
29360 40 61 63 63 65 73 73 20 70 75 62 6c 69 63 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 72 65 @access.public......*......*.@re
29380 74 75 72 6e 20 6d 69 78 65 64 20 72 65 74 75 72 6e 73 20 61 20 76 61 6c 69 64 20 4d 79 53 51 4c turn.mixed.returns.a.valid.MySQL
293a0 20 72 65 73 75 6c 74 20 66 6f 72 20 73 75 63 63 65 73 73 66 75 6c 20 53 45 4c 45 43 54 0a 20 20 .result.for.successful.SELECT...
293c0 20 20 20 2a 20 71 75 65 72 69 65 73 2c 20 44 42 5f 4f 4b 20 66 6f 72 20 6f 74 68 65 72 20 73 75 ...*.queries,.DB_OK.for.other.su
293e0 63 63 65 73 73 66 75 6c 20 71 75 65 72 69 65 73 2e 20 20 41 20 44 42 20 65 72 72 6f 72 20 69 73 ccessful.queries...A.DB.error.is
29400 0a 20 20 20 20 20 2a 20 72 65 74 75 72 6e 65 64 20 6f 6e 20 66 61 69 6c 75 72 65 2e 0a 20 20 20 ......*.returned.on.failure.....
29420 20 20 2a 2f 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 73 69 6d 70 6c 65 51 75 65 72 79 28 24 71 ..*/.....function.simpleQuery($q
29440 75 65 72 79 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 24 69 73 6d 61 6e 69 70 20 3d 20 44 uery).....{.........$ismanip.=.D
29460 42 3a 3a 69 73 4d 61 6e 69 70 28 24 71 75 65 72 79 29 3b 0a 20 20 20 20 20 20 20 20 24 74 68 69 B::isManip($query);.........$thi
29480 73 2d 3e 6c 61 73 74 5f 71 75 65 72 79 20 3d 20 24 71 75 65 72 79 3b 0a 20 20 20 20 20 20 20 20 s->last_query.=.$query;.........
294a0 24 71 75 65 72 79 20 3d 20 24 74 68 69 73 2d 3e 6d 6f 64 69 66 79 51 75 65 72 79 28 24 71 75 65 $query.=.$this->modifyQuery($que
294c0 72 79 29 3b 0a 20 20 20 20 20 20 20 20 69 66 20 28 24 74 68 69 73 2d 3e 5f 64 62 29 20 7b 0a 20 ry);.........if.($this->_db).{..
294e0 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 21 40 6d 79 73 71 6c 5f 73 65 6c 65 63 74 5f 64 62 ...........if.(!@mysql_select_db
29500 28 24 74 68 69 73 2d 3e 5f 64 62 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 6e 65 63 74 69 6f 6e 29 29 ($this->_db,.$this->connection))
29520 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d .{.................return.$this-
29540 3e 6d 79 73 71 6c 52 61 69 73 65 45 72 72 6f 72 28 44 42 5f 45 52 52 4f 52 5f 4e 4f 44 42 53 45 >mysqlRaiseError(DB_ERROR_NODBSE
29560 4c 45 43 54 45 44 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 7d LECTED);.............}.........}
29580 0a 20 20 20 20 20 20 20 20 69 66 20 28 21 24 74 68 69 73 2d 3e 61 75 74 6f 63 6f 6d 6d 69 74 20 .........if.(!$this->autocommit.
295a0 26 26 20 24 69 73 6d 61 6e 69 70 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 24 &&.$ismanip).{.............if.($
295c0 74 68 69 73 2d 3e 74 72 61 6e 73 61 63 74 69 6f 6e 5f 6f 70 63 6f 75 6e 74 20 3d 3d 20 30 29 20 this->transaction_opcount.==.0).
295e0 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 72 65 73 75 6c 74 20 3d 20 40 6d 79 73 {.................$result.=.@mys
29600 71 6c 5f 71 75 65 72 79 28 27 53 45 54 20 41 55 54 4f 43 4f 4d 4d 49 54 3d 30 27 2c 20 24 74 68 ql_query('SET.AUTOCOMMIT=0',.$th
29620 69 73 2d 3e 63 6f 6e 6e 65 63 74 69 6f 6e 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 is->connection);................
29640 20 24 72 65 73 75 6c 74 20 3d 20 40 6d 79 73 71 6c 5f 71 75 65 72 79 28 27 42 45 47 49 4e 27 2c .$result.=.@mysql_query('BEGIN',
29660 20 24 74 68 69 73 2d 3e 63 6f 6e 6e 65 63 74 69 6f 6e 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 .$this->connection);............
29680 20 20 20 20 20 69 66 20 28 21 24 72 65 73 75 6c 74 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 .....if.(!$result).{............
296a0 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6d 79 73 71 6c 52 61 69 73 .........return.$this->mysqlRais
296c0 65 45 72 72 6f 72 28 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 eError();.................}.....
296e0 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 74 72 61 ........}.............$this->tra
29700 6e 73 61 63 74 69 6f 6e 5f 6f 70 63 6f 75 6e 74 2b 2b 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 nsaction_opcount++;.........}...
29720 20 20 20 20 20 20 24 72 65 73 75 6c 74 20 3d 20 40 6d 79 73 71 6c 5f 71 75 65 72 79 28 24 71 75 ......$result.=.@mysql_query($qu
29740 65 72 79 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 6e 65 63 74 69 6f 6e 29 3b 0a 20 20 20 20 20 20 20 ery,.$this->connection);........
29760 20 69 66 20 28 21 24 72 65 73 75 6c 74 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 .if.(!$result).{.............ret
29780 75 72 6e 20 24 74 68 69 73 2d 3e 6d 79 73 71 6c 52 61 69 73 65 45 72 72 6f 72 28 29 3b 0a 20 20 urn.$this->mysqlRaiseError();...
297a0 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 69 66 20 28 69 73 5f 72 65 73 6f 75 72 63 65 28 ......}.........if.(is_resource(
297c0 24 72 65 73 75 6c 74 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 6e 75 6d 72 6f 77 73 $result)).{.............$numrows
297e0 20 3d 20 24 74 68 69 73 2d 3e 6e 75 6d 72 6f 77 73 28 24 72 65 73 75 6c 74 29 3b 0a 20 20 20 20 .=.$this->numrows($result);.....
29800 20 20 20 20 20 20 20 20 69 66 20 28 69 73 5f 6f 62 6a 65 63 74 28 24 6e 75 6d 72 6f 77 73 29 29 ........if.(is_object($numrows))
29820 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 6e 75 6d 72 6f .{.................return.$numro
29840 77 73 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 74 ws;.............}.............$t
29860 68 69 73 2d 3e 6e 75 6d 5f 72 6f 77 73 5b 24 72 65 73 75 6c 74 5d 20 3d 20 24 6e 75 6d 72 6f 77 his->num_rows[$result].=.$numrow
29880 73 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 72 65 73 75 6c 74 3b 0a 20 s;.............return.$result;..
298a0 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 44 42 5f 4f 4b 3b 0a 20 .......}.........return.DB_OK;..
298c0 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 6e 65 78 74 ...}......//.}}}.....//.{{{.next
298e0 52 65 73 75 6c 74 28 29 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 4d 6f 76 65 20 74 68 Result()....../**......*.Move.th
29900 65 20 69 6e 74 65 72 6e 61 6c 20 6d 79 73 71 6c 20 72 65 73 75 6c 74 20 70 6f 69 6e 74 65 72 20 e.internal.mysql.result.pointer.
29920 74 6f 20 74 68 65 20 6e 65 78 74 20 61 76 61 69 6c 61 62 6c 65 20 72 65 73 75 6c 74 0a 20 20 20 to.the.next.available.result....
29940 20 20 2a 0a 20 20 20 20 20 2a 20 54 68 69 73 20 6d 65 74 68 6f 64 20 68 61 73 20 6e 6f 74 20 62 ..*......*.This.method.has.not.b
29960 65 65 6e 20 69 6d 70 6c 65 6d 65 6e 74 65 64 20 79 65 74 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 een.implemented.yet.......*.....
29980 20 2a 20 40 70 61 72 61 6d 20 61 20 76 61 6c 69 64 20 73 71 6c 20 72 65 73 75 6c 74 20 72 65 73 .*.@param.a.valid.sql.result.res
299a0 6f 75 72 63 65 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 61 63 63 65 73 73 20 70 75 62 6c ource......*......*.@access.publ
299c0 69 63 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 72 65 74 75 72 6e 20 66 61 6c 73 65 0a 20 ic......*......*.@return.false..
299e0 20 20 20 20 2a 2f 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 6e 65 78 74 52 65 73 75 6c 74 28 24 ....*/.....function.nextResult($
29a00 72 65 73 75 6c 74 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 66 61 6c result).....{.........return.fal
29a20 73 65 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b se;.....}......//.}}}.....//.{{{
29a40 20 66 65 74 63 68 49 6e 74 6f 28 29 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 46 65 74 .fetchInto()....../**......*.Fet
29a60 63 68 20 61 20 72 6f 77 20 61 6e 64 20 69 6e 73 65 72 74 20 74 68 65 20 64 61 74 61 20 69 6e 74 ch.a.row.and.insert.the.data.int
29a80 6f 20 61 6e 20 65 78 69 73 74 69 6e 67 20 61 72 72 61 79 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 o.an.existing.array.......*.....
29aa0 20 2a 20 40 70 61 72 61 6d 20 24 72 65 73 75 6c 74 20 4d 79 53 51 4c 20 72 65 73 75 6c 74 20 69 .*.@param.$result.MySQL.result.i
29ac0 64 65 6e 74 69 66 69 65 72 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 24 61 72 72 20 28 72 65 dentifier......*.@param.$arr.(re
29ae0 66 65 72 65 6e 63 65 29 20 61 72 72 61 79 20 77 68 65 72 65 20 64 61 74 61 20 66 72 6f 6d 20 74 ference).array.where.data.from.t
29b00 68 65 20 72 6f 77 20 69 73 20 73 74 6f 72 65 64 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 24 he.row.is.stored......*.@param.$
29b20 66 65 74 63 68 6d 6f 64 65 20 68 6f 77 20 74 68 65 20 61 72 72 61 79 20 64 61 74 61 20 73 68 6f fetchmode.how.the.array.data.sho
29b40 75 6c 64 20 62 65 20 69 6e 64 65 78 65 64 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 20 20 24 uld.be.indexed......*.@param...$
29b60 72 6f 77 6e 75 6d 20 74 68 65 20 72 6f 77 20 6e 75 6d 62 65 72 20 74 6f 20 66 65 74 63 68 0a 20 rownum.the.row.number.to.fetch..
29b80 20 20 20 20 2a 20 40 61 63 63 65 73 73 20 70 75 62 6c 69 63 0a 20 20 20 20 20 2a 0a 20 20 20 20 ....*.@access.public......*.....
29ba0 20 2a 20 40 72 65 74 75 72 6e 20 69 6e 74 20 44 42 5f 4f 4b 20 6f 6e 20 73 75 63 63 65 73 73 2c .*.@return.int.DB_OK.on.success,
29bc0 20 61 20 44 42 20 65 72 72 6f 72 20 6f 6e 20 66 61 69 6c 75 72 65 0a 20 20 20 20 20 2a 2f 0a 20 .a.DB.error.on.failure......*/..
29be0 20 20 20 66 75 6e 63 74 69 6f 6e 20 66 65 74 63 68 49 6e 74 6f 28 24 72 65 73 75 6c 74 2c 20 26 ...function.fetchInto($result,.&
29c00 24 61 72 72 2c 20 24 66 65 74 63 68 6d 6f 64 65 2c 20 24 72 6f 77 6e 75 6d 3d 6e 75 6c 6c 29 0a $arr,.$fetchmode,.$rownum=null).
29c20 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 69 66 20 28 24 72 6f 77 6e 75 6d 20 21 3d 3d 20 6e 75 ....{.........if.($rownum.!==.nu
29c40 6c 6c 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 21 40 6d 79 73 71 6c 5f 64 61 ll).{.............if.(!@mysql_da
29c60 74 61 5f 73 65 65 6b 28 24 72 65 73 75 6c 74 2c 20 24 72 6f 77 6e 75 6d 29 29 20 7b 0a 20 20 20 ta_seek($result,.$rownum)).{....
29c80 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 6e 75 6c 6c 3b 0a 20 20 20 20 20 20 .............return.null;.......
29ca0 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 69 66 20 28 24 66 ......}.........}.........if.($f
29cc0 65 74 63 68 6d 6f 64 65 20 26 20 44 42 5f 46 45 54 43 48 4d 4f 44 45 5f 41 53 53 4f 43 29 20 7b etchmode.&.DB_FETCHMODE_ASSOC).{
29ce0 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 61 72 72 20 3d 20 40 6d 79 73 71 6c 5f 66 65 74 63 68 .............$arr.=.@mysql_fetch
29d00 5f 61 72 72 61 79 28 24 72 65 73 75 6c 74 2c 20 4d 59 53 51 4c 5f 41 53 53 4f 43 29 3b 0a 20 20 _array($result,.MYSQL_ASSOC);...
29d20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 61 72 72 20 ......}.else.{.............$arr.
29d40 3d 20 40 6d 79 73 71 6c 5f 66 65 74 63 68 5f 72 6f 77 28 24 72 65 73 75 6c 74 29 3b 0a 20 20 20 =.@mysql_fetch_row($result);....
29d60 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 69 66 20 28 21 24 61 72 72 29 20 7b 0a 20 20 20 20 .....}.........if.(!$arr).{.....
29d80 20 20 20 20 20 20 20 20 2f 2f 20 53 65 65 3a 20 68 74 74 70 3a 2f 2f 62 75 67 73 2e 70 68 70 2e ........//.See:.http://bugs.php.
29da0 6e 65 74 2f 62 75 67 2e 70 68 70 3f 69 64 3d 32 32 33 32 38 0a 20 20 20 20 20 20 20 20 20 20 20 net/bug.php?id=22328............
29dc0 20 2f 2f 20 66 6f 72 20 77 68 79 20 77 65 20 63 61 6e 27 74 20 63 68 65 63 6b 20 65 72 72 6f 72 .//.for.why.we.can't.check.error
29de0 73 20 6f 6e 20 66 65 74 63 68 69 6e 67 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e s.on.fetching.............return
29e00 20 6e 75 6c 6c 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2a 0a 20 20 20 20 20 20 20 20 20 20 .null;............./*...........
29e20 20 20 24 65 72 72 6e 6f 20 3d 20 40 6d 79 73 71 6c 5f 65 72 72 6e 6f 28 24 74 68 69 73 2d 3e 63 ..$errno.=.@mysql_errno($this->c
29e40 6f 6e 6e 65 63 74 69 6f 6e 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 21 24 65 72 onnection);.............if.(!$er
29e60 72 6e 6f 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 4e 55 rno).{.................return.NU
29e80 4c 4c 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 LL;.............}.............re
29ea0 74 75 72 6e 20 24 74 68 69 73 2d 3e 6d 79 73 71 6c 52 61 69 73 65 45 72 72 6f 72 28 24 65 72 72 turn.$this->mysqlRaiseError($err
29ec0 6e 6f 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 2a 2f 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 no);.............*/.........}...
29ee0 20 20 20 20 20 20 72 65 74 75 72 6e 20 44 42 5f 4f 4b 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f ......return.DB_OK;.....}....../
29f00 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 66 72 65 65 52 65 73 75 6c 74 28 29 0a 0a 20 /.}}}.....//.{{{.freeResult()...
29f20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 46 72 65 65 20 74 68 65 20 69 6e 74 65 72 6e 61 6c 20 .../**......*.Free.the.internal.
29f40 72 65 73 6f 75 72 63 65 73 20 61 73 73 6f 63 69 61 74 65 64 20 77 69 74 68 20 24 72 65 73 75 6c resources.associated.with.$resul
29f60 74 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 24 72 65 73 75 6c 74 20 t.......*......*.@param.$result.
29f80 4d 79 53 51 4c 20 72 65 73 75 6c 74 20 69 64 65 6e 74 69 66 69 65 72 20 6f 72 20 44 42 20 73 74 MySQL.result.identifier.or.DB.st
29fa0 61 74 65 6d 65 6e 74 20 69 64 65 6e 74 69 66 69 65 72 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a atement.identifier......*......*
29fc0 20 40 61 63 63 65 73 73 20 70 75 62 6c 69 63 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 72 .@access.public......*......*.@r
29fe0 65 74 75 72 6e 20 62 6f 6f 6c 20 54 52 55 45 20 6f 6e 20 73 75 63 63 65 73 73 2c 20 46 41 4c 53 eturn.bool.TRUE.on.success,.FALS
2a000 45 20 69 66 20 24 72 65 73 75 6c 74 20 69 73 20 69 6e 76 61 6c 69 64 0a 20 20 20 20 20 2a 2f 0a E.if.$result.is.invalid......*/.
2a020 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 66 72 65 65 52 65 73 75 6c 74 28 24 72 65 73 75 6c 74 29 ....function.freeResult($result)
2a040 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 69 66 20 28 69 73 5f 72 65 73 6f 75 72 63 65 28 24 .....{.........if.(is_resource($
2a060 72 65 73 75 6c 74 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 6d 79 result)).{.............return.my
2a080 73 71 6c 5f 66 72 65 65 5f 72 65 73 75 6c 74 28 24 72 65 73 75 6c 74 29 3b 0a 20 20 20 20 20 20 sql_free_result($result);.......
2a0a0 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 24 72 65 73 75 6c 74 20 3d 20 28 69 6e 74 29 24 72 65 73 ..}..........$result.=.(int)$res
2a0c0 75 6c 74 3b 20 2f 2f 20 24 72 65 73 75 6c 74 20 69 73 20 61 20 70 72 65 70 61 72 65 64 20 71 75 ult;.//.$result.is.a.prepared.qu
2a0e0 65 72 79 20 68 61 6e 64 6c 65 0a 20 20 20 20 20 20 20 20 69 66 20 28 21 69 73 73 65 74 28 24 74 ery.handle.........if.(!isset($t
2a100 68 69 73 2d 3e 70 72 65 70 61 72 65 5f 74 6f 6b 65 6e 73 5b 24 72 65 73 75 6c 74 5d 29 29 20 7b his->prepare_tokens[$result])).{
2a120 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 20 20 20 20 20 .............return.false;......
2a140 20 20 20 7d 0a 0a 0a 09 09 2f 2f 20 49 20 66 69 78 65 64 20 74 68 65 20 75 6e 73 65 74 20 74 68 ...}.....//.I.fixed.the.unset.th
2a160 69 6e 67 2e 0a 0a 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 70 72 65 70 61 72 65 5f 74 79 70 ing...........$this->prepare_typ
2a180 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 70 72 65 es.=.array();.........$this->pre
2a1a0 70 61 72 65 5f 74 6f 6b 65 6e 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 20 20 20 20 20 20 20 20 pare_tokens.=.array();..........
2a1c0 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 return.true;.....}......//.}}}..
2a1e0 20 20 20 2f 2f 20 7b 7b 7b 20 6e 75 6d 43 6f 6c 73 28 29 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 ...//.{{{.numCols()....../**....
2a200 20 20 2a 20 47 65 74 20 74 68 65 20 6e 75 6d 62 65 72 20 6f 66 20 63 6f 6c 75 6d 6e 73 20 69 6e ..*.Get.the.number.of.columns.in
2a220 20 61 20 72 65 73 75 6c 74 20 73 65 74 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 70 61 .a.result.set.......*......*.@pa
2a240 72 61 6d 20 24 72 65 73 75 6c 74 20 4d 79 53 51 4c 20 72 65 73 75 6c 74 20 69 64 65 6e 74 69 66 ram.$result.MySQL.result.identif
2a260 69 65 72 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 61 63 63 65 73 73 20 70 75 62 6c 69 63 ier......*......*.@access.public
2a280 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 72 65 74 75 72 6e 20 69 6e 74 20 74 68 65 20 6e ......*......*.@return.int.the.n
2a2a0 75 6d 62 65 72 20 6f 66 20 63 6f 6c 75 6d 6e 73 20 70 65 72 20 72 6f 77 20 69 6e 20 24 72 65 73 umber.of.columns.per.row.in.$res
2a2c0 75 6c 74 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 6e 75 6d 43 6f 6c 73 ult......*/.....function.numCols
2a2e0 28 24 72 65 73 75 6c 74 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 24 63 6f 6c 73 20 3d 20 ($result).....{.........$cols.=.
2a300 40 6d 79 73 71 6c 5f 6e 75 6d 5f 66 69 65 6c 64 73 28 24 72 65 73 75 6c 74 29 3b 0a 0a 20 20 20 @mysql_num_fields($result);.....
2a320 20 20 20 20 20 69 66 20 28 21 24 63 6f 6c 73 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 .....if.(!$cols).{.............r
2a340 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6d 79 73 71 6c 52 61 69 73 65 45 72 72 6f 72 28 29 3b 0a eturn.$this->mysqlRaiseError();.
2a360 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 63 6f 6c 73 3b ........}..........return.$cols;
2a380 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 6e 75 .....}......//.}}}.....//.{{{.nu
2a3a0 6d 52 6f 77 73 28 29 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 47 65 74 20 74 68 65 20 mRows()....../**......*.Get.the.
2a3c0 6e 75 6d 62 65 72 20 6f 66 20 72 6f 77 73 20 69 6e 20 61 20 72 65 73 75 6c 74 20 73 65 74 2e 0a number.of.rows.in.a.result.set..
2a3e0 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 24 72 65 73 75 6c 74 20 4d 79 53 .....*......*.@param.$result.MyS
2a400 51 4c 20 72 65 73 75 6c 74 20 69 64 65 6e 74 69 66 69 65 72 0a 20 20 20 20 20 2a 0a 20 20 20 20 QL.result.identifier......*.....
2a420 20 2a 20 40 61 63 63 65 73 73 20 70 75 62 6c 69 63 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 .*.@access.public......*......*.
2a440 40 72 65 74 75 72 6e 20 69 6e 74 20 74 68 65 20 6e 75 6d 62 65 72 20 6f 66 20 72 6f 77 73 20 69 @return.int.the.number.of.rows.i
2a460 6e 20 24 72 65 73 75 6c 74 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 6e n.$result......*/.....function.n
2a480 75 6d 52 6f 77 73 28 24 72 65 73 75 6c 74 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 24 72 umRows($result).....{.........$r
2a4a0 6f 77 73 20 3d 20 40 6d 79 73 71 6c 5f 6e 75 6d 5f 72 6f 77 73 28 24 72 65 73 75 6c 74 29 3b 0a ows.=.@mysql_num_rows($result);.
2a4c0 20 20 20 20 20 20 20 20 69 66 20 28 24 72 6f 77 73 20 3d 3d 3d 20 6e 75 6c 6c 29 20 7b 0a 20 20 ........if.($rows.===.null).{...
2a4e0 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6d 79 73 71 6c 52 61 69 ..........return.$this->mysqlRai
2a500 73 65 45 72 72 6f 72 28 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 72 65 74 seError();.........}.........ret
2a520 75 72 6e 20 24 72 6f 77 73 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 urn.$rows;.....}......//.}}}....
2a540 20 2f 2f 20 7b 7b 7b 20 61 75 74 6f 43 6f 6d 6d 69 74 28 29 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 .//.{{{.autoCommit()....../**...
2a560 20 20 20 2a 20 45 6e 61 62 6c 65 2f 64 69 73 61 62 6c 65 20 61 75 74 6f 6d 61 74 69 63 20 63 6f ...*.Enable/disable.automatic.co
2a580 6d 6d 69 74 73 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 61 75 74 6f 43 mmits......*/.....function.autoC
2a5a0 6f 6d 6d 69 74 28 24 6f 6e 6f 66 66 20 3d 20 66 61 6c 73 65 29 0a 20 20 20 20 7b 0a 20 20 20 20 ommit($onoff.=.false).....{.....
2a5c0 20 20 20 20 2f 2f 20 58 58 58 20 69 66 20 24 74 68 69 73 2d 3e 74 72 61 6e 73 61 63 74 69 6f 6e ....//.XXX.if.$this->transaction
2a5e0 5f 6f 70 63 6f 75 6e 74 20 3e 20 30 2c 20 77 65 20 73 68 6f 75 6c 64 20 70 72 6f 62 61 62 6c 79 _opcount.>.0,.we.should.probably
2a600 0a 20 20 20 20 20 20 20 20 2f 2f 20 69 73 73 75 65 20 61 20 77 61 72 6e 69 6e 67 20 68 65 72 65 .........//.issue.a.warning.here
2a620 2e 0a 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 61 75 74 6f 63 6f 6d 6d 69 74 20 3d 20 24 6f ..........$this->autocommit.=.$o
2a640 6e 6f 66 66 20 3f 20 74 72 75 65 20 3a 20 66 61 6c 73 65 3b 0a 20 20 20 20 20 20 20 20 72 65 74 noff.?.true.:.false;.........ret
2a660 75 72 6e 20 44 42 5f 4f 4b 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 urn.DB_OK;.....}......//.}}}....
2a680 20 2f 2f 20 7b 7b 7b 20 63 6f 6d 6d 69 74 28 29 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a .//.{{{.commit()....../**......*
2a6a0 20 43 6f 6d 6d 69 74 20 74 68 65 20 63 75 72 72 65 6e 74 20 74 72 61 6e 73 61 63 74 69 6f 6e 2e .Commit.the.current.transaction.
2a6c0 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6d 6d 69 74 28 29 0a 20 ......*/.....function.commit()..
2a6e0 20 20 20 7b 0a 20 20 20 20 20 20 20 20 69 66 20 28 24 74 68 69 73 2d 3e 74 72 61 6e 73 61 63 74 ...{.........if.($this->transact
2a700 69 6f 6e 5f 6f 70 63 6f 75 6e 74 20 3e 20 30 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 ion_opcount.>.0).{.............i
2a720 66 20 28 24 74 68 69 73 2d 3e 5f 64 62 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 f.($this->_db).{................
2a740 20 69 66 20 28 21 40 6d 79 73 71 6c 5f 73 65 6c 65 63 74 5f 64 62 28 24 74 68 69 73 2d 3e 5f 64 .if.(!@mysql_select_db($this->_d
2a760 62 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 6e 65 63 74 69 6f 6e 29 29 20 7b 0a 20 20 20 20 20 20 20 b,.$this->connection)).{........
2a780 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6d 79 73 71 6c .............return.$this->mysql
2a7a0 52 61 69 73 65 45 72 72 6f 72 28 44 42 5f 45 52 52 4f 52 5f 4e 4f 44 42 53 45 4c 45 43 54 45 44 RaiseError(DB_ERROR_NODBSELECTED
2a7c0 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 );.................}............
2a7e0 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 72 65 73 75 6c 74 20 3d 20 40 6d 79 73 71 6c 5f .}.............$result.=.@mysql_
2a800 71 75 65 72 79 28 27 43 4f 4d 4d 49 54 27 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 6e 65 63 74 69 6f query('COMMIT',.$this->connectio
2a820 6e 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 72 65 73 75 6c 74 20 3d 20 40 6d 79 73 71 6c n);.............$result.=.@mysql
2a840 5f 71 75 65 72 79 28 27 53 45 54 20 41 55 54 4f 43 4f 4d 4d 49 54 3d 31 27 2c 20 24 74 68 69 73 _query('SET.AUTOCOMMIT=1',.$this
2a860 2d 3e 63 6f 6e 6e 65 63 74 69 6f 6e 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 74 68 69 73 ->connection);.............$this
2a880 2d 3e 74 72 61 6e 73 61 63 74 69 6f 6e 5f 6f 70 63 6f 75 6e 74 20 3d 20 30 3b 0a 20 20 20 20 20 ->transaction_opcount.=.0;......
2a8a0 20 20 20 20 20 20 20 69 66 20 28 21 24 72 65 73 75 6c 74 29 20 7b 0a 20 20 20 20 20 20 20 20 20 .......if.(!$result).{..........
2a8c0 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6d 79 73 71 6c 52 61 69 73 65 45 .......return.$this->mysqlRaiseE
2a8e0 72 72 6f 72 28 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 7d 0a rror();.............}.........}.
2a900 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 44 42 5f 4f 4b 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 ........return.DB_OK;.....}.....
2a920 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 72 6f 6c 6c 62 61 63 6b 28 29 0a 0a 20 .//.}}}.....//.{{{.rollback()...
2a940 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 52 6f 6c 6c 20 62 61 63 6b 20 28 75 6e 64 6f 29 20 74 .../**......*.Roll.back.(undo).t
2a960 68 65 20 63 75 72 72 65 6e 74 20 74 72 61 6e 73 61 63 74 69 6f 6e 2e 0a 20 20 20 20 20 2a 2f 0a he.current.transaction.......*/.
2a980 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 72 6f 6c 6c 62 61 63 6b 28 29 0a 20 20 20 20 7b 0a 20 20 ....function.rollback().....{...
2a9a0 20 20 20 20 20 20 69 66 20 28 24 74 68 69 73 2d 3e 74 72 61 6e 73 61 63 74 69 6f 6e 5f 6f 70 63 ......if.($this->transaction_opc
2a9c0 6f 75 6e 74 20 3e 20 30 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 24 74 68 69 ount.>.0).{.............if.($thi
2a9e0 73 2d 3e 5f 64 62 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 21 40 s->_db).{.................if.(!@
2aa00 6d 79 73 71 6c 5f 73 65 6c 65 63 74 5f 64 62 28 24 74 68 69 73 2d 3e 5f 64 62 2c 20 24 74 68 69 mysql_select_db($this->_db,.$thi
2aa20 73 2d 3e 63 6f 6e 6e 65 63 74 69 6f 6e 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 s->connection)).{...............
2aa40 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6d 79 73 71 6c 52 61 69 73 65 45 72 ......return.$this->mysqlRaiseEr
2aa60 72 6f 72 28 44 42 5f 45 52 52 4f 52 5f 4e 4f 44 42 53 45 4c 45 43 54 45 44 29 3b 0a 20 20 20 20 ror(DB_ERROR_NODBSELECTED);.....
2aa80 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 ............}.............}.....
2aaa0 20 20 20 20 20 20 20 20 24 72 65 73 75 6c 74 20 3d 20 40 6d 79 73 71 6c 5f 71 75 65 72 79 28 27 ........$result.=.@mysql_query('
2aac0 52 4f 4c 4c 42 41 43 4b 27 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 6e 65 63 74 69 6f 6e 29 3b 0a 20 ROLLBACK',.$this->connection);..
2aae0 20 20 20 20 20 20 20 20 20 20 20 24 72 65 73 75 6c 74 20 3d 20 40 6d 79 73 71 6c 5f 71 75 65 72 ...........$result.=.@mysql_quer
2ab00 79 28 27 53 45 54 20 41 55 54 4f 43 4f 4d 4d 49 54 3d 31 27 2c 20 24 74 68 69 73 2d 3e 63 6f 6e y('SET.AUTOCOMMIT=1',.$this->con
2ab20 6e 65 63 74 69 6f 6e 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 74 72 61 nection);.............$this->tra
2ab40 6e 73 61 63 74 69 6f 6e 5f 6f 70 63 6f 75 6e 74 20 3d 20 30 3b 0a 20 20 20 20 20 20 20 20 20 20 nsaction_opcount.=.0;...........
2ab60 20 20 69 66 20 28 21 24 72 65 73 75 6c 74 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..if.(!$result).{...............
2ab80 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6d 79 73 71 6c 52 61 69 73 65 45 72 72 6f 72 28 ..return.$this->mysqlRaiseError(
2aba0 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 );.............}.........}......
2abc0 20 20 20 72 65 74 75 72 6e 20 44 42 5f 4f 4b 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d ...return.DB_OK;.....}......//.}
2abe0 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 61 66 66 65 63 74 65 64 52 6f 77 73 28 29 0a 0a 20 20 }}.....//.{{{.affectedRows()....
2ac00 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 47 65 74 73 20 74 68 65 20 6e 75 6d 62 65 72 20 6f 66 20 ../**......*.Gets.the.number.of.
2ac20 72 6f 77 73 20 61 66 66 65 63 74 65 64 20 62 79 20 74 68 65 20 64 61 74 61 20 6d 61 6e 69 70 75 rows.affected.by.the.data.manipu
2ac40 6c 61 74 69 6f 6e 0a 20 20 20 20 20 2a 20 71 75 65 72 79 2e 20 20 46 6f 72 20 6f 74 68 65 72 20 lation......*.query...For.other.
2ac60 71 75 65 72 69 65 73 2c 20 74 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 72 65 74 75 72 6e 73 20 30 queries,.this.function.returns.0
2ac80 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 72 65 74 75 72 6e 20 6e 75 6d 62 65 72 20 6f .......*......*.@return.number.o
2aca0 66 20 72 6f 77 73 20 61 66 66 65 63 74 65 64 20 62 79 20 74 68 65 20 6c 61 73 74 20 71 75 65 72 f.rows.affected.by.the.last.quer
2acc0 79 0a 20 20 20 20 20 2a 2f 0a 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 61 66 66 65 63 74 65 64 y......*/......function.affected
2ace0 52 6f 77 73 28 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 69 66 20 28 44 42 3a 3a 69 73 4d Rows().....{.........if.(DB::isM
2ad00 61 6e 69 70 28 24 74 68 69 73 2d 3e 6c 61 73 74 5f 71 75 65 72 79 29 29 20 7b 0a 20 20 20 20 20 anip($this->last_query)).{......
2ad20 20 20 20 20 20 20 20 24 72 65 73 75 6c 74 20 3d 20 40 6d 79 73 71 6c 5f 61 66 66 65 63 74 65 64 .......$result.=.@mysql_affected
2ad40 5f 72 6f 77 73 28 24 74 68 69 73 2d 3e 63 6f 6e 6e 65 63 74 69 6f 6e 29 3b 0a 20 20 20 20 20 20 _rows($this->connection);.......
2ad60 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 72 65 73 75 6c 74 20 3d ..}.else.{.............$result.=
2ad80 20 30 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 72 65 .0;.........}.........return.$re
2ada0 73 75 6c 74 3b 0a 20 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 sult;......}......//.}}}.....//.
2adc0 7b 7b 7b 20 65 72 72 6f 72 4e 61 74 69 76 65 28 29 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 {{{.errorNative()....../**......
2ade0 2a 20 47 65 74 20 74 68 65 20 6e 61 74 69 76 65 20 65 72 72 6f 72 20 63 6f 64 65 20 6f 66 20 74 *.Get.the.native.error.code.of.t
2ae00 68 65 20 6c 61 73 74 20 65 72 72 6f 72 20 28 69 66 20 61 6e 79 29 20 74 68 61 74 0a 20 20 20 20 he.last.error.(if.any).that.....
2ae20 20 2a 20 6f 63 63 75 72 65 64 20 6f 6e 20 74 68 65 20 63 75 72 72 65 6e 74 20 63 6f 6e 6e 65 63 .*.occured.on.the.current.connec
2ae40 74 69 6f 6e 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 61 63 63 65 73 73 20 70 75 62 6c tion.......*......*.@access.publ
2ae60 69 63 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 72 65 74 75 72 6e 20 69 6e 74 20 6e 61 74 ic......*......*.@return.int.nat
2ae80 69 76 65 20 4d 79 53 51 4c 20 65 72 72 6f 72 20 63 6f 64 65 0a 20 20 20 20 20 2a 2f 0a 0a 20 20 ive.MySQL.error.code......*/....
2aea0 20 20 66 75 6e 63 74 69 6f 6e 20 65 72 72 6f 72 4e 61 74 69 76 65 28 29 0a 20 20 20 20 7b 0a 20 ..function.errorNative().....{..
2aec0 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 6d 79 73 71 6c 5f 65 72 72 6e 6f 28 24 74 68 69 73 2d .......return.mysql_errno($this-
2aee0 3e 63 6f 6e 6e 65 63 74 69 6f 6e 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a >connection);.....}......//.}}}.
2af00 20 20 20 20 2f 2f 20 7b 7b 7b 20 6e 65 78 74 49 64 28 29 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 ....//.{{{.nextId()....../**....
2af20 20 20 2a 20 47 65 74 20 74 68 65 20 6e 65 78 74 20 76 61 6c 75 65 20 69 6e 20 61 20 73 65 71 75 ..*.Get.the.next.value.in.a.sequ
2af40 65 6e 63 65 2e 20 20 57 65 20 65 6d 75 6c 61 74 65 20 73 65 71 75 65 6e 63 65 73 0a 20 20 20 20 ence...We.emulate.sequences.....
2af60 20 2a 20 66 6f 72 20 4d 79 53 51 4c 2e 20 20 57 69 6c 6c 20 63 72 65 61 74 65 20 74 68 65 20 73 .*.for.MySQL...Will.create.the.s
2af80 65 71 75 65 6e 63 65 20 69 66 20 69 74 20 64 6f 65 73 20 6e 6f 74 20 65 78 69 73 74 2e 0a 20 20 equence.if.it.does.not.exist....
2afa0 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 61 63 63 65 73 73 20 70 75 62 6c 69 63 0a 20 20 20 20 20 ...*......*.@access.public......
2afc0 2a 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 73 74 72 69 6e 67 20 24 73 65 71 5f 6e 61 6d 65 *......*.@param.string.$seq_name
2afe0 20 74 68 65 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 73 65 71 75 65 6e 63 65 0a 20 20 20 20 20 2a .the.name.of.the.sequence......*
2b000 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 62 6f 6f 6c 20 24 6f 6e 64 65 6d 61 6e 64 20 77 68 ......*.@param.bool.$ondemand.wh
2b020 65 74 68 65 72 20 74 6f 20 63 72 65 61 74 65 20 74 68 65 20 73 65 71 75 65 6e 63 65 20 74 61 62 ether.to.create.the.sequence.tab
2b040 6c 65 20 6f 6e 20 64 65 6d 61 6e 64 0a 20 20 20 20 20 2a 20 28 64 65 66 61 75 6c 74 20 69 73 20 le.on.demand......*.(default.is.
2b060 74 72 75 65 29 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 72 65 74 75 72 6e 20 6d 69 78 65 true)......*......*.@return.mixe
2b080 64 20 61 20 73 65 71 75 65 6e 63 65 20 69 6e 74 65 67 65 72 2c 20 6f 72 20 61 20 44 42 20 65 72 d.a.sequence.integer,.or.a.DB.er
2b0a0 72 6f 72 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 6e 65 78 74 49 64 28 ror......*/.....function.nextId(
2b0c0 24 73 65 71 5f 6e 61 6d 65 2c 20 24 6f 6e 64 65 6d 61 6e 64 20 3d 20 74 72 75 65 29 0a 20 20 20 $seq_name,.$ondemand.=.true)....
2b0e0 20 7b 0a 20 20 20 20 20 20 20 20 24 73 65 71 6e 61 6d 65 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 .{.........$seqname.=.$this->get
2b100 53 65 71 75 65 6e 63 65 4e 61 6d 65 28 24 73 65 71 5f 6e 61 6d 65 29 3b 0a 20 20 20 20 20 20 20 SequenceName($seq_name);........
2b120 20 64 6f 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 72 65 70 65 61 74 20 3d 20 30 3b 0a 20 .do.{.............$repeat.=.0;..
2b140 20 20 20 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 70 75 73 68 45 72 72 6f 72 48 61 6e 64 6c ...........$this->pushErrorHandl
2b160 69 6e 67 28 50 45 41 52 5f 45 52 52 4f 52 5f 52 45 54 55 52 4e 29 3b 0a 20 20 20 20 20 20 20 20 ing(PEAR_ERROR_RETURN);.........
2b180 20 20 20 20 24 72 65 73 75 6c 74 20 3d 20 24 74 68 69 73 2d 3e 71 75 65 72 79 28 22 55 50 44 41 ....$result.=.$this->query("UPDA
2b1a0 54 45 20 24 7b 73 65 71 6e 61 6d 65 7d 20 22 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 TE.${seqname}.".................
2b1c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 53 45 54 20 69 64 3d 4c 41 53 54 ....................'SET.id=LAST
2b1e0 5f 49 4e 53 45 52 54 5f 49 44 28 69 64 2b 31 29 27 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 _INSERT_ID(id+1)');.............
2b200 24 74 68 69 73 2d 3e 70 6f 70 45 72 72 6f 72 48 61 6e 64 6c 69 6e 67 28 29 3b 0a 20 20 20 20 20 $this->popErrorHandling();......
2b220 20 20 20 20 20 20 20 69 66 20 28 24 72 65 73 75 6c 74 20 3d 3d 20 44 42 5f 4f 4b 29 20 7b 0a 20 .......if.($result.==.DB_OK).{..
2b240 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2a 2a 20 43 4f 4d 4d 4f 4e 20 43 41 53 45 20 2a .............../**.COMMON.CASE.*
2b260 2a 2f 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 69 64 20 3d 20 6d 79 73 71 6c 5f 69 */.................$id.=.mysql_i
2b280 6e 73 65 72 74 5f 69 64 28 24 74 68 69 73 2d 3e 63 6f 6e 6e 65 63 74 69 6f 6e 29 3b 0a 20 20 20 nsert_id($this->connection);....
2b2a0 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 24 69 64 20 21 3d 20 30 29 20 7b 0a 20 20 20 .............if.($id.!=.0).{....
2b2c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 69 64 3b 0a 20 20 20 .................return.$id;....
2b2e0 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f .............}................./
2b300 2a 2a 20 45 4d 50 54 59 20 53 45 51 20 54 41 42 4c 45 20 2a 2a 2f 0a 20 20 20 20 20 20 20 20 20 **.EMPTY.SEQ.TABLE.**/..........
2b320 20 20 20 20 20 20 20 2f 2f 20 53 65 71 75 65 6e 63 65 20 74 61 62 6c 65 20 6d 75 73 74 20 62 65 .......//.Sequence.table.must.be
2b340 20 65 6d 70 74 79 20 66 6f 72 20 73 6f 6d 65 20 72 65 61 73 6f 6e 2c 20 73 6f 20 66 69 6c 6c 20 .empty.for.some.reason,.so.fill.
2b360 69 74 20 61 6e 64 20 72 65 74 75 72 6e 20 31 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 it.and.return.1.................
2b380 2f 2f 20 4f 62 74 61 69 6e 20 61 20 75 73 65 72 2d 6c 65 76 65 6c 20 6c 6f 63 6b 0a 20 20 20 20 //.Obtain.a.user-level.lock.....
2b3a0 20 20 20 20 20 20 20 20 20 20 20 20 24 72 65 73 75 6c 74 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 ............$result.=.$this->get
2b3c0 4f 6e 65 28 22 53 45 4c 45 43 54 20 47 45 54 5f 4c 4f 43 4b 28 27 24 7b 73 65 71 6e 61 6d 65 7d One("SELECT.GET_LOCK('${seqname}
2b3e0 5f 6c 6f 63 6b 27 2c 31 30 29 22 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 _lock',10)");.................if
2b400 20 28 44 42 3a 3a 69 73 45 72 72 6f 72 28 24 72 65 73 75 6c 74 29 29 20 7b 0a 20 20 20 20 20 20 .(DB::isError($result)).{.......
2b420 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 61 69 73 ..............return.$this->rais
2b440 65 45 72 72 6f 72 28 24 72 65 73 75 6c 74 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 eError($result);................
2b460 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 24 72 65 73 75 6c 74 20 3d .}.................if.($result.=
2b480 3d 20 30 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 46 61 =.0).{.....................//.Fa
2b4a0 69 6c 65 64 20 74 6f 20 67 65 74 20 74 68 65 20 6c 6f 63 6b 2c 20 62 61 69 6c 20 77 69 74 68 20 iled.to.get.the.lock,.bail.with.
2b4c0 61 20 44 42 5f 45 52 52 4f 52 5f 4e 4f 54 5f 4c 4f 43 4b 45 44 20 65 72 72 6f 72 0a 20 20 20 20 a.DB_ERROR_NOT_LOCKED.error.....
2b4e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6d 79 ................return.$this->my
2b500 73 71 6c 52 61 69 73 65 45 72 72 6f 72 28 44 42 5f 45 52 52 4f 52 5f 4e 4f 54 5f 4c 4f 43 4b 45 sqlRaiseError(DB_ERROR_NOT_LOCKE
2b520 44 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 20 D);.................}...........
2b540 20 20 20 20 20 20 20 2f 2f 20 61 64 64 20 74 68 65 20 64 65 66 61 75 6c 74 20 76 61 6c 75 65 0a .......//.add.the.default.value.
2b560 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 72 65 73 75 6c 74 20 3d 20 24 74 68 69 73 2d ................$result.=.$this-
2b580 3e 71 75 65 72 79 28 22 52 45 50 4c 41 43 45 20 49 4e 54 4f 20 24 7b 73 65 71 6e 61 6d 65 7d 20 >query("REPLACE.INTO.${seqname}.
2b5a0 56 41 4c 55 45 53 20 28 30 29 22 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 VALUES.(0)");.................if
2b5c0 20 28 44 42 3a 3a 69 73 45 72 72 6f 72 28 24 72 65 73 75 6c 74 29 29 20 7b 0a 20 20 20 20 20 20 .(DB::isError($result)).{.......
2b5e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 61 69 73 ..............return.$this->rais
2b600 65 45 72 72 6f 72 28 24 72 65 73 75 6c 74 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 eError($result);................
2b620 20 7d 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 52 65 6c 65 61 73 65 20 74 .}..................//.Release.t
2b640 68 65 20 6c 6f 63 6b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 72 65 73 75 6c 74 20 he.lock.................$result.
2b660 3d 20 24 74 68 69 73 2d 3e 67 65 74 4f 6e 65 28 22 53 45 4c 45 43 54 20 52 45 4c 45 41 53 45 5f =.$this->getOne("SELECT.RELEASE_
2b680 4c 4f 43 4b 28 27 24 7b 73 65 71 6e 61 6d 65 7d 5f 6c 6f 63 6b 27 29 22 29 3b 0a 20 20 20 20 20 LOCK('${seqname}_lock')");......
2b6a0 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 44 42 3a 3a 69 73 45 72 72 6f 72 28 24 72 65 73 75 ...........if.(DB::isError($resu
2b6c0 6c 74 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 lt)).{.....................retur
2b6e0 6e 20 24 74 68 69 73 2d 3e 72 61 69 73 65 45 72 72 6f 72 28 24 72 65 73 75 6c 74 29 3b 0a 20 20 n.$this->raiseError($result);...
2b700 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..............}.................
2b720 2f 2f 20 57 65 20 6b 6e 6f 77 20 77 68 61 74 20 74 68 65 20 72 65 73 75 6c 74 20 77 69 6c 6c 20 //.We.know.what.the.result.will.
2b740 62 65 2c 20 73 6f 20 6e 6f 20 6e 65 65 64 20 74 6f 20 74 72 79 20 61 67 61 69 6e 0a 20 20 20 20 be,.so.no.need.to.try.again.....
2b760 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 31 3b 0a 0a 20 20 20 20 20 20 20 20 20 ............return.1;...........
2b780 20 20 20 2f 2a 2a 20 4f 4e 44 45 4d 41 4e 44 20 54 41 42 4c 45 20 43 52 45 41 54 49 4f 4e 20 2a .../**.ONDEMAND.TABLE.CREATION.*
2b7a0 2a 2f 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 69 66 20 28 24 6f 6e 64 65 6d 61 */.............}.elseif.($ondema
2b7c0 6e 64 20 26 26 20 44 42 3a 3a 69 73 45 72 72 6f 72 28 24 72 65 73 75 6c 74 29 20 26 26 0a 20 20 nd.&&.DB::isError($result).&&...
2b7e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 72 65 73 75 6c 74 2d 3e 67 65 74 43 6f 64 65 28 29 ..............$result->getCode()
2b800 20 3d 3d 20 44 42 5f 45 52 52 4f 52 5f 4e 4f 53 55 43 48 54 41 42 4c 45 29 0a 20 20 20 20 20 20 .==.DB_ERROR_NOSUCHTABLE).......
2b820 20 20 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 72 65 73 75 6c 74 20 ......{.................$result.
2b840 3d 20 24 74 68 69 73 2d 3e 63 72 65 61 74 65 53 65 71 75 65 6e 63 65 28 24 73 65 71 5f 6e 61 6d =.$this->createSequence($seq_nam
2b860 65 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 44 42 3a 3a 69 73 45 72 e);.................if.(DB::isEr
2b880 72 6f 72 28 24 72 65 73 75 6c 74 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ror($result)).{.................
2b8a0 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 61 69 73 65 45 72 72 6f 72 28 24 72 65 ....return.$this->raiseError($re
2b8c0 73 75 6c 74 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a sult);.................}.else.{.
2b8e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 72 65 70 65 61 74 20 3d 20 31 3b ....................$repeat.=.1;
2b900 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 .................}..............
2b920 2f 2a 2a 20 42 41 43 4b 57 41 52 44 53 20 43 4f 4d 50 41 54 20 2a 2a 2f 0a 20 20 20 20 20 20 20 /**.BACKWARDS.COMPAT.**/........
2b940 20 20 20 20 20 7d 20 65 6c 73 65 69 66 20 28 44 42 3a 3a 69 73 45 72 72 6f 72 28 24 72 65 73 75 .....}.elseif.(DB::isError($resu
2b960 6c 74 29 20 26 26 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 72 65 lt).&&.......................$re
2b980 73 75 6c 74 2d 3e 67 65 74 43 6f 64 65 28 29 20 3d 3d 20 44 42 5f 45 52 52 4f 52 5f 41 4c 52 45 sult->getCode().==.DB_ERROR_ALRE
2b9a0 41 44 59 5f 45 58 49 53 54 53 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 7b 0a 20 20 20 20 20 20 ADY_EXISTS).............{.......
2b9c0 20 20 20 20 20 20 20 20 20 20 2f 2f 20 73 65 65 20 5f 42 43 73 65 71 75 65 6e 63 65 28 29 20 63 ..........//.see._BCsequence().c
2b9e0 6f 6d 6d 65 6e 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 72 65 73 75 6c 74 20 3d omment.................$result.=
2ba00 20 24 74 68 69 73 2d 3e 5f 42 43 73 65 71 75 65 6e 63 65 28 24 73 65 71 6e 61 6d 65 29 3b 0a 20 .$this->_BCsequence($seqname);..
2ba20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 44 42 3a 3a 69 73 45 72 72 6f 72 28 24 ...............if.(DB::isError($
2ba40 72 65 73 75 6c 74 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 result)).{.....................r
2ba60 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 61 69 73 65 45 72 72 6f 72 28 24 72 65 73 75 6c 74 29 eturn.$this->raiseError($result)
2ba80 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 ;.................}.............
2baa0 20 20 20 20 24 72 65 70 65 61 74 20 3d 20 31 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 ....$repeat.=.1;.............}..
2bac0 20 20 20 20 20 20 20 7d 20 77 68 69 6c 65 20 28 24 72 65 70 65 61 74 29 3b 0a 0a 20 20 20 20 20 .......}.while.($repeat);.......
2bae0 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 61 69 73 65 45 72 72 6f 72 28 24 72 65 73 ...return.$this->raiseError($res
2bb00 75 6c 74 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b ult);.....}......//.}}}.....//.{
2bb20 7b 7b 20 63 72 65 61 74 65 53 65 71 75 65 6e 63 65 28 29 0a 0a 20 20 20 20 66 75 6e 63 74 69 6f {{.createSequence()......functio
2bb40 6e 20 63 72 65 61 74 65 53 65 71 75 65 6e 63 65 28 24 73 65 71 5f 6e 61 6d 65 29 0a 20 20 20 20 n.createSequence($seq_name).....
2bb60 7b 0a 20 20 20 20 20 20 20 20 24 73 65 71 6e 61 6d 65 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 53 {.........$seqname.=.$this->getS
2bb80 65 71 75 65 6e 63 65 4e 61 6d 65 28 24 73 65 71 5f 6e 61 6d 65 29 3b 0a 20 20 20 20 20 20 20 20 equenceName($seq_name);.........
2bba0 24 72 65 73 20 3d 20 24 74 68 69 73 2d 3e 71 75 65 72 79 28 22 43 52 45 41 54 45 20 54 41 42 4c $res.=.$this->query("CREATE.TABL
2bbc0 45 20 24 7b 73 65 71 6e 61 6d 65 7d 20 22 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 E.${seqname}."..................
2bbe0 20 20 20 20 20 20 20 20 20 20 20 20 27 28 69 64 20 49 4e 54 45 47 45 52 20 55 4e 53 49 47 4e 45 ............'(id.INTEGER.UNSIGNE
2bc00 44 20 41 55 54 4f 5f 49 4e 43 52 45 4d 45 4e 54 20 4e 4f 54 20 4e 55 4c 4c 2c 27 2e 0a 20 20 20 D.AUTO_INCREMENT.NOT.NULL,'.....
2bc20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 20 50 52 49 4d 41 .........................'.PRIMA
2bc40 52 59 20 4b 45 59 28 69 64 29 29 27 29 3b 0a 20 20 20 20 20 20 20 20 69 66 20 28 44 42 3a 3a 69 RY.KEY(id))');.........if.(DB::i
2bc60 73 45 72 72 6f 72 28 24 72 65 73 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 sError($res)).{.............retu
2bc80 72 6e 20 24 72 65 73 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 2f 2f 20 69 6e rn.$res;.........}.........//.in
2bca0 73 65 72 74 20 79 69 65 6c 64 73 20 76 61 6c 75 65 20 31 2c 20 6e 65 78 74 49 64 20 63 61 6c 6c sert.yields.value.1,.nextId.call
2bcc0 20 77 69 6c 6c 20 67 65 6e 65 72 61 74 65 20 49 44 20 32 0a 20 20 20 20 20 20 20 20 24 72 65 73 .will.generate.ID.2.........$res
2bce0 20 3d 20 24 74 68 69 73 2d 3e 71 75 65 72 79 28 22 49 4e 53 45 52 54 20 49 4e 54 4f 20 24 7b 73 .=.$this->query("INSERT.INTO.${s
2bd00 65 71 6e 61 6d 65 7d 20 56 41 4c 55 45 53 28 30 29 22 29 3b 0d 0a 20 20 20 20 20 20 20 20 69 66 eqname}.VALUES(0)");..........if
2bd20 20 28 44 42 3a 3a 69 73 45 72 72 6f 72 28 24 72 65 73 29 29 20 7b 0d 0a 20 20 20 20 20 20 20 20 .(DB::isError($res)).{..........
2bd40 20 20 20 20 72 65 74 75 72 6e 20 24 72 65 73 3b 0d 0a 20 20 20 20 20 20 20 20 7d 0d 0a 20 20 20 ....return.$res;..........}.....
2bd60 20 20 20 20 20 2f 2f 20 73 6f 20 72 65 73 65 74 20 74 6f 20 7a 65 72 6f 0d 0a 20 20 20 20 20 20 .....//.so.reset.to.zero........
2bd80 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 71 75 65 72 79 28 22 55 50 44 41 54 45 20 24 7b ..return.$this->query("UPDATE.${
2bda0 73 65 71 6e 61 6d 65 7d 20 53 45 54 20 69 64 20 3d 20 30 3b 22 29 3b 0a 20 20 20 20 7d 0a 0a 20 seqname}.SET.id.=.0;");.....}...
2bdc0 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 64 72 6f 70 53 65 71 75 65 6e 63 ...//.}}}.....//.{{{.dropSequenc
2bde0 65 28 29 0a 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 64 72 6f 70 53 65 71 75 65 6e 63 65 28 24 e()......function.dropSequence($
2be00 73 65 71 5f 6e 61 6d 65 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 24 73 65 71 6e 61 6d 65 seq_name).....{.........$seqname
2be20 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 53 65 71 75 65 6e 63 65 4e 61 6d 65 28 24 73 65 71 5f 6e .=.$this->getSequenceName($seq_n
2be40 61 6d 65 29 3b 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 71 75 65 72 ame);.........return.$this->quer
2be60 79 28 22 44 52 4f 50 20 54 41 42 4c 45 20 24 7b 73 65 71 6e 61 6d 65 7d 22 29 3b 0a 20 20 20 20 y("DROP.TABLE.${seqname}");.....
2be80 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 5f 42 43 73 65 71 75 }......//.}}}.....//.{{{._BCsequ
2bea0 65 6e 63 65 28 29 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 2a 20 42 61 63 6b 77 61 72 64 73 20 ence()....../**.....*.Backwards.
2bec0 63 6f 6d 70 61 74 69 62 69 6c 69 74 79 20 77 69 74 68 20 6f 6c 64 20 73 65 71 75 65 6e 63 65 20 compatibility.with.old.sequence.
2bee0 65 6d 75 6c 61 74 69 6f 6e 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 0a 20 20 20 20 2a 20 28 emulation.implementation.....*.(
2bf00 63 6c 65 61 6e 20 75 70 20 74 68 65 20 64 75 70 65 73 29 0a 20 20 20 20 2a 0a 20 20 20 20 2a 20 clean.up.the.dupes).....*.....*.
2bf20 40 70 61 72 61 6d 20 73 74 72 69 6e 67 20 24 73 65 71 6e 61 6d 65 20 54 68 65 20 73 65 71 75 65 @param.string.$seqname.The.seque
2bf40 6e 63 65 20 6e 61 6d 65 20 74 6f 20 63 6c 65 61 6e 20 75 70 0a 20 20 20 20 2a 20 40 72 65 74 75 nce.name.to.clean.up.....*.@retu
2bf60 72 6e 20 6d 69 78 65 64 20 44 42 5f 45 72 72 6f 72 20 6f 72 20 74 72 75 65 0a 20 20 20 20 2a 2f rn.mixed.DB_Error.or.true.....*/
2bf80 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 5f 42 43 73 65 71 75 65 6e 63 65 28 24 73 65 71 6e 61 .....function._BCsequence($seqna
2bfa0 6d 65 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 2f 2f 20 4f 62 74 61 69 6e 20 61 20 75 73 me).....{.........//.Obtain.a.us
2bfc0 65 72 2d 6c 65 76 65 6c 20 6c 6f 63 6b 2e 2e 2e 20 74 68 69 73 20 77 69 6c 6c 20 72 65 6c 65 61 er-level.lock....this.will.relea
2bfe0 73 65 20 61 6e 79 20 70 72 65 76 69 6f 75 73 0a 20 20 20 20 20 20 20 20 2f 2f 20 61 70 70 6c 69 se.any.previous.........//.appli
2c000 63 61 74 69 6f 6e 20 6c 6f 63 6b 73 2c 20 62 75 74 20 75 6e 6c 69 6b 65 20 4c 4f 43 4b 20 54 41 cation.locks,.but.unlike.LOCK.TA
2c020 42 4c 45 53 2c 20 69 74 20 64 6f 65 73 20 6e 6f 74 20 61 62 6f 72 74 0a 20 20 20 20 20 20 20 20 BLES,.it.does.not.abort.........
2c040 2f 2f 20 74 68 65 20 63 75 72 72 65 6e 74 20 74 72 61 6e 73 61 63 74 69 6f 6e 20 61 6e 64 20 69 //.the.current.transaction.and.i
2c060 73 20 6d 75 63 68 20 6c 65 73 73 20 66 72 65 71 75 65 6e 74 6c 79 20 75 73 65 64 2e 0a 20 20 20 s.much.less.frequently.used.....
2c080 20 20 20 20 20 24 72 65 73 75 6c 74 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 4f 6e 65 28 22 53 45 .....$result.=.$this->getOne("SE
2c0a0 4c 45 43 54 20 47 45 54 5f 4c 4f 43 4b 28 27 24 7b 73 65 71 6e 61 6d 65 7d 5f 6c 6f 63 6b 27 2c LECT.GET_LOCK('${seqname}_lock',
2c0c0 31 30 29 22 29 3b 0a 20 20 20 20 20 20 20 20 69 66 20 28 44 42 3a 3a 69 73 45 72 72 6f 72 28 24 10)");.........if.(DB::isError($
2c0e0 72 65 73 75 6c 74 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 72 result)).{.............return.$r
2c100 65 73 75 6c 74 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 69 66 20 28 24 72 65 esult;.........}.........if.($re
2c120 73 75 6c 74 20 3d 3d 20 30 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 46 61 69 6c sult.==.0).{.............//.Fail
2c140 65 64 20 74 6f 20 67 65 74 20 74 68 65 20 6c 6f 63 6b 2c 20 63 61 6e 27 74 20 64 6f 20 74 68 65 ed.to.get.the.lock,.can't.do.the
2c160 20 63 6f 6e 76 65 72 73 69 6f 6e 2c 20 62 61 69 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f .conversion,.bail.............//
2c180 20 77 69 74 68 20 61 20 44 42 5f 45 52 52 4f 52 5f 4e 4f 54 5f 4c 4f 43 4b 45 44 20 65 72 72 6f .with.a.DB_ERROR_NOT_LOCKED.erro
2c1a0 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6d 79 73 71 r.............return.$this->mysq
2c1c0 6c 52 61 69 73 65 45 72 72 6f 72 28 44 42 5f 45 52 52 4f 52 5f 4e 4f 54 5f 4c 4f 43 4b 45 44 29 lRaiseError(DB_ERROR_NOT_LOCKED)
2c1e0 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 24 68 69 67 68 65 73 74 5f 69 64 ;.........}..........$highest_id
2c200 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 4f 6e 65 28 22 53 45 4c 45 43 54 20 4d 41 58 28 69 64 29 .=.$this->getOne("SELECT.MAX(id)
2c220 20 46 52 4f 4d 20 24 7b 73 65 71 6e 61 6d 65 7d 22 29 3b 0a 20 20 20 20 20 20 20 20 69 66 20 28 .FROM.${seqname}");.........if.(
2c240 44 42 3a 3a 69 73 45 72 72 6f 72 28 24 68 69 67 68 65 73 74 5f 69 64 29 29 20 7b 0a 20 20 20 20 DB::isError($highest_id)).{.....
2c260 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 68 69 67 68 65 73 74 5f 69 64 3b 0a 20 20 20 20 ........return.$highest_id;.....
2c280 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 2f 2f 20 54 68 69 73 20 73 68 6f 75 6c 64 20 6b 69 6c ....}.........//.This.should.kil
2c2a0 6c 20 61 6c 6c 20 72 6f 77 73 20 65 78 63 65 70 74 20 74 68 65 20 68 69 67 68 65 73 74 0a 20 20 l.all.rows.except.the.highest...
2c2c0 20 20 20 20 20 20 2f 2f 20 57 65 20 73 68 6f 75 6c 64 20 70 72 6f 62 61 62 6c 79 20 64 6f 20 73 ......//.We.should.probably.do.s
2c2e0 6f 6d 65 74 68 69 6e 67 20 69 66 20 24 68 69 67 68 65 73 74 5f 69 64 20 69 73 6e 27 74 0a 20 20 omething.if.$highest_id.isn't...
2c300 20 20 20 20 20 20 2f 2f 20 6e 75 6d 65 72 69 63 2c 20 62 75 74 20 49 27 6d 20 61 74 20 61 20 6c ......//.numeric,.but.I'm.at.a.l
2c320 6f 73 73 20 61 73 20 68 6f 77 20 74 6f 20 68 61 6e 64 6c 65 20 74 68 61 74 2e 2e 2e 0a 20 20 20 oss.as.how.to.handle.that.......
2c340 20 20 20 20 20 24 72 65 73 75 6c 74 20 3d 20 24 74 68 69 73 2d 3e 71 75 65 72 79 28 22 44 45 4c .....$result.=.$this->query("DEL
2c360 45 54 45 20 46 52 4f 4d 20 24 7b 73 65 71 6e 61 6d 65 7d 20 57 48 45 52 45 20 69 64 20 3c 3e 20 ETE.FROM.${seqname}.WHERE.id.<>.
2c380 24 68 69 67 68 65 73 74 5f 69 64 22 29 3b 0a 20 20 20 20 20 20 20 20 69 66 20 28 44 42 3a 3a 69 $highest_id");.........if.(DB::i
2c3a0 73 45 72 72 6f 72 28 24 72 65 73 75 6c 74 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 sError($result)).{.............r
2c3c0 65 74 75 72 6e 20 24 72 65 73 75 6c 74 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 eturn.$result;.........}........
2c3e0 20 20 2f 2f 20 49 66 20 61 6e 6f 74 68 65 72 20 74 68 72 65 61 64 20 68 61 73 20 62 65 65 6e 20 ..//.If.another.thread.has.been.
2c400 77 61 69 74 69 6e 67 20 66 6f 72 20 74 68 69 73 20 6c 6f 63 6b 2c 0a 20 20 20 20 20 20 20 20 2f waiting.for.this.lock,........./
2c420 2f 20 69 74 20 77 69 6c 6c 20 67 6f 20 74 68 72 75 20 74 68 65 20 61 62 6f 76 65 20 70 72 6f 63 /.it.will.go.thru.the.above.proc
2c440 65 64 75 72 65 2c 20 62 75 74 20 77 69 6c 6c 20 68 61 76 65 20 6e 6f 0a 20 20 20 20 20 20 20 20 edure,.but.will.have.no.........
2c460 2f 2f 20 72 65 61 6c 20 65 66 66 65 63 74 0a 20 20 20 20 20 20 20 20 24 72 65 73 75 6c 74 20 3d //.real.effect.........$result.=
2c480 20 24 74 68 69 73 2d 3e 67 65 74 4f 6e 65 28 22 53 45 4c 45 43 54 20 52 45 4c 45 41 53 45 5f 4c .$this->getOne("SELECT.RELEASE_L
2c4a0 4f 43 4b 28 27 24 7b 73 65 71 6e 61 6d 65 7d 5f 6c 6f 63 6b 27 29 22 29 3b 0a 20 20 20 20 20 20 OCK('${seqname}_lock')");.......
2c4c0 20 20 69 66 20 28 44 42 3a 3a 69 73 45 72 72 6f 72 28 24 72 65 73 75 6c 74 29 29 20 7b 0a 20 20 ..if.(DB::isError($result)).{...
2c4e0 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 72 65 73 75 6c 74 3b 0a 20 20 20 20 20 20 ..........return.$result;.......
2c500 20 20 7d 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 20 20 20 20 7d 0a 0a ..}.........return.true;.....}..
2c520 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 71 75 6f 74 65 28 29 0a 0a 20 ....//.}}}.....//.{{{.quote()...
2c540 20 20 20 2f 2a 2a 0a 20 20 20 20 2a 20 51 75 6f 74 65 20 74 68 65 20 67 69 76 65 6e 20 73 74 72 .../**.....*.Quote.the.given.str
2c560 69 6e 67 20 73 6f 20 69 74 20 63 61 6e 20 62 65 20 73 61 66 65 6c 79 20 75 73 65 64 20 77 69 74 ing.so.it.can.be.safely.used.wit
2c580 68 69 6e 20 73 74 72 69 6e 67 20 64 65 6c 69 6d 69 74 65 72 73 0a 20 20 20 20 2a 20 69 6e 20 61 hin.string.delimiters.....*.in.a
2c5a0 20 71 75 65 72 79 2e 0a 20 20 20 20 2a 20 40 70 61 72 61 6d 20 24 73 74 72 69 6e 67 20 6d 69 78 .query......*.@param.$string.mix
2c5c0 65 64 20 44 61 74 61 20 74 6f 20 62 65 20 71 75 6f 74 65 64 0a 20 20 20 20 2a 20 40 72 65 74 75 ed.Data.to.be.quoted.....*.@retu
2c5e0 72 6e 20 6d 69 78 65 64 20 22 4e 55 4c 4c 22 20 73 74 72 69 6e 67 2c 20 71 75 6f 74 65 64 20 73 rn.mixed."NULL".string,.quoted.s
2c600 74 72 69 6e 67 20 6f 72 20 6f 72 69 67 69 6e 61 6c 20 64 61 74 61 0a 20 20 20 20 2a 2f 0a 20 20 tring.or.original.data.....*/...
2c620 20 20 66 75 6e 63 74 69 6f 6e 20 71 75 6f 74 65 28 24 73 74 72 20 3d 20 6e 75 6c 6c 29 0a 20 20 ..function.quote($str.=.null)...
2c640 20 20 7b 0a 20 20 20 20 20 20 20 20 73 77 69 74 63 68 20 28 73 74 72 74 6f 6c 6f 77 65 72 28 67 ..{.........switch.(strtolower(g
2c660 65 74 74 79 70 65 28 24 73 74 72 29 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 63 61 73 ettype($str))).{.............cas
2c680 65 20 27 6e 75 6c 6c 27 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e e.'null':.................return
2c6a0 20 27 4e 55 4c 4c 27 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 63 61 73 65 20 27 69 6e 74 65 67 .'NULL';.............case.'integ
2c6c0 65 72 27 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 63 61 73 65 20 27 64 6f 75 62 6c 65 27 3a 0a er':.............case.'double':.
2c6e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 73 74 72 3b 0a 20 20 20 ................return.$str;....
2c700 20 20 20 20 20 20 20 20 20 63 61 73 65 20 27 73 74 72 69 6e 67 27 3a 0a 20 20 20 20 20 20 20 20 .........case.'string':.........
2c720 20 20 20 20 64 65 66 61 75 6c 74 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 28 ....default:.................if(
2c740 66 75 6e 63 74 69 6f 6e 5f 65 78 69 73 74 73 28 27 6d 79 73 71 6c 5f 72 65 61 6c 5f 65 73 63 61 function_exists('mysql_real_esca
2c760 70 65 5f 73 74 72 69 6e 67 27 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 pe_string')).{..................
2c780 20 20 20 72 65 74 75 72 6e 20 22 27 22 2e 6d 79 73 71 6c 5f 72 65 61 6c 5f 65 73 63 61 70 65 5f ...return."'".mysql_real_escape_
2c7a0 73 74 72 69 6e 67 28 24 73 74 72 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 6e 65 63 74 69 6f 6e 29 2e string($str,.$this->connection).
2c7c0 22 27 22 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20 "'";.................}.else.{...
2c7e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 22 27 22 2e 6d 79 73 ..................return."'".mys
2c800 71 6c 5f 65 73 63 61 70 65 5f 73 74 72 69 6e 67 28 24 73 74 72 29 2e 22 27 22 3b 0a 20 20 20 20 ql_escape_string($str)."'";.....
2c820 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 7d 0a 0a 20 ............}.........}.....}...
2c840 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 6d 6f 64 69 66 79 51 75 65 72 79 ...//.}}}.....//.{{{.modifyQuery
2c860 28 29 0a 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 6d 6f 64 69 66 79 51 75 65 72 79 28 24 71 75 ()......function.modifyQuery($qu
2c880 65 72 79 2c 20 24 73 75 62 6a 65 63 74 20 3d 20 6e 75 6c 6c 29 0a 20 20 20 20 7b 0a 20 20 20 20 ery,.$subject.=.null).....{.....
2c8a0 20 20 20 20 69 66 20 28 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 5b 27 6f 70 74 69 6d 69 7a 65 ....if.($this->options['optimize
2c8c0 27 5d 20 3d 3d 20 27 70 6f 72 74 61 62 69 6c 69 74 79 27 29 20 7b 0a 20 20 20 20 20 20 20 20 20 '].==.'portability').{..........
2c8e0 20 20 20 2f 2f 20 22 44 45 4c 45 54 45 20 46 52 4f 4d 20 74 61 62 6c 65 22 20 67 69 76 65 73 20 ...//."DELETE.FROM.table".gives.
2c900 30 20 61 66 66 65 63 74 65 64 20 72 6f 77 73 20 69 6e 20 4d 79 53 51 4c 2e 0a 20 20 20 20 20 20 0.affected.rows.in.MySQL........
2c920 20 20 20 20 20 20 2f 2f 20 54 68 69 73 20 6c 69 74 74 6c 65 20 68 61 63 6b 20 6c 65 74 73 20 79 ......//.This.little.hack.lets.y
2c940 6f 75 20 6b 6e 6f 77 20 68 6f 77 20 6d 61 6e 79 20 72 6f 77 73 20 77 65 72 65 20 64 65 6c 65 74 ou.know.how.many.rows.were.delet
2c960 65 64 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 ed..............if.(preg_match('
2c980 2f 5e 5c 73 2a 44 45 4c 45 54 45 5c 73 2b 46 52 4f 4d 5c 73 2b 28 5c 53 2b 29 5c 73 2a 24 2f 69 /^\s*DELETE\s+FROM\s+(\S+)\s*$/i
2c9a0 27 2c 20 24 71 75 65 72 79 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 71 ',.$query)).{.................$q
2c9c0 75 65 72 79 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 2f 5e 5c 73 2a 44 45 4c 45 54 45 uery.=.preg_replace('/^\s*DELETE
2c9e0 5c 73 2b 46 52 4f 4d 5c 73 2b 28 5c 53 2b 29 5c 73 2a 24 2f 27 2c 0a 20 20 20 20 20 20 20 20 20 \s+FROM\s+(\S+)\s*$/',..........
2ca00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 44 45 .............................'DE
2ca20 4c 45 54 45 20 46 52 4f 4d 20 5c 31 20 57 48 45 52 45 20 31 3d 31 27 2c 20 24 71 75 65 72 79 29 LETE.FROM.\1.WHERE.1=1',.$query)
2ca40 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 ;.............}.........}.......
2ca60 20 20 72 65 74 75 72 6e 20 24 71 75 65 72 79 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d ..return.$query;.....}......//.}
2ca80 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 6d 6f 64 69 66 79 4c 69 6d 69 74 51 75 65 72 79 28 29 }}.....//.{{{.modifyLimitQuery()
2caa0 0a 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 6d 6f 64 69 66 79 4c 69 6d 69 74 51 75 65 72 79 28 ......function.modifyLimitQuery(
2cac0 24 71 75 65 72 79 2c 20 24 66 72 6f 6d 2c 20 24 63 6f 75 6e 74 29 0a 20 20 20 20 7b 0a 20 20 20 $query,.$from,.$count).....{....
2cae0 20 20 20 20 20 69 66 20 28 44 42 3a 3a 69 73 4d 61 6e 69 70 28 24 71 75 65 72 79 29 29 20 7b 0a .....if.(DB::isManip($query)).{.
2cb00 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 71 75 65 72 79 20 2e 20 22 20 4c 49 ............return.$query...".LI
2cb20 4d 49 54 20 24 63 6f 75 6e 74 22 3b 0a 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20 MIT.$count";.........}.else.{...
2cb40 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 71 75 65 72 79 20 2e 20 22 20 4c 49 4d 49 ..........return.$query...".LIMI
2cb60 54 20 24 66 72 6f 6d 2c 20 24 63 6f 75 6e 74 22 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 T.$from,.$count";.........}.....
2cb80 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 6d 79 73 71 6c 52 61 }......//.}}}.....//.{{{.mysqlRa
2cba0 69 73 65 45 72 72 6f 72 28 29 0a 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 6d 79 73 71 6c 52 61 iseError()......function.mysqlRa
2cbc0 69 73 65 45 72 72 6f 72 28 24 65 72 72 6e 6f 20 3d 20 6e 75 6c 6c 29 0a 20 20 20 20 7b 0a 20 20 iseError($errno.=.null).....{...
2cbe0 20 20 20 20 20 20 69 66 20 28 24 65 72 72 6e 6f 20 3d 3d 3d 20 6e 75 6c 6c 29 20 7b 0a 20 20 20 ......if.($errno.===.null).{....
2cc00 20 20 20 20 20 20 20 20 20 24 65 72 72 6e 6f 20 3d 20 24 74 68 69 73 2d 3e 65 72 72 6f 72 43 6f .........$errno.=.$this->errorCo
2cc20 64 65 28 6d 79 73 71 6c 5f 65 72 72 6e 6f 28 24 74 68 69 73 2d 3e 63 6f 6e 6e 65 63 74 69 6f 6e de(mysql_errno($this->connection
2cc40 29 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 ));.........}.........return.$th
2cc60 69 73 2d 3e 72 61 69 73 65 45 72 72 6f 72 28 24 65 72 72 6e 6f 2c 20 6e 75 6c 6c 2c 20 6e 75 6c is->raiseError($errno,.null,.nul
2cc80 6c 2c 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 l,.null,........................
2cca0 20 20 20 20 20 20 20 20 20 20 40 6d 79 73 71 6c 5f 65 72 72 6e 6f 28 24 74 68 69 73 2d 3e 63 6f ..........@mysql_errno($this->co
2ccc0 6e 6e 65 63 74 69 6f 6e 29 20 2e 20 22 20 2a 2a 20 22 20 2e 0a 20 20 20 20 20 20 20 20 20 20 20 nnection)...".**."..............
2cce0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 40 6d 79 73 71 6c 5f 65 72 72 ......................@mysql_err
2cd00 6f 72 28 24 74 68 69 73 2d 3e 63 6f 6e 6e 65 63 74 69 6f 6e 29 29 3b 0a 20 20 20 20 7d 0a 0a 20 or($this->connection));.....}...
2cd20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 74 61 62 6c 65 49 6e 66 6f 28 29 ...//.}}}.....//.{{{.tableInfo()
2cd40 0a 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 74 61 62 6c 65 49 6e 66 6f 28 24 72 65 73 75 6c 74 ......function.tableInfo($result
2cd60 2c 20 24 6d 6f 64 65 20 3d 20 6e 75 6c 6c 29 20 7b 0a 20 20 20 20 20 20 20 20 24 63 6f 75 6e 74 ,.$mode.=.null).{.........$count
2cd80 20 3d 20 30 3b 0a 20 20 20 20 20 20 20 20 24 69 64 20 20 20 20 3d 20 30 3b 0a 20 20 20 20 20 20 .=.0;.........$id....=.0;.......
2cda0 20 20 24 72 65 73 20 20 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 20 20 20 20 20 20 20 20 2f 2a 0a ..$res...=.array();........../*.
2cdc0 20 20 20 20 20 20 20 20 20 2a 20 64 65 70 65 6e 64 69 6e 67 20 6f 6e 20 24 6d 6f 64 65 2c 20 6d .........*.depending.on.$mode,.m
2cde0 65 74 61 64 61 74 61 20 72 65 74 75 72 6e 73 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 76 61 etadata.returns.the.following.va
2ce00 6c 75 65 73 3a 0a 20 20 20 20 20 20 20 20 20 2a 0a 20 20 20 20 20 20 20 20 20 2a 20 2d 20 6d 6f lues:..........*..........*.-.mo
2ce20 64 65 20 69 73 20 6e 75 6c 6c 20 28 64 65 66 61 75 6c 74 29 3a 0a 20 20 20 20 20 20 20 20 20 2a de.is.null.(default):..........*
2ce40 20 24 72 65 73 75 6c 74 5b 5d 3a 0a 20 20 20 20 20 20 20 20 20 2a 20 20 20 5b 30 5d 5b 22 74 61 .$result[]:..........*...[0]["ta
2ce60 62 6c 65 22 5d 20 20 74 61 62 6c 65 20 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 2a 20 20 20 5b ble"]..table.name..........*...[
2ce80 30 5d 5b 22 6e 61 6d 65 22 5d 20 20 20 66 69 65 6c 64 20 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 0]["name"]...field.name.........
2cea0 20 2a 20 20 20 5b 30 5d 5b 22 74 79 70 65 22 5d 20 20 20 66 69 65 6c 64 20 74 79 70 65 0a 20 20 .*...[0]["type"]...field.type...
2cec0 20 20 20 20 20 20 20 2a 20 20 20 5b 30 5d 5b 22 6c 65 6e 22 5d 20 20 20 20 66 69 65 6c 64 20 6c .......*...[0]["len"]....field.l
2cee0 65 6e 67 74 68 0a 20 20 20 20 20 20 20 20 20 2a 20 20 20 5b 30 5d 5b 22 66 6c 61 67 73 22 5d 20 ength..........*...[0]["flags"].
2cf00 20 66 69 65 6c 64 20 66 6c 61 67 73 0a 20 20 20 20 20 20 20 20 20 2a 0a 20 20 20 20 20 20 20 20 .field.flags..........*.........
2cf20 20 2a 20 2d 20 6d 6f 64 65 20 69 73 20 44 42 5f 54 41 42 4c 45 49 4e 46 4f 5f 4f 52 44 45 52 0a .*.-.mode.is.DB_TABLEINFO_ORDER.
2cf40 20 20 20 20 20 20 20 20 20 2a 20 24 72 65 73 75 6c 74 5b 5d 3a 0a 20 20 20 20 20 20 20 20 20 2a .........*.$result[]:..........*
2cf60 20 20 20 5b 22 6e 75 6d 5f 66 69 65 6c 64 73 22 5d 20 6e 75 6d 62 65 72 20 6f 66 20 6d 65 74 61 ...["num_fields"].number.of.meta
2cf80 64 61 74 61 20 72 65 63 6f 72 64 73 0a 20 20 20 20 20 20 20 20 20 2a 20 20 20 5b 30 5d 5b 22 74 data.records..........*...[0]["t
2cfa0 61 62 6c 65 22 5d 20 20 74 61 62 6c 65 20 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 2a 20 20 20 able"]..table.name..........*...
2cfc0 5b 30 5d 5b 22 6e 61 6d 65 22 5d 20 20 20 66 69 65 6c 64 20 6e 61 6d 65 0a 20 20 20 20 20 20 20 [0]["name"]...field.name........
2cfe0 20 20 2a 20 20 20 5b 30 5d 5b 22 74 79 70 65 22 5d 20 20 20 66 69 65 6c 64 20 74 79 70 65 0a 20 ..*...[0]["type"]...field.type..
2d000 20 20 20 20 20 20 20 20 2a 20 20 20 5b 30 5d 5b 22 6c 65 6e 22 5d 20 20 20 20 66 69 65 6c 64 20 ........*...[0]["len"]....field.
2d020 6c 65 6e 67 74 68 0a 20 20 20 20 20 20 20 20 20 2a 20 20 20 5b 30 5d 5b 22 66 6c 61 67 73 22 5d length..........*...[0]["flags"]
2d040 20 20 66 69 65 6c 64 20 66 6c 61 67 73 0a 20 20 20 20 20 20 20 20 20 2a 20 20 20 5b 22 6f 72 64 ..field.flags..........*...["ord
2d060 65 72 22 5d 5b 66 69 65 6c 64 20 6e 61 6d 65 5d 20 20 69 6e 64 65 78 20 6f 66 20 66 69 65 6c 64 er"][field.name]..index.of.field
2d080 20 6e 61 6d 65 64 20 22 66 69 65 6c 64 20 6e 61 6d 65 22 0a 20 20 20 20 20 20 20 20 20 2a 20 20 .named."field.name"..........*..
2d0a0 20 54 68 65 20 6c 61 73 74 20 6f 6e 65 20 69 73 20 75 73 65 64 2c 20 69 66 20 79 6f 75 20 68 61 .The.last.one.is.used,.if.you.ha
2d0c0 76 65 20 61 20 66 69 65 6c 64 20 6e 61 6d 65 2c 20 62 75 74 20 6e 6f 20 69 6e 64 65 78 2e 0a 20 ve.a.field.name,.but.no.index...
2d0e0 20 20 20 20 20 20 20 20 2a 20 20 20 54 65 73 74 3a 20 20 69 66 20 28 69 73 73 65 74 28 24 72 65 ........*...Test:..if.(isset($re
2d100 73 75 6c 74 5b 27 6d 65 74 61 27 5d 5b 27 6d 79 66 69 65 6c 64 27 5d 29 29 20 7b 20 2e 2e 2e 0a sult['meta']['myfield'])).{.....
2d120 20 20 20 20 20 20 20 20 20 2a 0a 20 20 20 20 20 20 20 20 20 2a 20 2d 20 6d 6f 64 65 20 69 73 20 .........*..........*.-.mode.is.
2d140 44 42 5f 54 41 42 4c 45 49 4e 46 4f 5f 4f 52 44 45 52 54 41 42 4c 45 0a 20 20 20 20 20 20 20 20 DB_TABLEINFO_ORDERTABLE.........
2d160 20 2a 20 20 20 20 74 68 65 20 73 61 6d 65 20 61 73 20 61 62 6f 76 65 2e 20 62 75 74 20 61 64 64 .*....the.same.as.above..but.add
2d180 69 74 69 6f 6e 61 6c 6c 79 0a 20 20 20 20 20 20 20 20 20 2a 20 20 20 5b 22 6f 72 64 65 72 74 61 itionally..........*...["orderta
2d1a0 62 6c 65 22 5d 5b 74 61 62 6c 65 20 6e 61 6d 65 5d 5b 66 69 65 6c 64 20 6e 61 6d 65 5d 20 69 6e ble"][table.name][field.name].in
2d1c0 64 65 78 20 6f 66 20 66 69 65 6c 64 0a 20 20 20 20 20 20 20 20 20 2a 20 20 20 20 20 20 6e 61 6d dex.of.field..........*......nam
2d1e0 65 64 20 22 66 69 65 6c 64 20 6e 61 6d 65 22 0a 20 20 20 20 20 20 20 20 20 2a 0a 20 20 20 20 20 ed."field.name"..........*......
2d200 20 20 20 20 2a 20 20 20 20 20 20 74 68 69 73 20 69 73 2c 20 62 65 63 61 75 73 65 20 69 66 20 79 ....*......this.is,.because.if.y
2d220 6f 75 20 68 61 76 65 20 66 69 65 6c 64 73 20 66 72 6f 6d 20 64 69 66 66 65 72 65 6e 74 0a 20 20 ou.have.fields.from.different...
2d240 20 20 20 20 20 20 20 2a 20 20 20 20 20 20 74 61 62 6c 65 73 20 77 69 74 68 20 74 68 65 20 73 61 .......*......tables.with.the.sa
2d260 6d 65 20 66 69 65 6c 64 20 6e 61 6d 65 20 2a 20 74 68 65 79 20 6f 76 65 72 72 69 64 65 20 65 61 me.field.name.*.they.override.ea
2d280 63 68 0a 20 20 20 20 20 20 20 20 20 2a 20 20 20 20 20 20 6f 74 68 65 72 20 77 69 74 68 20 44 42 ch..........*......other.with.DB
2d2a0 5f 54 41 42 4c 45 49 4e 46 4f 5f 4f 52 44 45 52 0a 20 20 20 20 20 20 20 20 20 2a 0a 20 20 20 20 _TABLEINFO_ORDER..........*.....
2d2c0 20 20 20 20 20 2a 20 20 20 20 20 20 79 6f 75 20 63 61 6e 20 63 6f 6d 62 69 6e 65 20 44 42 5f 54 .....*......you.can.combine.DB_T
2d2e0 41 42 4c 45 49 4e 46 4f 5f 4f 52 44 45 52 20 61 6e 64 0a 20 20 20 20 20 20 20 20 20 2a 20 20 20 ABLEINFO_ORDER.and..........*...
2d300 20 20 20 44 42 5f 54 41 42 4c 45 49 4e 46 4f 5f 4f 52 44 45 52 54 41 42 4c 45 20 77 69 74 68 20 ...DB_TABLEINFO_ORDERTABLE.with.
2d320 44 42 5f 54 41 42 4c 45 49 4e 46 4f 5f 4f 52 44 45 52 20 7c 0a 20 20 20 20 20 20 20 20 20 2a 20 DB_TABLEINFO_ORDER.|..........*.
2d340 20 20 20 20 20 44 42 5f 54 41 42 4c 45 49 4e 46 4f 5f 4f 52 44 45 52 54 41 42 4c 45 20 2a 20 6f .....DB_TABLEINFO_ORDERTABLE.*.o
2d360 72 20 77 69 74 68 20 44 42 5f 54 41 42 4c 45 49 4e 46 4f 5f 46 55 4c 4c 0a 20 20 20 20 20 20 20 r.with.DB_TABLEINFO_FULL........
2d380 20 20 2a 2f 0a 0a 20 20 20 20 20 20 20 20 2f 2f 20 69 66 20 24 72 65 73 75 6c 74 20 69 73 20 61 ..*/..........//.if.$result.is.a
2d3a0 20 73 74 72 69 6e 67 2c 20 74 68 65 6e 20 77 65 20 77 61 6e 74 20 69 6e 66 6f 72 6d 61 74 69 6f .string,.then.we.want.informatio
2d3c0 6e 20 61 62 6f 75 74 20 61 0a 20 20 20 20 20 20 20 20 2f 2f 20 74 61 62 6c 65 20 77 69 74 68 6f n.about.a.........//.table.witho
2d3e0 75 74 20 61 20 72 65 73 75 6c 74 73 65 74 0a 20 20 20 20 20 20 20 20 69 66 20 28 69 73 5f 73 74 ut.a.resultset.........if.(is_st
2d400 72 69 6e 67 28 24 72 65 73 75 6c 74 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 69 64 ring($result)).{.............$id
2d420 20 3d 20 40 6d 79 73 71 6c 5f 6c 69 73 74 5f 66 69 65 6c 64 73 28 24 74 68 69 73 2d 3e 64 73 6e .=.@mysql_list_fields($this->dsn
2d440 5b 27 64 61 74 61 62 61 73 65 27 5d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ['database'],...................
2d460 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 72 65 73 75 6c 74 2c 20 24 74 68 69 ...................$result,.$thi
2d480 73 2d 3e 63 6f 6e 6e 65 63 74 69 6f 6e 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 s->connection);.............if.(
2d4a0 65 6d 70 74 79 28 24 69 64 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 empty($id)).{.................re
2d4c0 74 75 72 6e 20 24 74 68 69 73 2d 3e 6d 79 73 71 6c 52 61 69 73 65 45 72 72 6f 72 28 29 3b 0a 20 turn.$this->mysqlRaiseError();..
2d4e0 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 20 2f 2f ...........}.........}.else.{.//
2d500 20 65 6c 73 65 20 77 65 20 77 61 6e 74 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 61 62 6f 75 74 20 .else.we.want.information.about.
2d520 61 20 72 65 73 75 6c 74 73 65 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 69 64 20 3d 20 24 72 a.resultset.............$id.=.$r
2d540 65 73 75 6c 74 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 65 6d 70 74 79 28 24 69 64 esult;.............if.(empty($id
2d560 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 )).{.................return.$thi
2d580 73 2d 3e 6d 79 73 71 6c 52 61 69 73 65 45 72 72 6f 72 28 29 3b 0a 20 20 20 20 20 20 20 20 20 20 s->mysqlRaiseError();...........
2d5a0 20 20 7d 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 24 63 6f 75 6e 74 20 3d 20 ..}.........}..........$count.=.
2d5c0 40 6d 79 73 71 6c 5f 6e 75 6d 5f 66 69 65 6c 64 73 28 24 69 64 29 3b 0a 0a 20 20 20 20 20 20 20 @mysql_num_fields($id);.........
2d5e0 20 2f 2f 20 6d 61 64 65 20 74 68 69 73 20 49 46 20 64 75 65 20 74 6f 20 70 65 72 66 6f 72 6d 61 .//.made.this.IF.due.to.performa
2d600 6e 63 65 20 28 6f 6e 65 20 69 66 20 69 73 20 66 61 73 74 65 72 20 74 68 61 6e 20 24 63 6f 75 6e nce.(one.if.is.faster.than.$coun
2d620 74 20 69 66 27 73 29 0a 20 20 20 20 20 20 20 20 69 66 20 28 65 6d 70 74 79 28 24 6d 6f 64 65 29 t.if's).........if.(empty($mode)
2d640 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 20 28 24 69 3d 30 3b 20 24 69 3c 24 63 ).{.............for.($i=0;.$i<$c
2d660 6f 75 6e 74 3b 20 24 69 2b 2b 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 72 ount;.$i++).{.................$r
2d680 65 73 5b 24 69 5d 5b 27 74 61 62 6c 65 27 5d 20 3d 20 40 6d 79 73 71 6c 5f 66 69 65 6c 64 5f 74 es[$i]['table'].=.@mysql_field_t
2d6a0 61 62 6c 65 20 28 24 69 64 2c 20 24 69 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 able.($id,.$i);.................
2d6c0 24 72 65 73 5b 24 69 5d 5b 27 6e 61 6d 65 27 5d 20 20 3d 20 40 6d 79 73 71 6c 5f 66 69 65 6c 64 $res[$i]['name']..=.@mysql_field
2d6e0 5f 6e 61 6d 65 20 20 28 24 69 64 2c 20 24 69 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 _name..($id,.$i);...............
2d700 20 20 24 72 65 73 5b 24 69 5d 5b 27 74 79 70 65 27 5d 20 20 3d 20 40 6d 79 73 71 6c 5f 66 69 65 ..$res[$i]['type']..=.@mysql_fie
2d720 6c 64 5f 74 79 70 65 20 20 28 24 69 64 2c 20 24 69 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 ld_type..($id,.$i);.............
2d740 20 20 20 20 24 72 65 73 5b 24 69 5d 5b 27 6c 65 6e 27 5d 20 20 20 3d 20 40 6d 79 73 71 6c 5f 66 ....$res[$i]['len']...=.@mysql_f
2d760 69 65 6c 64 5f 6c 65 6e 20 20 20 28 24 69 64 2c 20 24 69 29 3b 0a 20 20 20 20 20 20 20 20 20 20 ield_len...($id,.$i);...........
2d780 20 20 20 20 20 20 24 72 65 73 5b 24 69 5d 5b 27 66 6c 61 67 73 27 5d 20 3d 20 40 6d 79 73 71 6c ......$res[$i]['flags'].=.@mysql
2d7a0 5f 66 69 65 6c 64 5f 66 6c 61 67 73 20 28 24 69 64 2c 20 24 69 29 3b 0a 20 20 20 20 20 20 20 20 _field_flags.($id,.$i);.........
2d7c0 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 20 2f 2f 20 66 75 6c 6c 0a 20 ....}.........}.else.{.//.full..
2d7e0 20 20 20 20 20 20 20 20 20 20 20 24 72 65 73 5b 27 6e 75 6d 5f 66 69 65 6c 64 73 27 5d 3d 20 24 ...........$res['num_fields']=.$
2d800 63 6f 75 6e 74 3b 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 20 28 24 69 3d 30 3b 20 24 count;..............for.($i=0;.$
2d820 69 3c 24 63 6f 75 6e 74 3b 20 24 69 2b 2b 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 i<$count;.$i++).{...............
2d840 20 20 24 72 65 73 5b 24 69 5d 5b 27 74 61 62 6c 65 27 5d 20 3d 20 40 6d 79 73 71 6c 5f 66 69 65 ..$res[$i]['table'].=.@mysql_fie
2d860 6c 64 5f 74 61 62 6c 65 20 28 24 69 64 2c 20 24 69 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 ld_table.($id,.$i);.............
2d880 20 20 20 20 24 72 65 73 5b 24 69 5d 5b 27 6e 61 6d 65 27 5d 20 20 3d 20 40 6d 79 73 71 6c 5f 66 ....$res[$i]['name']..=.@mysql_f
2d8a0 69 65 6c 64 5f 6e 61 6d 65 20 20 28 24 69 64 2c 20 24 69 29 3b 0a 20 20 20 20 20 20 20 20 20 20 ield_name..($id,.$i);...........
2d8c0 20 20 20 20 20 20 24 72 65 73 5b 24 69 5d 5b 27 74 79 70 65 27 5d 20 20 3d 20 40 6d 79 73 71 6c ......$res[$i]['type']..=.@mysql
2d8e0 5f 66 69 65 6c 64 5f 74 79 70 65 20 20 28 24 69 64 2c 20 24 69 29 3b 0a 20 20 20 20 20 20 20 20 _field_type..($id,.$i);.........
2d900 20 20 20 20 20 20 20 20 24 72 65 73 5b 24 69 5d 5b 27 6c 65 6e 27 5d 20 20 20 3d 20 40 6d 79 73 ........$res[$i]['len']...=.@mys
2d920 71 6c 5f 66 69 65 6c 64 5f 6c 65 6e 20 20 20 28 24 69 64 2c 20 24 69 29 3b 0a 20 20 20 20 20 20 ql_field_len...($id,.$i);.......
2d940 20 20 20 20 20 20 20 20 20 20 24 72 65 73 5b 24 69 5d 5b 27 66 6c 61 67 73 27 5d 20 3d 20 40 6d ..........$res[$i]['flags'].=.@m
2d960 79 73 71 6c 5f 66 69 65 6c 64 5f 66 6c 61 67 73 20 28 24 69 64 2c 20 24 69 29 3b 0a 20 20 20 20 ysql_field_flags.($id,.$i);.....
2d980 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 24 6d 6f 64 65 20 26 20 44 42 5f 54 41 42 4c 45 ............if.($mode.&.DB_TABLE
2d9a0 49 4e 46 4f 5f 4f 52 44 45 52 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 INFO_ORDER).{...................
2d9c0 20 20 24 72 65 73 5b 27 6f 72 64 65 72 27 5d 5b 24 72 65 73 5b 24 69 5d 5b 27 6e 61 6d 65 27 5d ..$res['order'][$res[$i]['name']
2d9e0 5d 20 3d 20 24 69 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 ].=.$i;.................}.......
2da00 20 20 20 20 20 20 20 20 20 20 69 66 20 28 24 6d 6f 64 65 20 26 20 44 42 5f 54 41 42 4c 45 49 4e ..........if.($mode.&.DB_TABLEIN
2da20 46 4f 5f 4f 52 44 45 52 54 41 42 4c 45 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 FO_ORDERTABLE).{................
2da40 20 20 20 20 20 24 72 65 73 5b 27 6f 72 64 65 72 74 61 62 6c 65 27 5d 5b 24 72 65 73 5b 24 69 5d .....$res['ordertable'][$res[$i]
2da60 5b 27 74 61 62 6c 65 27 5d 5d 5b 24 72 65 73 5b 24 69 5d 5b 27 6e 61 6d 65 27 5d 5d 20 3d 20 24 ['table']][$res[$i]['name']].=.$
2da80 69 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 i;.................}............
2daa0 20 7d 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 2f 2f 20 66 72 65 65 20 74 68 .}.........}..........//.free.th
2dac0 65 20 72 65 73 75 6c 74 20 6f 6e 6c 79 20 69 66 20 77 65 20 77 65 72 65 20 63 61 6c 6c 65 64 20 e.result.only.if.we.were.called.
2dae0 6f 6e 20 61 20 74 61 62 6c 65 0a 20 20 20 20 20 20 20 20 69 66 20 28 69 73 5f 73 74 72 69 6e 67 on.a.table.........if.(is_string
2db00 28 24 72 65 73 75 6c 74 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 40 6d 79 73 71 6c 5f ($result)).{.............@mysql_
2db20 66 72 65 65 5f 72 65 73 75 6c 74 28 24 69 64 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 free_result($id);.........}.....
2db40 20 20 20 20 72 65 74 75 72 6e 20 24 72 65 73 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d ....return.$res;.....}......//.}
2db60 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 67 65 74 53 70 65 63 69 61 6c 51 75 65 72 79 28 29 0a }}.....//.{{{.getSpecialQuery().
2db80 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 2a 20 52 65 74 75 72 6e 73 20 74 68 65 20 71 75 65 72 79 ...../**.....*.Returns.the.query
2dba0 20 6e 65 65 64 65 64 20 74 6f 20 67 65 74 20 73 6f 6d 65 20 62 61 63 6b 65 6e 64 20 69 6e 66 6f .needed.to.get.some.backend.info
2dbc0 0a 20 20 20 20 2a 20 40 70 61 72 61 6d 20 73 74 72 69 6e 67 20 24 74 79 70 65 20 57 68 61 74 20 .....*.@param.string.$type.What.
2dbe0 6b 69 6e 64 20 6f 66 20 69 6e 66 6f 20 79 6f 75 20 77 61 6e 74 20 74 6f 20 72 65 74 72 69 65 76 kind.of.info.you.want.to.retriev
2dc00 65 0a 20 20 20 20 2a 20 40 72 65 74 75 72 6e 20 73 74 72 69 6e 67 20 54 68 65 20 53 51 4c 20 71 e.....*.@return.string.The.SQL.q
2dc20 75 65 72 79 20 73 74 72 69 6e 67 0a 20 20 20 20 2a 2f 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 uery.string.....*/.....function.
2dc40 67 65 74 53 70 65 63 69 61 6c 51 75 65 72 79 28 24 74 79 70 65 29 0a 20 20 20 20 7b 0a 20 20 20 getSpecialQuery($type).....{....
2dc60 20 20 20 20 20 73 77 69 74 63 68 20 28 24 74 79 70 65 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 .....switch.($type).{...........
2dc80 20 20 63 61 73 65 20 27 74 61 62 6c 65 73 27 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..case.'tables':................
2dca0 20 24 73 71 6c 20 3d 20 22 53 48 4f 57 20 54 41 42 4c 45 53 22 3b 0a 20 20 20 20 20 20 20 20 20 .$sql.=."SHOW.TABLES";..........
2dcc0 20 20 20 20 20 20 20 62 72 65 61 6b 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 63 61 73 65 20 27 .......break;.............case.'
2dce0 76 69 65 77 73 27 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 44 views':.................return.D
2dd00 42 5f 45 52 52 4f 52 5f 4e 4f 54 5f 43 41 50 41 42 4c 45 3b 0a 20 20 20 20 20 20 20 20 20 20 20 B_ERROR_NOT_CAPABLE;............
2dd20 20 63 61 73 65 20 27 75 73 65 72 73 27 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 .case.'users':.................$
2dd40 73 71 6c 20 3d 20 22 73 65 6c 65 63 74 20 64 69 73 74 69 6e 63 74 20 55 73 65 72 20 66 72 6f 6d sql.=."select.distinct.User.from
2dd60 20 75 73 65 72 22 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 28 24 74 68 69 73 .user";.................if($this
2dd80 2d 3e 64 73 6e 5b 27 64 61 74 61 62 61 73 65 27 5d 20 21 3d 20 27 6d 79 73 71 6c 27 29 20 7b 0a ->dsn['database'].!=.'mysql').{.
2dda0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 64 73 6e 20 3d 20 24 74 68 69 73 ....................$dsn.=.$this
2ddc0 2d 3e 64 73 6e 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 64 73 6e 5b ->dsn;.....................$dsn[
2dde0 27 64 61 74 61 62 61 73 65 27 5d 20 3d 20 27 6d 79 73 71 6c 27 3b 0a 20 20 20 20 20 20 20 20 20 'database'].=.'mysql';..........
2de00 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 44 42 3a 3a 69 73 45 72 72 6f 72 28 24 64 62 20 3d ...........if.(DB::isError($db.=
2de20 20 44 42 3a 3a 63 6f 6e 6e 65 63 74 28 24 64 73 6e 29 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 .DB::connect($dsn))).{..........
2de40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 64 62 3b 0a 20 20 20 20 20 ...............return.$db;......
2de60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ...............}................
2de80 20 20 20 20 20 24 73 71 6c 20 3d 20 24 64 62 2d 3e 67 65 74 43 6f 6c 28 24 73 71 6c 29 3b 0a 20 .....$sql.=.$db->getCol($sql);..
2dea0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 64 62 2d 3e 64 69 73 63 6f 6e 6e 65 ...................$db->disconne
2dec0 63 74 28 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 58 58 58 ct();.....................//.XXX
2dee0 20 46 69 78 6d 65 20 74 68 65 20 6d 79 73 71 6c 20 64 72 69 76 65 72 20 73 68 6f 75 6c 64 20 74 .Fixme.the.mysql.driver.should.t
2df00 61 6b 65 20 63 61 72 65 20 6f 66 20 74 68 69 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ake.care.of.this................
2df20 20 20 20 20 20 69 66 20 28 21 40 6d 79 73 71 6c 5f 73 65 6c 65 63 74 5f 64 62 28 24 74 68 69 73 .....if.(!@mysql_select_db($this
2df40 2d 3e 64 73 6e 5b 27 64 61 74 61 62 61 73 65 27 5d 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 6e 65 63 ->dsn['database'],.$this->connec
2df60 74 69 6f 6e 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 tion)).{........................
2df80 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6d 79 73 71 6c 52 61 69 73 65 45 72 72 6f 72 28 44 .return.$this->mysqlRaiseError(D
2dfa0 42 5f 45 52 52 4f 52 5f 4e 4f 44 42 53 45 4c 45 43 54 45 44 29 3b 0a 20 20 20 20 20 20 20 20 20 B_ERROR_NODBSELECTED);..........
2dfc0 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 ...........}.................}..
2dfe0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 73 71 6c 3b 0a 20 20 20 20 ...............return.$sql;.....
2e000 20 20 20 20 20 20 20 20 20 20 20 20 62 72 65 61 6b 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 63 ............break;.............c
2e020 61 73 65 20 27 64 61 74 61 62 61 73 65 73 27 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ase.'databases':................
2e040 20 24 73 71 6c 20 3d 20 22 53 48 4f 57 20 44 41 54 41 42 41 53 45 53 22 3b 0a 20 20 20 20 20 20 .$sql.=."SHOW.DATABASES";.......
2e060 20 20 20 20 20 20 20 20 20 20 62 72 65 61 6b 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 64 65 66 ..........break;.............def
2e080 61 75 6c 74 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 6e 75 6c ault:.................return.nul
2e0a0 6c 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 73 71 6c l;.........}.........return.$sql
2e0c0 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 0a 20 20 20 20 2f 2f 20 54 4f 44 4f ;.....}......//.}}}......//.TODO
2e0e0 2f 77 69 73 68 6c 69 73 74 3a 0a 20 20 20 20 2f 2f 20 6c 6f 6e 67 52 65 61 64 6c 65 6e 0a 20 20 /wishlist:.....//.longReadlen...
2e100 20 20 2f 2f 20 62 69 6e 6d 6f 64 65 0a 7d 0a 0a 3f 3e 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 ..//.binmode.}..?>..............
2e120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2e140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2e160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2e180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2e1a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2e1c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2e1e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2e200 44 42 2d 31 2e 35 2e 30 52 43 31 2f 44 42 2f 6f 63 69 38 2e 70 68 70 00 00 00 00 00 00 00 00 00 DB-1.5.0RC1/DB/oci8.php.........
2e220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2e240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2e260 00 00 00 00 31 30 30 36 34 34 20 00 20 20 20 37 36 34 20 00 20 20 20 31 34 34 20 00 20 20 20 20 ....100644.....764.....144......
2e280 20 20 36 30 32 32 32 20 20 37 36 37 31 36 35 36 30 30 34 20 20 20 37 33 34 37 20 00 00 00 00 00 ..60222..7671656004...7347......
2e2a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2e2c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2e2e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2e300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2e320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2e340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2e360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2e380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2e3a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2e3c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2e3e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2e400 3c 3f 70 68 70 0a 2f 2a 20 76 69 6d 3a 20 73 65 74 20 65 78 70 61 6e 64 74 61 62 20 74 61 62 73 <?php./*.vim:.set.expandtab.tabs
2e420 74 6f 70 3d 34 20 73 68 69 66 74 77 69 64 74 68 3d 34 20 66 6f 6c 64 6d 65 74 68 6f 64 3d 6d 61 top=4.shiftwidth=4.foldmethod=ma
2e440 72 6b 65 72 3a 20 2a 2f 0a 2f 2f 20 2b 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d rker:.*/.//.+-------------------
2e460 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
2e480 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2b 0a 2f 2f 20 7c 20 50 48 50 20 56 65 -------------------+.//.|.PHP.Ve
2e4a0 72 73 69 6f 6e 20 34 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 rsion.4.........................
2e4c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c ...............................|
2e4e0 0a 2f 2f 20 2b 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d .//.+---------------------------
2e500 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
2e520 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2b 0a 2f 2f 20 7c 20 43 6f 70 79 72 69 67 68 74 20 28 63 29 20 -----------+.//.|.Copyright.(c).
2e540 31 39 39 37 2d 32 30 30 33 20 54 68 65 20 50 48 50 20 47 72 6f 75 70 20 20 20 20 20 20 20 20 20 1997-2003.The.PHP.Group.........
2e560 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 2f 2f 20 2b 2d 2d 2d .......................|.//.+---
2e580 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
2e5a0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
2e5c0 2d 2d 2d 2b 0a 2f 2f 20 7c 20 54 68 69 73 20 73 6f 75 72 63 65 20 66 69 6c 65 20 69 73 20 73 75 ---+.//.|.This.source.file.is.su
2e5e0 62 6a 65 63 74 20 74 6f 20 76 65 72 73 69 6f 6e 20 32 2e 30 32 20 6f 66 20 74 68 65 20 50 48 50 bject.to.version.2.02.of.the.PHP
2e600 20 6c 69 63 65 6e 73 65 2c 20 20 20 20 20 20 7c 0a 2f 2f 20 7c 20 74 68 61 74 20 69 73 20 62 75 .license,......|.//.|.that.is.bu
2e620 6e 64 6c 65 64 20 77 69 74 68 20 74 68 69 73 20 70 61 63 6b 61 67 65 20 69 6e 20 74 68 65 20 66 ndled.with.this.package.in.the.f
2e640 69 6c 65 20 4c 49 43 45 4e 53 45 2c 20 61 6e 64 20 69 73 20 20 20 20 20 20 20 20 7c 0a 2f 2f 20 ile.LICENSE,.and.is........|.//.
2e660 7c 20 61 76 61 69 6c 61 62 6c 65 20 61 74 20 74 68 72 6f 75 67 68 20 74 68 65 20 77 6f 72 6c 64 |.available.at.through.the.world
2e680 2d 77 69 64 65 2d 77 65 62 20 61 74 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -wide-web.at....................
2e6a0 20 20 20 20 20 20 20 7c 0a 2f 2f 20 7c 20 68 74 74 70 3a 2f 2f 77 77 77 2e 70 68 70 2e 6e 65 74 .......|.//.|.http://www.php.net
2e6c0 2f 6c 69 63 65 6e 73 65 2f 32 5f 30 32 2e 74 78 74 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 /license/2_02.txt...............
2e6e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 2f 2f 20 7c 20 49 66 20 79 6f 75 ...................|.//.|.If.you
2e700 20 64 69 64 20 6e 6f 74 20 72 65 63 65 69 76 65 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 50 .did.not.receive.a.copy.of.the.P
2e720 48 50 20 6c 69 63 65 6e 73 65 20 61 6e 64 20 61 72 65 20 75 6e 61 62 6c 65 20 74 6f 20 20 20 7c HP.license.and.are.unable.to...|
2e740 0a 2f 2f 20 7c 20 6f 62 74 61 69 6e 20 69 74 20 74 68 72 6f 75 67 68 20 74 68 65 20 77 6f 72 6c .//.|.obtain.it.through.the.worl
2e760 64 2d 77 69 64 65 2d 77 65 62 2c 20 70 6c 65 61 73 65 20 73 65 6e 64 20 61 20 6e 6f 74 65 20 74 d-wide-web,.please.send.a.note.t
2e780 6f 20 20 20 20 20 20 20 20 20 20 7c 0a 2f 2f 20 7c 20 6c 69 63 65 6e 73 65 40 70 68 70 2e 6e 65 o..........|.//.|.license@php.ne
2e7a0 74 20 73 6f 20 77 65 20 63 61 6e 20 6d 61 69 6c 20 79 6f 75 20 61 20 63 6f 70 79 20 69 6d 6d 65 t.so.we.can.mail.you.a.copy.imme
2e7c0 64 69 61 74 65 6c 79 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 2f 2f 20 2b 2d 2d 2d diately................|.//.+---
2e7e0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
2e800 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
2e820 2d 2d 2d 2b 0a 2f 2f 20 7c 20 41 75 74 68 6f 72 3a 20 4a 61 6d 65 73 20 4c 2e 20 50 69 6e 65 20 ---+.//.|.Author:.James.L..Pine.
2e840 3c 6a 6c 70 40 76 61 6c 69 6e 75 78 2e 63 6f 6d 3e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 <jlp@valinux.com>...............
2e860 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 2f 2f 20 2b 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ...............|.//.+-----------
2e880 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
2e8a0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2b 0a 2f 2f 0a ---------------------------+.//.
2e8c0 2f 2f 20 24 49 64 3a 20 6f 63 69 38 2e 70 68 70 2c 76 20 31 2e 31 30 20 32 30 30 33 2f 30 36 2f //.$Id:.oci8.php,v.1.10.2003/06/
2e8e0 31 31 20 31 36 3a 34 32 3a 34 34 20 63 6f 78 20 45 78 70 20 24 0a 2f 2f 0a 2f 2f 20 44 61 74 61 11.16:42:44.cox.Exp.$.//.//.Data
2e900 62 61 73 65 20 69 6e 64 65 70 65 6e 64 65 6e 74 20 71 75 65 72 79 20 69 6e 74 65 72 66 61 63 65 base.independent.query.interface
2e920 20 64 65 66 69 6e 69 74 69 6f 6e 20 66 6f 72 20 50 48 50 27 73 20 4f 72 61 63 6c 65 20 38 0a 2f .definition.for.PHP's.Oracle.8./
2e940 2f 20 63 61 6c 6c 2d 69 6e 74 65 72 66 61 63 65 20 65 78 74 65 6e 73 69 6f 6e 2e 0a 2f 2f 0a 0a /.call-interface.extension..//..
2e960 2f 2f 0a 2f 2f 20 62 65 20 61 77 61 72 65 2e 2e 2e 20 20 4f 43 49 45 72 72 6f 72 28 29 20 6f 6e //.//.be.aware.....OCIError().on
2e980 6c 79 20 61 70 70 65 61 72 73 20 74 6f 20 72 65 74 75 72 6e 20 61 6e 79 74 68 69 6e 67 20 77 68 ly.appears.to.return.anything.wh
2e9a0 65 6e 20 67 69 76 65 6e 20 61 0a 2f 2f 20 73 74 61 74 65 6d 65 6e 74 2c 20 73 6f 20 66 75 6e 63 en.given.a.//.statement,.so.func
2e9c0 74 69 6f 6e 73 20 72 65 74 75 72 6e 20 74 68 65 20 67 65 6e 65 72 69 63 20 44 42 5f 45 52 52 4f tions.return.the.generic.DB_ERRO
2e9e0 52 20 69 6e 73 74 65 61 64 20 6f 66 20 6d 6f 72 65 0a 2f 2f 20 75 73 65 66 75 6c 20 65 72 72 6f R.instead.of.more.//.useful.erro
2ea00 72 73 20 74 68 61 74 20 68 61 76 65 20 74 6f 20 64 6f 20 77 69 74 68 20 66 65 65 64 62 61 63 6b rs.that.have.to.do.with.feedback
2ea20 20 66 72 6f 6d 20 74 68 65 20 64 61 74 61 62 61 73 65 2e 0a 2f 2f 0a 0a 0a 72 65 71 75 69 72 65 .from.the.database..//...require
2ea40 5f 6f 6e 63 65 20 27 44 42 2f 63 6f 6d 6d 6f 6e 2e 70 68 70 27 3b 0a 0a 63 6c 61 73 73 20 44 42 _once.'DB/common.php';..class.DB
2ea60 5f 6f 63 69 38 20 65 78 74 65 6e 64 73 20 44 42 5f 63 6f 6d 6d 6f 6e 0a 7b 0a 20 20 20 20 2f 2f _oci8.extends.DB_common.{.....//
2ea80 20 7b 7b 7b 20 70 72 6f 70 65 72 74 69 65 73 0a 0a 20 20 20 20 76 61 72 20 24 63 6f 6e 6e 65 63 .{{{.properties......var.$connec
2eaa0 74 69 6f 6e 3b 0a 20 20 20 20 76 61 72 20 24 70 68 70 74 79 70 65 2c 20 24 64 62 73 79 6e 74 61 tion;.....var.$phptype,.$dbsynta
2eac0 78 3b 0a 20 20 20 20 76 61 72 20 24 6d 61 6e 69 70 5f 71 75 65 72 79 20 3d 20 61 72 72 61 79 28 x;.....var.$manip_query.=.array(
2eae0 29 3b 0a 20 20 20 20 76 61 72 20 24 70 72 65 70 61 72 65 5f 74 79 70 65 73 20 3d 20 61 72 72 61 );.....var.$prepare_types.=.arra
2eb00 79 28 29 3b 0a 20 20 20 20 76 61 72 20 24 61 75 74 6f 43 6f 6d 6d 69 74 20 3d 20 31 3b 0a 20 20 y();.....var.$autoCommit.=.1;...
2eb20 20 20 76 61 72 20 24 6c 61 73 74 5f 73 74 6d 74 20 3d 20 66 61 6c 73 65 3b 0a 0a 20 20 20 20 2f ..var.$last_stmt.=.false;....../
2eb40 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 63 6f 6e 73 74 72 75 63 74 6f 72 0a 0a 20 20 /.}}}.....//.{{{.constructor....
2eb60 20 20 66 75 6e 63 74 69 6f 6e 20 44 42 5f 6f 63 69 38 28 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 ..function.DB_oci8().....{......
2eb80 20 20 20 24 74 68 69 73 2d 3e 44 42 5f 63 6f 6d 6d 6f 6e 28 29 3b 0a 20 20 20 20 20 20 20 20 24 ...$this->DB_common();.........$
2eba0 74 68 69 73 2d 3e 70 68 70 74 79 70 65 20 3d 20 27 6f 63 69 38 27 3b 0a 20 20 20 20 20 20 20 20 this->phptype.=.'oci8';.........
2ebc0 24 74 68 69 73 2d 3e 64 62 73 79 6e 74 61 78 20 3d 20 27 6f 63 69 38 27 3b 0a 20 20 20 20 20 20 $this->dbsyntax.=.'oci8';.......
2ebe0 20 20 24 74 68 69 73 2d 3e 66 65 61 74 75 72 65 73 20 3d 20 61 72 72 61 79 28 0a 20 20 20 20 20 ..$this->features.=.array(......
2ec00 20 20 20 20 20 20 20 27 70 72 65 70 61 72 65 27 20 3d 3e 20 66 61 6c 73 65 2c 0a 20 20 20 20 20 .......'prepare'.=>.false,......
2ec20 20 20 20 20 20 20 20 27 70 63 6f 6e 6e 65 63 74 27 20 3d 3e 20 74 72 75 65 2c 0a 20 20 20 20 20 .......'pconnect'.=>.true,......
2ec40 20 20 20 20 20 20 20 27 74 72 61 6e 73 61 63 74 69 6f 6e 73 27 20 3d 3e 20 74 72 75 65 2c 0a 20 .......'transactions'.=>.true,..
2ec60 20 20 20 20 20 20 20 20 20 20 20 27 6c 69 6d 69 74 27 20 3d 3e 20 27 61 6c 74 65 72 27 0a 20 20 ...........'limit'.=>.'alter'...
2ec80 20 20 20 20 20 20 29 3b 0a 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 65 72 72 6f 72 63 6f 64 ......);.........$this->errorcod
2eca0 65 5f 6d 61 70 20 3d 20 61 72 72 61 79 28 0a 20 20 20 20 20 20 20 20 20 20 20 20 39 30 30 20 3d e_map.=.array(.............900.=
2ecc0 3e 20 44 42 5f 45 52 52 4f 52 5f 53 59 4e 54 41 58 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 39 >.DB_ERROR_SYNTAX,.............9
2ece0 30 34 20 3d 3e 20 44 42 5f 45 52 52 4f 52 5f 4e 4f 53 55 43 48 46 49 45 4c 44 2c 0a 20 20 20 20 04.=>.DB_ERROR_NOSUCHFIELD,.....
2ed00 20 20 20 20 20 20 20 20 39 32 33 20 3d 3e 20 44 42 5f 45 52 52 4f 52 5f 53 59 4e 54 41 58 2c 0a ........923.=>.DB_ERROR_SYNTAX,.
2ed20 20 20 20 20 20 20 20 20 20 20 20 20 39 34 32 20 3d 3e 20 44 42 5f 45 52 52 4f 52 5f 4e 4f 53 55 ............942.=>.DB_ERROR_NOSU
2ed40 43 48 54 41 42 4c 45 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 39 35 35 20 3d 3e 20 44 42 5f 45 CHTABLE,.............955.=>.DB_E
2ed60 52 52 4f 52 5f 41 4c 52 45 41 44 59 5f 45 58 49 53 54 53 2c 0a 20 20 20 20 20 20 20 20 20 20 20 RROR_ALREADY_EXISTS,............
2ed80 20 31 34 37 36 20 3d 3e 20 44 42 5f 45 52 52 4f 52 5f 44 49 56 5a 45 52 4f 2c 0a 20 20 20 20 20 .1476.=>.DB_ERROR_DIVZERO,......
2eda0 20 20 20 20 20 20 20 31 37 32 32 20 3d 3e 20 44 42 5f 45 52 52 4f 52 5f 49 4e 56 41 4c 49 44 5f .......1722.=>.DB_ERROR_INVALID_
2edc0 4e 55 4d 42 45 52 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 32 32 38 39 20 3d 3e 20 44 42 5f 45 NUMBER,.............2289.=>.DB_E
2ede0 52 52 4f 52 5f 4e 4f 53 55 43 48 54 41 42 4c 45 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 32 32 RROR_NOSUCHTABLE,.............22
2ee00 39 31 20 3d 3e 20 44 42 5f 45 52 52 4f 52 5f 43 4f 4e 53 54 52 41 49 4e 54 2c 0a 20 20 20 20 20 91.=>.DB_ERROR_CONSTRAINT,......
2ee20 20 20 20 20 20 20 20 32 34 34 39 20 3d 3e 20 44 42 5f 45 52 52 4f 52 5f 43 4f 4e 53 54 52 41 49 .......2449.=>.DB_ERROR_CONSTRAI
2ee40 4e 54 2c 0a 20 20 20 20 20 20 20 20 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d NT,.........);.....}......//.}}}
2ee60 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 63 6f 6e 6e 65 63 74 28 29 0a 0a 20 20 20 20 2f 2a 2a 0a 20 .....//.{{{.connect()....../**..
2ee80 20 20 20 20 2a 20 43 6f 6e 6e 65 63 74 20 74 6f 20 61 20 64 61 74 61 62 61 73 65 20 61 6e 64 20 ....*.Connect.to.a.database.and.
2eea0 6c 6f 67 20 69 6e 20 61 73 20 74 68 65 20 73 70 65 63 69 66 69 65 64 20 75 73 65 72 2e 0a 20 20 log.in.as.the.specified.user....
2eec0 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 24 64 73 6e 20 74 68 65 20 64 61 74 61 ...*......*.@param.$dsn.the.data
2eee0 20 73 6f 75 72 63 65 20 6e 61 6d 65 20 28 73 65 65 20 44 42 3a 3a 70 61 72 73 65 44 53 4e 20 66 .source.name.(see.DB::parseDSN.f
2ef00 6f 72 20 73 79 6e 74 61 78 29 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 24 70 65 72 73 69 73 or.syntax)......*.@param.$persis
2ef20 74 65 6e 74 20 28 6f 70 74 69 6f 6e 61 6c 29 20 77 68 65 74 68 65 72 20 74 68 65 20 63 6f 6e 6e tent.(optional).whether.the.conn
2ef40 65 63 74 69 6f 6e 20 73 68 6f 75 6c 64 0a 20 20 20 20 20 2a 20 20 20 20 20 20 20 20 62 65 20 70 ection.should......*........be.p
2ef60 65 72 73 69 73 74 65 6e 74 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 72 65 74 75 72 6e 20 ersistent......*......*.@return.
2ef80 69 6e 74 20 44 42 5f 4f 4b 20 6f 6e 20 73 75 63 63 65 73 73 2c 20 61 20 44 42 20 65 72 72 6f 72 int.DB_OK.on.success,.a.DB.error
2efa0 20 63 6f 64 65 20 6f 6e 20 66 61 69 6c 75 72 65 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 66 75 6e .code.on.failure......*/.....fun
2efc0 63 74 69 6f 6e 20 63 6f 6e 6e 65 63 74 28 24 64 73 6e 69 6e 66 6f 2c 20 24 70 65 72 73 69 73 74 ction.connect($dsninfo,.$persist
2efe0 65 6e 74 20 3d 20 66 61 6c 73 65 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 69 66 20 28 21 ent.=.false).....{.........if.(!
2f000 44 42 3a 3a 61 73 73 65 72 74 45 78 74 65 6e 73 69 6f 6e 28 27 6f 63 69 38 27 29 29 20 7b 0a 20 DB::assertExtension('oci8')).{..
2f020 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 61 69 73 65 45 72 ...........return.$this->raiseEr
2f040 72 6f 72 28 44 42 5f 45 52 52 4f 52 5f 45 58 54 45 4e 53 49 4f 4e 5f 4e 4f 54 5f 46 4f 55 4e 44 ror(DB_ERROR_EXTENSION_NOT_FOUND
2f060 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 64 73 6e 20 );.........}.........$this->dsn.
2f080 3d 20 24 64 73 6e 69 6e 66 6f 3b 0a 20 20 20 20 20 20 20 20 24 75 73 65 72 20 3d 20 24 64 73 6e =.$dsninfo;.........$user.=.$dsn
2f0a0 69 6e 66 6f 5b 27 75 73 65 72 6e 61 6d 65 27 5d 3b 0a 20 20 20 20 20 20 20 20 24 70 77 20 3d 20 info['username'];.........$pw.=.
2f0c0 24 64 73 6e 69 6e 66 6f 5b 27 70 61 73 73 77 6f 72 64 27 5d 3b 0a 20 20 20 20 20 20 20 20 24 68 $dsninfo['password'];.........$h
2f0e0 6f 73 74 73 70 65 63 20 3d 20 24 64 73 6e 69 6e 66 6f 5b 27 68 6f 73 74 73 70 65 63 27 5d 3b 0a ostspec.=.$dsninfo['hostspec'];.
2f100 0a 20 20 20 20 20 20 20 20 24 63 6f 6e 6e 65 63 74 5f 66 75 6e 63 74 69 6f 6e 20 3d 20 24 70 65 .........$connect_function.=.$pe
2f120 72 73 69 73 74 65 6e 74 20 3f 20 27 4f 43 49 50 4c 6f 67 6f 6e 27 20 3a 20 27 4f 43 49 4c 6f 67 rsistent.?.'OCIPLogon'.:.'OCILog
2f140 6f 6e 27 3b 0a 0a 20 20 20 20 20 20 20 20 69 66 20 28 24 68 6f 73 74 73 70 65 63 29 20 7b 0a 20 on';..........if.($hostspec).{..
2f160 20 20 20 20 20 20 20 20 20 20 20 24 63 6f 6e 6e 20 3d 20 40 24 63 6f 6e 6e 65 63 74 5f 66 75 6e ...........$conn.=.@$connect_fun
2f180 63 74 69 6f 6e 28 24 75 73 65 72 2c 24 70 77 2c 24 68 6f 73 74 73 70 65 63 29 3b 0a 20 20 20 20 ction($user,$pw,$hostspec);.....
2f1a0 20 20 20 20 7d 20 65 6c 73 65 69 66 20 28 24 75 73 65 72 20 7c 7c 20 24 70 77 29 20 7b 0a 20 20 ....}.elseif.($user.||.$pw).{...
2f1c0 20 20 20 20 20 20 20 20 20 20 24 63 6f 6e 6e 20 3d 20 40 24 63 6f 6e 6e 65 63 74 5f 66 75 6e 63 ..........$conn.=.@$connect_func
2f1e0 74 69 6f 6e 28 24 75 73 65 72 2c 24 70 77 29 3b 0a 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 tion($user,$pw);.........}.else.
2f200 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 63 6f 6e 6e 20 3d 20 66 61 6c 73 65 3b 0a 20 20 20 {.............$conn.=.false;....
2f220 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 69 66 20 28 24 63 6f 6e 6e 20 3d 3d 20 66 61 6c 73 .....}.........if.($conn.==.fals
2f240 65 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 65 72 72 6f 72 20 3d 20 4f 43 49 45 72 72 e).{.............$error.=.OCIErr
2f260 6f 72 28 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 65 72 72 6f 72 20 3d 20 28 69 73 5f 61 or();.............$error.=.(is_a
2f280 72 72 61 79 28 24 65 72 72 6f 72 29 29 20 3f 20 24 65 72 72 6f 72 5b 27 6d 65 73 73 61 67 65 27 rray($error)).?.$error['message'
2f2a0 5d 20 3a 20 6e 75 6c 6c 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 ].:.null;.............return.$th
2f2c0 69 73 2d 3e 72 61 69 73 65 45 72 72 6f 72 28 44 42 5f 45 52 52 4f 52 5f 43 4f 4e 4e 45 43 54 5f is->raiseError(DB_ERROR_CONNECT_
2f2e0 46 41 49 4c 45 44 2c 20 6e 75 6c 6c 2c 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 FAILED,.null,.null,.............
2f300 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 75 6c 6c 2c 20 24 .........................null,.$
2f320 65 72 72 6f 72 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 24 74 68 69 73 2d error);.........}.........$this-
2f340 3e 63 6f 6e 6e 65 63 74 69 6f 6e 20 3d 20 24 63 6f 6e 6e 3b 0a 20 20 20 20 20 20 20 20 72 65 74 >connection.=.$conn;.........ret
2f360 75 72 6e 20 44 42 5f 4f 4b 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 urn.DB_OK;.....}......//.}}}....
2f380 20 2f 2f 20 7b 7b 7b 20 64 69 73 63 6f 6e 6e 65 63 74 28 29 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 .//.{{{.disconnect()....../**...
2f3a0 20 20 20 2a 20 4c 6f 67 20 6f 75 74 20 61 6e 64 20 64 69 73 63 6f 6e 6e 65 63 74 20 66 72 6f 6d ...*.Log.out.and.disconnect.from
2f3c0 20 74 68 65 20 64 61 74 61 62 61 73 65 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 72 65 .the.database.......*......*.@re
2f3e0 74 75 72 6e 20 62 6f 6f 6c 20 54 52 55 45 20 6f 6e 20 73 75 63 63 65 73 73 2c 20 46 41 4c 53 45 turn.bool.TRUE.on.success,.FALSE
2f400 20 69 66 20 6e 6f 74 20 63 6f 6e 6e 65 63 74 65 64 2e 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 66 .if.not.connected.......*/.....f
2f420 75 6e 63 74 69 6f 6e 20 64 69 73 63 6f 6e 6e 65 63 74 28 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 unction.disconnect().....{......
2f440 20 20 20 24 72 65 74 20 3d 20 40 4f 43 49 4c 6f 67 4f 66 66 28 24 74 68 69 73 2d 3e 63 6f 6e 6e ...$ret.=.@OCILogOff($this->conn
2f460 65 63 74 69 6f 6e 29 3b 0a 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 63 6f 6e 6e 65 63 74 69 ection);.........$this->connecti
2f480 6f 6e 20 3d 20 6e 75 6c 6c 3b 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 72 65 74 3b 0a on.=.null;.........return.$ret;.
2f4a0 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 73 69 6d ....}......//.}}}.....//.{{{.sim
2f4c0 70 6c 65 51 75 65 72 79 28 29 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 53 65 6e 64 20 pleQuery()....../**......*.Send.
2f4e0 61 20 71 75 65 72 79 20 74 6f 20 6f 72 61 63 6c 65 20 61 6e 64 20 72 65 74 75 72 6e 20 74 68 65 a.query.to.oracle.and.return.the
2f500 20 72 65 73 75 6c 74 73 20 61 73 20 61 6e 20 6f 63 69 38 20 72 65 73 6f 75 72 63 65 0a 20 20 20 .results.as.an.oci8.resource....
2f520 20 20 2a 20 69 64 65 6e 74 69 66 69 65 72 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 70 ..*.identifier.......*......*.@p
2f540 61 72 61 6d 20 24 71 75 65 72 79 20 74 68 65 20 53 51 4c 20 71 75 65 72 79 0a 20 20 20 20 20 2a aram.$query.the.SQL.query......*
2f560 0a 20 20 20 20 20 2a 20 40 72 65 74 75 72 6e 20 69 6e 74 20 72 65 74 75 72 6e 73 20 61 20 76 61 ......*.@return.int.returns.a.va
2f580 6c 69 64 20 6f 63 69 38 20 72 65 73 75 6c 74 20 66 6f 72 20 73 75 63 63 65 73 73 66 75 6c 20 53 lid.oci8.result.for.successful.S
2f5a0 45 4c 45 43 54 0a 20 20 20 20 20 2a 20 71 75 65 72 69 65 73 2c 20 44 42 5f 4f 4b 20 66 6f 72 20 ELECT......*.queries,.DB_OK.for.
2f5c0 6f 74 68 65 72 20 73 75 63 63 65 73 73 66 75 6c 20 71 75 65 72 69 65 73 2e 20 20 41 20 44 42 20 other.successful.queries...A.DB.
2f5e0 65 72 72 6f 72 20 63 6f 64 65 0a 20 20 20 20 20 2a 20 69 73 20 72 65 74 75 72 6e 65 64 20 6f 6e error.code......*.is.returned.on
2f600 20 66 61 69 6c 75 72 65 2e 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 73 .failure.......*/.....function.s
2f620 69 6d 70 6c 65 51 75 65 72 79 28 24 71 75 65 72 79 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 impleQuery($query).....{........
2f640 20 24 74 68 69 73 2d 3e 6c 61 73 74 5f 71 75 65 72 79 20 3d 20 24 71 75 65 72 79 3b 0a 20 20 20 .$this->last_query.=.$query;....
2f660 20 20 20 20 20 24 71 75 65 72 79 20 3d 20 24 74 68 69 73 2d 3e 6d 6f 64 69 66 79 51 75 65 72 79 .....$query.=.$this->modifyQuery
2f680 28 24 71 75 65 72 79 29 3b 0a 20 20 20 20 20 20 20 20 24 72 65 73 75 6c 74 20 3d 20 40 4f 43 49 ($query);.........$result.=.@OCI
2f6a0 50 61 72 73 65 28 24 74 68 69 73 2d 3e 63 6f 6e 6e 65 63 74 69 6f 6e 2c 20 24 71 75 65 72 79 29 Parse($this->connection,.$query)
2f6c0 3b 0a 20 20 20 20 20 20 20 20 69 66 20 28 21 24 72 65 73 75 6c 74 29 20 7b 0a 20 20 20 20 20 20 ;.........if.(!$result).{.......
2f6e0 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6f 63 69 38 52 61 69 73 65 45 72 72 ......return.$this->oci8RaiseErr
2f700 6f 72 28 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 69 66 20 28 24 74 68 69 or();.........}.........if.($thi
2f720 73 2d 3e 61 75 74 6f 43 6f 6d 6d 69 74 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 73 75 s->autoCommit).{.............$su
2f740 63 63 65 73 73 20 3d 20 40 4f 43 49 45 78 65 63 75 74 65 28 24 72 65 73 75 6c 74 2c 4f 43 49 5f ccess.=.@OCIExecute($result,OCI_
2f760 43 4f 4d 4d 49 54 5f 4f 4e 5f 53 55 43 43 45 53 53 29 3b 0a 20 20 20 20 20 20 20 20 7d 20 65 6c COMMIT_ON_SUCCESS);.........}.el
2f780 73 65 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 73 75 63 63 65 73 73 20 3d 20 40 4f 43 49 se.{.............$success.=.@OCI
2f7a0 45 78 65 63 75 74 65 28 24 72 65 73 75 6c 74 2c 4f 43 49 5f 44 45 46 41 55 4c 54 29 3b 0a 20 20 Execute($result,OCI_DEFAULT);...
2f7c0 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 69 66 20 28 21 24 73 75 63 63 65 73 73 29 20 7b ......}.........if.(!$success).{
2f7e0 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6f 63 69 38 52 .............return.$this->oci8R
2f800 61 69 73 65 45 72 72 6f 72 28 24 72 65 73 75 6c 74 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 aiseError($result);.........}...
2f820 20 20 20 20 20 20 24 74 68 69 73 2d 3e 6c 61 73 74 5f 73 74 6d 74 3d 24 72 65 73 75 6c 74 3b 0a ......$this->last_stmt=$result;.
2f840 20 20 20 20 20 20 20 20 2f 2f 20 44 65 74 65 72 6d 69 6e 65 20 77 68 69 63 68 20 71 75 65 72 69 ........//.Determine.which.queri
2f860 65 73 20 74 68 61 74 20 73 68 6f 75 6c 64 20 72 65 74 75 72 6e 20 64 61 74 61 2c 20 61 6e 64 20 es.that.should.return.data,.and.
2f880 77 68 69 63 68 0a 20 20 20 20 20 20 20 20 2f 2f 20 73 68 6f 75 6c 64 20 72 65 74 75 72 6e 20 61 which.........//.should.return.a
2f8a0 6e 20 65 72 72 6f 72 20 63 6f 64 65 20 6f 6e 6c 79 2e 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 n.error.code.only..........retur
2f8c0 6e 20 44 42 3a 3a 69 73 4d 61 6e 69 70 28 24 71 75 65 72 79 29 20 3f 20 44 42 5f 4f 4b 20 3a 20 n.DB::isManip($query).?.DB_OK.:.
2f8e0 24 72 65 73 75 6c 74 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f $result;.....}......//.}}}...../
2f900 2f 20 7b 7b 7b 20 6e 65 78 74 52 65 73 75 6c 74 28 29 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 /.{{{.nextResult()....../**.....
2f920 20 2a 20 4d 6f 76 65 20 74 68 65 20 69 6e 74 65 72 6e 61 6c 20 6f 72 61 63 6c 65 20 72 65 73 75 .*.Move.the.internal.oracle.resu
2f940 6c 74 20 70 6f 69 6e 74 65 72 20 74 6f 20 74 68 65 20 6e 65 78 74 20 61 76 61 69 6c 61 62 6c 65 lt.pointer.to.the.next.available
2f960 20 72 65 73 75 6c 74 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 61 20 76 .result......*......*.@param.a.v
2f980 61 6c 69 64 20 6f 63 69 38 20 72 65 73 75 6c 74 20 72 65 73 6f 75 72 63 65 0a 20 20 20 20 20 2a alid.oci8.result.resource......*
2f9a0 0a 20 20 20 20 20 2a 20 40 61 63 63 65 73 73 20 70 75 62 6c 69 63 0a 20 20 20 20 20 2a 0a 20 20 ......*.@access.public......*...
2f9c0 20 20 20 2a 20 40 72 65 74 75 72 6e 20 74 72 75 65 20 69 66 20 61 20 72 65 73 75 6c 74 20 69 73 ...*.@return.true.if.a.result.is
2f9e0 20 61 76 61 69 6c 61 62 6c 65 20 6f 74 68 65 72 77 69 73 65 20 72 65 74 75 72 6e 20 66 61 6c 73 .available.otherwise.return.fals
2fa00 65 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 6e 65 78 74 52 65 73 75 6c e......*/.....function.nextResul
2fa20 74 28 24 72 65 73 75 6c 74 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 t($result).....{.........return.
2fa40 66 61 6c 73 65 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 false;.....}......//.}}}.....//.
2fa60 7b 7b 7b 20 66 65 74 63 68 49 6e 74 6f 28 29 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 {{{.fetchInto()....../**......*.
2fa80 46 65 74 63 68 20 61 20 72 6f 77 20 61 6e 64 20 69 6e 73 65 72 74 20 74 68 65 20 64 61 74 61 20 Fetch.a.row.and.insert.the.data.
2faa0 69 6e 74 6f 20 61 6e 20 65 78 69 73 74 69 6e 67 20 61 72 72 61 79 2e 0a 20 20 20 20 20 2a 0a 20 into.an.existing.array.......*..
2fac0 20 20 20 20 2a 20 40 70 61 72 61 6d 20 24 72 65 73 75 6c 74 20 6f 63 69 38 20 72 65 73 75 6c 74 ....*.@param.$result.oci8.result
2fae0 20 69 64 65 6e 74 69 66 69 65 72 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 24 61 72 72 20 28 .identifier......*.@param.$arr.(
2fb00 72 65 66 65 72 65 6e 63 65 29 20 61 72 72 61 79 20 77 68 65 72 65 20 64 61 74 61 20 66 72 6f 6d reference).array.where.data.from
2fb20 20 74 68 65 20 72 6f 77 20 69 73 20 73 74 6f 72 65 64 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d .the.row.is.stored......*.@param
2fb40 20 24 66 65 74 63 68 6d 6f 64 65 20 68 6f 77 20 74 68 65 20 61 72 72 61 79 20 64 61 74 61 20 73 .$fetchmode.how.the.array.data.s
2fb60 68 6f 75 6c 64 20 62 65 20 69 6e 64 65 78 65 64 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 24 hould.be.indexed......*.@param.$
2fb80 72 6f 77 6e 75 6d 20 74 68 65 20 72 6f 77 20 6e 75 6d 62 65 72 20 74 6f 20 66 65 74 63 68 20 28 rownum.the.row.number.to.fetch.(
2fba0 6e 6f 74 20 79 65 74 20 73 75 70 70 6f 72 74 65 64 29 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a not.yet.supported)......*......*
2fbc0 20 40 72 65 74 75 72 6e 20 69 6e 74 20 44 42 5f 4f 4b 20 6f 6e 20 73 75 63 63 65 73 73 2c 20 61 .@return.int.DB_OK.on.success,.a
2fbe0 20 44 42 20 65 72 72 6f 72 20 63 6f 64 65 20 6f 6e 20 66 61 69 6c 75 72 65 0a 20 20 20 20 20 2a .DB.error.code.on.failure......*
2fc00 2f 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 66 65 74 63 68 49 6e 74 6f 28 24 72 65 73 75 6c 74 /.....function.fetchInto($result
2fc20 2c 20 26 24 61 72 72 2c 20 24 66 65 74 63 68 6d 6f 64 65 20 3d 20 44 42 5f 46 45 54 43 48 4d 4f ,.&$arr,.$fetchmode.=.DB_FETCHMO
2fc40 44 45 5f 44 45 46 41 55 4c 54 2c 20 24 72 6f 77 6e 75 6d 3d 4e 55 4c 4c 29 0a 20 20 20 20 7b 0a DE_DEFAULT,.$rownum=NULL).....{.
2fc60 20 20 20 20 20 20 20 20 69 66 20 28 24 72 6f 77 6e 75 6d 20 21 3d 3d 20 4e 55 4c 4c 29 20 7b 0a ........if.($rownum.!==.NULL).{.
2fc80 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 61 69 73 65 45 ............return.$this->raiseE
2fca0 72 72 6f 72 28 44 42 5f 45 52 52 4f 52 5f 4e 4f 54 5f 43 41 50 41 42 4c 45 29 3b 0a 20 20 20 20 rror(DB_ERROR_NOT_CAPABLE);.....
2fcc0 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 69 66 20 28 24 66 65 74 63 68 6d 6f 64 65 20 26 20 44 ....}.........if.($fetchmode.&.D
2fce0 42 5f 46 45 54 43 48 4d 4f 44 45 5f 41 53 53 4f 43 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 B_FETCHMODE_ASSOC).{............
2fd00 20 24 6d 6f 72 65 64 61 74 61 20 3d 20 40 4f 43 49 46 65 74 63 68 49 6e 74 6f 28 24 72 65 73 75 .$moredata.=.@OCIFetchInto($resu
2fd20 6c 74 2c 24 61 72 72 2c 4f 43 49 5f 41 53 53 4f 43 2b 4f 43 49 5f 52 45 54 55 52 4e 5f 4e 55 4c lt,$arr,OCI_ASSOC+OCI_RETURN_NUL
2fd40 4c 53 2b 4f 43 49 5f 52 45 54 55 52 4e 5f 4c 4f 42 53 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 LS+OCI_RETURN_LOBS);............
2fd60 20 69 66 20 28 24 6d 6f 72 65 64 61 74 61 20 26 26 20 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 .if.($moredata.&&.$this->options
2fd80 5b 27 6f 70 74 69 6d 69 7a 65 27 5d 20 3d 3d 20 27 70 6f 72 74 61 62 69 6c 69 74 79 27 29 20 7b ['optimize'].==.'portability').{
2fda0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 61 72 72 20 3d 20 61 72 72 61 79 5f 63 68 .................$arr.=.array_ch
2fdc0 61 6e 67 65 5f 6b 65 79 5f 63 61 73 65 28 24 61 72 72 2c 20 43 41 53 45 5f 4c 4f 57 45 52 29 3b ange_key_case($arr,.CASE_LOWER);
2fde0 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a .............}.........}.else.{.
2fe00 20 20 20 20 20 20 20 20 20 20 20 20 24 6d 6f 72 65 64 61 74 61 20 3d 20 40 4f 43 49 46 65 74 63 ............$moredata.=.@OCIFetc
2fe20 68 49 6e 74 6f 28 24 72 65 73 75 6c 74 2c 24 61 72 72 2c 4f 43 49 5f 52 45 54 55 52 4e 5f 4e 55 hInto($result,$arr,OCI_RETURN_NU
2fe40 4c 4c 53 2b 4f 43 49 5f 52 45 54 55 52 4e 5f 4c 4f 42 53 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a LLS+OCI_RETURN_LOBS);.........}.
2fe60 20 20 20 20 20 20 20 20 69 66 20 28 21 24 6d 6f 72 65 64 61 74 61 29 20 7b 0a 20 20 20 20 20 20 ........if.(!$moredata).{.......
2fe80 20 20 20 20 20 20 72 65 74 75 72 6e 20 4e 55 4c 4c 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 ......return.NULL;.........}....
2fea0 20 20 20 20 20 72 65 74 75 72 6e 20 44 42 5f 4f 4b 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f .....return.DB_OK;.....}......//
2fec0 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 66 72 65 65 52 65 73 75 6c 74 28 29 0a 0a 20 20 .}}}.....//.{{{.freeResult()....
2fee0 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 46 72 65 65 20 74 68 65 20 69 6e 74 65 72 6e 61 6c 20 72 ../**......*.Free.the.internal.r
2ff00 65 73 6f 75 72 63 65 73 20 61 73 73 6f 63 69 61 74 65 64 20 77 69 74 68 20 24 72 65 73 75 6c 74 esources.associated.with.$result
2ff20 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 24 72 65 73 75 6c 74 20 6f .......*......*.@param.$result.o
2ff40 63 69 38 20 72 65 73 75 6c 74 20 69 64 65 6e 74 69 66 69 65 72 20 6f 72 20 44 42 20 73 74 61 74 ci8.result.identifier.or.DB.stat
2ff60 65 6d 65 6e 74 20 69 64 65 6e 74 69 66 69 65 72 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 ement.identifier......*......*.@
2ff80 72 65 74 75 72 6e 20 62 6f 6f 6c 20 54 52 55 45 20 6f 6e 20 73 75 63 63 65 73 73 2c 20 46 41 4c return.bool.TRUE.on.success,.FAL
2ffa0 53 45 20 69 66 20 24 72 65 73 75 6c 74 20 69 73 20 69 6e 76 61 6c 69 64 0a 20 20 20 20 20 2a 2f SE.if.$result.is.invalid......*/
2ffc0 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 66 72 65 65 52 65 73 75 6c 74 28 24 72 65 73 75 6c 74 .....function.freeResult($result
2ffe0 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 69 66 20 28 69 73 5f 72 65 73 6f 75 72 63 65 28 ).....{.........if.(is_resource(
30000 24 72 65 73 75 6c 74 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 40 $result)).{.............return.@
30020 4f 43 49 46 72 65 65 53 74 61 74 65 6d 65 6e 74 28 24 72 65 73 75 6c 74 29 3b 0a 20 20 20 20 20 OCIFreeStatement($result);......
30040 20 20 20 7d 0a 20 20 20 20 20 20 20 20 69 66 20 28 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 70 ...}.........if.(!isset($this->p
30060 72 65 70 61 72 65 5f 74 6f 6b 65 6e 73 5b 28 69 6e 74 29 24 72 65 73 75 6c 74 5d 29 29 20 7b 0a repare_tokens[(int)$result])).{.
30080 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 20 20 20 20 20 20 ............return.false;.......
300a0 20 20 7d 0a 20 20 20 20 20 20 20 20 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 70 72 65 70 61 72 65 ..}.........unset($this->prepare
300c0 5f 74 6f 6b 65 6e 73 5b 28 69 6e 74 29 24 72 65 73 75 6c 74 5d 29 3b 0a 20 20 20 20 20 20 20 20 _tokens[(int)$result]);.........
300e0 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 70 72 65 70 61 72 65 5f 74 79 70 65 73 5b 28 69 6e 74 29 unset($this->prepare_types[(int)
30100 24 72 65 73 75 6c 74 5d 29 3b 0a 20 20 20 20 20 20 20 20 75 6e 73 65 74 28 24 74 68 69 73 2d 3e $result]);.........unset($this->
30120 6d 61 6e 69 70 5f 71 75 65 72 79 5b 28 69 6e 74 29 24 72 65 73 75 6c 74 5d 29 3b 0a 20 20 20 20 manip_query[(int)$result]);.....
30140 20 20 20 20 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 20 20 20 20 7d 0a 0d 0a 20 20 20 20 2f 2a 2a ....return.true;.....}......./**
30160 0a 20 20 20 20 20 2a 20 46 72 65 65 20 74 68 65 20 69 6e 74 65 72 6e 61 6c 20 72 65 73 6f 75 72 ......*.Free.the.internal.resour
30180 63 65 73 20 61 73 73 6f 63 69 61 74 65 64 20 77 69 74 68 20 61 20 70 72 65 70 61 72 65 64 20 71 ces.associated.with.a.prepared.q
301a0 75 65 72 79 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 24 73 74 6d 74 uery.......*......*.@param.$stmt
301c0 20 6f 63 69 38 20 73 74 61 74 65 6d 65 6e 74 20 69 64 65 6e 74 69 66 69 65 72 0a 20 20 20 20 20 .oci8.statement.identifier......
301e0 2a 0a 20 20 20 20 20 2a 20 40 72 65 74 75 72 6e 20 62 6f 6f 6c 20 54 52 55 45 20 6f 6e 20 73 75 *......*.@return.bool.TRUE.on.su
30200 63 63 65 73 73 2c 20 46 41 4c 53 45 20 69 66 20 24 72 65 73 75 6c 74 20 69 73 20 69 6e 76 61 6c ccess,.FALSE.if.$result.is.inval
30220 69 64 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 66 72 65 65 50 72 65 70 id......*/.....function.freePrep
30240 61 72 65 64 28 24 73 74 6d 74 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 69 66 20 28 21 69 ared($stmt).....{.........if.(!i
30260 73 5f 72 65 73 6f 75 72 63 65 28 24 73 74 6d 74 29 29 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 s_resource($stmt)).{............
30280 20 20 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0d 0a 20 20 20 20 20 20 20 20 7d 0d 0a 20 20 20 20 ..return.false;..........}......
302a0 20 20 20 20 6f 63 69 66 72 65 65 73 74 61 74 65 6d 65 6e 74 28 24 73 74 6d 74 29 3b 0d 0a 20 20 ....ocifreestatement($stmt);....
302c0 20 20 20 20 20 20 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 70 72 65 70 61 72 65 5f 74 6f 6b 65 6e ......unset($this->prepare_token
302e0 73 5b 28 69 6e 74 29 24 73 74 6d 74 5d 29 3b 0a 20 20 20 20 20 20 20 20 75 6e 73 65 74 28 24 74 s[(int)$stmt]);.........unset($t
30300 68 69 73 2d 3e 70 72 65 70 61 72 65 5f 74 79 70 65 73 5b 28 69 6e 74 29 24 73 74 6d 74 5d 29 3b his->prepare_types[(int)$stmt]);
30320 0a 20 20 20 20 20 20 20 20 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 6d 61 6e 69 70 5f 71 75 65 72 .........unset($this->manip_quer
30340 79 5b 28 69 6e 74 29 24 73 74 6d 74 5d 29 3b 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 74 y[(int)$stmt]);.........return.t
30360 72 75 65 3b 0d 0a 20 20 20 20 7d 0d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 rue;......}.......//.}}}.....//.
30380 7b 7b 7b 20 6e 75 6d 52 6f 77 73 28 29 0a 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 6e 75 6d 52 {{{.numRows()......function.numR
303a0 6f 77 73 28 24 72 65 73 75 6c 74 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 2f 2f 20 65 6d ows($result).....{.........//.em
303c0 75 6c 61 74 65 20 6e 75 6d 52 6f 77 73 20 66 6f 72 20 4f 72 61 63 6c 65 2e 20 20 79 75 63 6b 2e ulate.numRows.for.Oracle...yuck.
303e0 0a 20 20 20 20 20 20 20 20 69 66 20 28 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 5b 27 6f 70 74 .........if.($this->options['opt
30400 69 6d 69 7a 65 27 5d 20 3d 3d 20 27 70 6f 72 74 61 62 69 6c 69 74 79 27 20 26 26 0a 20 20 20 20 imize'].==.'portability'.&&.....
30420 20 20 20 20 20 20 20 20 24 72 65 73 75 6c 74 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 6c 61 73 74 5f ........$result.===.$this->last_
30440 73 74 6d 74 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 63 6f 75 6e 74 71 75 65 72 79 20 stmt).{.............$countquery.
30460 3d 20 22 53 45 4c 45 43 54 20 43 4f 55 4e 54 28 2a 29 20 46 52 4f 4d 20 28 22 2e 24 74 68 69 73 =."SELECT.COUNT(*).FROM.(".$this
30480 2d 3e 6c 61 73 74 5f 71 75 65 72 79 2e 22 29 22 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 73 ->last_query.")";.............$s
304a0 61 76 65 5f 71 75 65 72 79 20 3d 20 24 74 68 69 73 2d 3e 6c 61 73 74 5f 71 75 65 72 79 3b 0a 20 ave_query.=.$this->last_query;..
304c0 20 20 20 20 20 20 20 20 20 20 20 24 73 61 76 65 5f 73 74 6d 74 20 3d 20 24 74 68 69 73 2d 3e 6c ...........$save_stmt.=.$this->l
304e0 61 73 74 5f 73 74 6d 74 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 63 6f 75 6e 74 20 3d 20 24 ast_stmt;.............$count.=.$
30500 74 68 69 73 2d 3e 71 75 65 72 79 28 24 63 6f 75 6e 74 71 75 65 72 79 29 3b 0a 20 20 20 20 20 20 this->query($countquery);.......
30520 20 20 20 20 20 20 69 66 20 28 44 42 3a 3a 69 73 45 72 72 6f 72 28 24 63 6f 75 6e 74 29 20 7c 7c ......if.(DB::isError($count).||
30540 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 44 42 3a 3a 69 73 45 72 72 6f 72 28 24 72 6f .................DB::isError($ro
30560 77 20 3d 20 24 63 6f 75 6e 74 2d 3e 66 65 74 63 68 52 6f 77 28 44 42 5f 46 45 54 43 48 4d 4f 44 w.=.$count->fetchRow(DB_FETCHMOD
30580 45 5f 4f 52 44 45 52 45 44 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 7b 0a 20 20 20 20 20 E_ORDERED))).............{......
305a0 20 20 20 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 6c 61 73 74 5f 71 75 65 72 79 20 3d 20 24 ...........$this->last_query.=.$
305c0 73 61 76 65 5f 71 75 65 72 79 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 74 68 69 save_query;.................$thi
305e0 73 2d 3e 6c 61 73 74 5f 73 74 6d 74 20 3d 20 24 73 61 76 65 5f 73 74 6d 74 3b 0a 20 20 20 20 20 s->last_stmt.=.$save_stmt;......
30600 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 61 69 73 65 45 72 ...........return.$this->raiseEr
30620 72 6f 72 28 44 42 5f 45 52 52 4f 52 5f 4e 4f 54 5f 43 41 50 41 42 4c 45 29 3b 0a 20 20 20 20 20 ror(DB_ERROR_NOT_CAPABLE);......
30640 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 72 6f 77 .......}.............return.$row
30660 5b 30 5d 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 [0];.........}.........return.$t
30680 68 69 73 2d 3e 72 61 69 73 65 45 72 72 6f 72 28 44 42 5f 45 52 52 4f 52 5f 4e 4f 54 5f 43 41 50 his->raiseError(DB_ERROR_NOT_CAP
306a0 41 42 4c 45 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 ABLE);.....}......//.}}}.....//.
306c0 7b 7b 7b 20 6e 75 6d 43 6f 6c 73 28 29 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 47 65 {{{.numCols()....../**......*.Ge
306e0 74 20 74 68 65 20 6e 75 6d 62 65 72 20 6f 66 20 63 6f 6c 75 6d 6e 73 20 69 6e 20 61 20 72 65 73 t.the.number.of.columns.in.a.res
30700 75 6c 74 20 73 65 74 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 24 72 ult.set.......*......*.@param.$r
30720 65 73 75 6c 74 20 6f 63 69 38 20 72 65 73 75 6c 74 20 69 64 65 6e 74 69 66 69 65 72 0a 20 20 20 esult.oci8.result.identifier....
30740 20 20 2a 0a 20 20 20 20 20 2a 20 40 72 65 74 75 72 6e 20 69 6e 74 20 74 68 65 20 6e 75 6d 62 65 ..*......*.@return.int.the.numbe
30760 72 20 6f 66 20 63 6f 6c 75 6d 6e 73 20 70 65 72 20 72 6f 77 20 69 6e 20 24 72 65 73 75 6c 74 0a r.of.columns.per.row.in.$result.
30780 20 20 20 20 20 2a 2f 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 6e 75 6d 43 6f 6c 73 28 24 72 65 .....*/.....function.numCols($re
307a0 73 75 6c 74 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 24 63 6f 6c 73 20 3d 20 40 4f 43 49 sult).....{.........$cols.=.@OCI
307c0 4e 75 6d 43 6f 6c 73 28 24 72 65 73 75 6c 74 29 3b 0a 20 20 20 20 20 20 20 20 69 66 20 28 21 24 NumCols($result);.........if.(!$
307e0 63 6f 6c 73 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 cols).{.............return.$this
30800 2d 3e 6f 63 69 38 52 61 69 73 65 45 72 72 6f 72 28 24 72 65 73 75 6c 74 29 3b 0a 20 20 20 20 20 ->oci8RaiseError($result);......
30820 20 20 20 7d 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 63 6f 6c 73 3b 0a 20 20 20 20 7d ...}.........return.$cols;.....}
30840 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 65 72 72 6f 72 4e 61 74 ......//.}}}.....//.{{{.errorNat
30860 69 76 65 28 29 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 47 65 74 20 74 68 65 20 6e 61 ive()....../**......*.Get.the.na
30880 74 69 76 65 20 65 72 72 6f 72 20 63 6f 64 65 20 6f 66 20 74 68 65 20 6c 61 73 74 20 65 72 72 6f tive.error.code.of.the.last.erro
308a0 72 20 28 69 66 20 61 6e 79 29 20 74 68 61 74 20 6f 63 63 75 72 65 64 0a 20 20 20 20 20 2a 20 6f r.(if.any).that.occured......*.o
308c0 6e 20 74 68 65 20 63 75 72 72 65 6e 74 20 63 6f 6e 6e 65 63 74 69 6f 6e 2e 20 20 54 68 69 73 20 n.the.current.connection...This.
308e0 64 6f 65 73 20 6e 6f 74 20 77 6f 72 6b 2c 20 61 73 20 4f 43 49 45 72 72 6f 72 20 64 6f 65 73 0a does.not.work,.as.OCIError.does.
30900 20 20 20 20 20 2a 20 6e 6f 74 20 77 6f 72 6b 20 75 6e 6c 65 73 73 20 67 69 76 65 6e 20 61 20 73 .....*.not.work.unless.given.a.s
30920 74 61 74 65 6d 65 6e 74 2e 20 20 49 66 20 4f 43 49 45 72 72 6f 72 20 64 6f 65 73 20 72 65 74 75 tatement...If.OCIError.does.retu
30940 72 6e 0a 20 20 20 20 20 2a 20 73 6f 6d 65 74 68 69 6e 67 2c 20 73 6f 20 77 69 6c 6c 20 74 68 69 rn......*.something,.so.will.thi
30960 73 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 72 65 74 75 72 6e 20 69 6e 74 20 6e 61 74 s.......*......*.@return.int.nat
30980 69 76 65 20 6f 63 69 38 20 65 72 72 6f 72 20 63 6f 64 65 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 ive.oci8.error.code......*/.....
309a0 66 75 6e 63 74 69 6f 6e 20 65 72 72 6f 72 4e 61 74 69 76 65 28 29 0a 20 20 20 20 7b 0a 20 20 20 function.errorNative().....{....
309c0 20 20 20 20 20 69 66 20 28 69 73 5f 72 65 73 6f 75 72 63 65 28 24 74 68 69 73 2d 3e 6c 61 73 74 .....if.(is_resource($this->last
309e0 5f 73 74 6d 74 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 65 72 72 6f 72 20 3d 20 40 _stmt)).{.............$error.=.@
30a00 4f 43 49 45 72 72 6f 72 28 24 74 68 69 73 2d 3e 6c 61 73 74 5f 73 74 6d 74 29 3b 0a 20 20 20 20 OCIError($this->last_stmt);.....
30a20 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 65 72 72 6f 72 20 ....}.else.{.............$error.
30a40 3d 20 40 4f 43 49 45 72 72 6f 72 28 24 74 68 69 73 2d 3e 63 6f 6e 6e 65 63 74 69 6f 6e 29 3b 0a =.@OCIError($this->connection);.
30a60 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 69 66 20 28 69 73 5f 61 72 72 61 79 28 24 ........}.........if.(is_array($
30a80 65 72 72 6f 72 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 65 72 error)).{.............return.$er
30aa0 72 6f 72 5b 27 63 6f 64 65 27 5d 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 72 ror['code'];.........}.........r
30ac0 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 eturn.false;.....}......//.}}}..
30ae0 20 20 20 2f 2f 20 7b 7b 7b 20 70 72 65 70 61 72 65 28 29 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 ...//.{{{.prepare()....../**....
30b00 20 20 2a 20 50 72 65 70 61 72 65 73 20 61 20 71 75 65 72 79 20 66 6f 72 20 6d 75 6c 74 69 70 6c ..*.Prepares.a.query.for.multipl
30b20 65 20 65 78 65 63 75 74 69 6f 6e 20 77 69 74 68 20 65 78 65 63 75 74 65 28 29 2e 20 20 57 69 74 e.execution.with.execute()...Wit
30b40 68 0a 20 20 20 20 20 2a 20 6f 63 69 38 2c 20 74 68 69 73 20 69 73 20 65 6d 75 6c 61 74 65 64 2e h......*.oci8,.this.is.emulated.
30b60 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 24 71 75 65 72 79 20 71 75 65 72 79 20 74 6f 20 62 ......*.@param.$query.query.to.b
30b80 65 20 70 72 65 70 61 72 65 64 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 72 65 74 75 72 6e e.prepared......*......*.@return
30ba0 20 44 42 20 73 74 61 74 65 6d 65 6e 74 20 72 65 73 6f 75 72 63 65 0a 20 20 20 20 20 2a 2f 0a 20 .DB.statement.resource......*/..
30bc0 20 20 20 66 75 6e 63 74 69 6f 6e 20 70 72 65 70 61 72 65 28 24 71 75 65 72 79 29 0a 20 20 20 20 ...function.prepare($query).....
30be0 7b 0a 20 20 20 20 20 20 20 20 24 74 6f 6b 65 6e 73 20 3d 20 73 70 6c 69 74 28 27 5b 5c 26 5c 3f {.........$tokens.=.split('[\&\?
30c00 5d 27 2c 20 24 71 75 65 72 79 29 3b 0a 20 20 20 20 20 20 20 20 24 74 6f 6b 65 6e 20 3d 20 30 3b ]',.$query);.........$token.=.0;
30c20 0a 20 20 20 20 20 20 20 20 24 74 79 70 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 20 20 20 20 20 .........$types.=.array();......
30c40 20 20 20 24 71 6c 65 6e 20 3d 20 73 74 72 6c 65 6e 28 24 71 75 65 72 79 29 3b 0a 20 20 20 20 20 ...$qlen.=.strlen($query);......
30c60 20 20 20 66 6f 72 20 28 24 69 20 3d 20 30 3b 20 24 69 20 3c 20 24 71 6c 65 6e 3b 20 24 69 2b 2b ...for.($i.=.0;.$i.<.$qlen;.$i++
30c80 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 73 77 69 74 63 68 20 28 24 71 75 65 72 79 5b 24 ).{.............switch.($query[$
30ca0 69 5d 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 61 73 65 20 27 3f 27 3a 0a i]).{.................case.'?':.
30cc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 74 79 70 65 73 5b 24 74 6f 6b 65 ....................$types[$toke
30ce0 6e 2b 2b 5d 20 3d 20 44 42 5f 50 41 52 41 4d 5f 53 43 41 4c 41 52 3b 0a 20 20 20 20 20 20 20 20 n++].=.DB_PARAM_SCALAR;.........
30d00 20 20 20 20 20 20 20 20 20 20 20 20 62 72 65 61 6b 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ............break;..............
30d20 20 20 20 63 61 73 65 20 27 26 27 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ...case.'&':....................
30d40 20 24 74 79 70 65 73 5b 24 74 6f 6b 65 6e 2b 2b 5d 20 3d 20 44 42 5f 50 41 52 41 4d 5f 4f 50 41 .$types[$token++].=.DB_PARAM_OPA
30d60 51 55 45 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 72 65 61 6b 3b 0a QUE;.....................break;.
30d80 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 ............}.........}.........
30da0 24 62 69 6e 64 73 20 3d 20 73 69 7a 65 6f 66 28 24 74 6f 6b 65 6e 73 29 20 2d 20 31 3b 0a 20 20 $binds.=.sizeof($tokens).-.1;...
30dc0 20 20 20 20 20 20 24 6e 65 77 71 75 65 72 79 20 3d 20 27 27 3b 0a 20 20 20 20 20 20 20 20 66 6f ......$newquery.=.'';.........fo
30de0 72 20 28 24 69 20 3d 20 30 3b 20 24 69 20 3c 20 24 62 69 6e 64 73 3b 20 24 69 2b 2b 29 20 7b 0a r.($i.=.0;.$i.<.$binds;.$i++).{.
30e00 20 20 20 20 20 20 20 20 20 20 20 20 24 6e 65 77 71 75 65 72 79 20 2e 3d 20 24 74 6f 6b 65 6e 73 ............$newquery..=.$tokens
30e20 5b 24 69 5d 20 2e 20 22 3a 62 69 6e 64 22 20 2e 20 24 69 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 [$i]...":bind"...$i;.........}..
30e40 20 20 20 20 20 20 20 24 6e 65 77 71 75 65 72 79 20 2e 3d 20 24 74 6f 6b 65 6e 73 5b 24 69 5d 3b .......$newquery..=.$tokens[$i];
30e60 0a 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 6c 61 73 74 5f 71 75 65 72 79 20 3d 20 24 71 75 .........$this->last_query.=.$qu
30e80 65 72 79 3b 0a 20 20 20 20 20 20 20 20 24 6e 65 77 71 75 65 72 79 20 3d 20 24 74 68 69 73 2d 3e ery;.........$newquery.=.$this->
30ea0 6d 6f 64 69 66 79 51 75 65 72 79 28 24 6e 65 77 71 75 65 72 79 29 3b 0a 20 20 20 20 20 20 20 20 modifyQuery($newquery);.........
30ec0 24 73 74 6d 74 20 3d 20 40 4f 43 49 50 61 72 73 65 28 24 74 68 69 73 2d 3e 63 6f 6e 6e 65 63 74 $stmt.=.@OCIParse($this->connect
30ee0 69 6f 6e 2c 20 24 6e 65 77 71 75 65 72 79 29 3b 0a 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e ion,.$newquery);.........$this->
30f00 70 72 65 70 61 72 65 5f 74 79 70 65 73 5b 24 73 74 6d 74 5d 20 3d 20 24 74 79 70 65 73 3b 0a 20 prepare_types[$stmt].=.$types;..
30f20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 6d 61 6e 69 70 5f 71 75 65 72 79 5b 28 69 6e 74 29 24 .......$this->manip_query[(int)$
30f40 73 74 6d 74 5d 20 3d 20 44 42 3a 3a 69 73 4d 61 6e 69 70 28 24 71 75 65 72 79 29 3b 0a 20 20 20 stmt].=.DB::isManip($query);....
30f60 20 20 20 20 20 72 65 74 75 72 6e 20 24 73 74 6d 74 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f .....return.$stmt;.....}......//
30f80 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 65 78 65 63 75 74 65 28 29 0a 0a 20 20 20 20 2f .}}}.....//.{{{.execute()....../
30fa0 2a 2a 0a 20 20 20 20 20 2a 20 45 78 65 63 75 74 65 73 20 61 20 44 42 20 73 74 61 74 65 6d 65 6e **......*.Executes.a.DB.statemen
30fc0 74 20 70 72 65 70 61 72 65 64 20 77 69 74 68 20 70 72 65 70 61 72 65 28 29 2e 0a 20 20 20 20 20 t.prepared.with.prepare().......
30fe0 2a 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 24 73 74 6d 74 20 61 20 44 42 20 73 74 61 74 65 *......*.@param.$stmt.a.DB.state
31000 6d 65 6e 74 20 72 65 73 6f 75 72 63 65 20 28 72 65 74 75 72 6e 65 64 20 66 72 6f 6d 20 70 72 65 ment.resource.(returned.from.pre
31020 70 61 72 65 28 29 29 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 24 64 61 74 61 20 64 61 74 61 pare())......*.@param.$data.data
31040 20 74 6f 20 62 65 20 75 73 65 64 20 69 6e 20 65 78 65 63 75 74 69 6f 6e 20 6f 66 20 74 68 65 20 .to.be.used.in.execution.of.the.
31060 73 74 61 74 65 6d 65 6e 74 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 72 65 74 75 72 6e 20 statement......*......*.@return.
31080 69 6e 74 20 72 65 74 75 72 6e 73 20 61 6e 20 6f 63 69 38 20 72 65 73 75 6c 74 20 72 65 73 6f 75 int.returns.an.oci8.result.resou
310a0 72 63 65 20 66 6f 72 20 73 75 63 63 65 73 73 66 75 6c 0a 20 20 20 20 20 2a 20 53 45 4c 45 43 54 rce.for.successful......*.SELECT
310c0 20 71 75 65 72 69 65 73 2c 20 44 42 5f 4f 4b 20 66 6f 72 20 6f 74 68 65 72 20 73 75 63 63 65 73 .queries,.DB_OK.for.other.succes
310e0 73 66 75 6c 20 71 75 65 72 69 65 73 2e 20 20 41 20 44 42 20 65 72 72 6f 72 0a 20 20 20 20 20 2a sful.queries...A.DB.error......*
31100 20 63 6f 64 65 20 69 73 20 72 65 74 75 72 6e 65 64 20 6f 6e 20 66 61 69 6c 75 72 65 2e 0a 20 20 .code.is.returned.on.failure....
31120 20 20 20 2a 2f 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 26 65 78 65 63 75 74 65 28 24 73 74 6d ...*/.....function.&execute($stm
31140 74 2c 20 24 64 61 74 61 20 3d 20 66 61 6c 73 65 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 t,.$data.=.false).....{.........
31160 24 74 79 70 65 73 3d 26 24 74 68 69 73 2d 3e 70 72 65 70 61 72 65 5f 74 79 70 65 73 5b 24 73 74 $types=&$this->prepare_types[$st
31180 6d 74 5d 3b 0a 20 20 20 20 20 20 20 20 69 66 20 28 28 24 73 69 7a 65 20 3d 20 73 69 7a 65 6f 66 mt];.........if.(($size.=.sizeof
311a0 28 24 74 79 70 65 73 29 29 20 21 3d 20 73 69 7a 65 6f 66 28 24 64 61 74 61 29 29 20 7b 0a 20 20 ($types)).!=.sizeof($data)).{...
311c0 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 61 69 73 65 45 72 72 ..........return.$this->raiseErr
311e0 6f 72 28 44 42 5f 45 52 52 4f 52 5f 4d 49 53 4d 41 54 43 48 29 3b 0a 20 20 20 20 20 20 20 20 7d or(DB_ERROR_MISMATCH);.........}
31200 0a 20 20 20 20 20 20 20 20 66 6f 72 20 28 24 69 20 3d 20 30 3b 20 24 69 20 3c 20 24 73 69 7a 65 .........for.($i.=.0;.$i.<.$size
31220 3b 20 24 69 2b 2b 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 69 73 5f 61 72 72 ;.$i++).{.............if.(is_arr
31240 61 79 28 24 64 61 74 61 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 70 64 ay($data)).{.................$pd
31260 61 74 61 5b 24 69 5d 20 3d 20 26 24 64 61 74 61 5b 24 69 5d 3b 0a 20 20 20 20 20 20 20 20 20 20 ata[$i].=.&$data[$i];...........
31280 20 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 20 20 ..}.............else.{..........
312a0 20 20 20 20 20 20 20 24 70 64 61 74 61 5b 24 69 5d 20 3d 20 26 24 64 61 74 61 3b 0a 20 20 20 20 .......$pdata[$i].=.&$data;.....
312c0 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 24 74 79 70 65 73 ........}.............if.($types
312e0 5b 24 69 5d 20 3d 3d 20 44 42 5f 50 41 52 41 4d 5f 4f 50 41 51 55 45 29 20 7b 0a 20 20 20 20 20 [$i].==.DB_PARAM_OPAQUE).{......
31300 20 20 20 20 20 20 20 20 20 20 20 24 66 70 20 3d 20 66 6f 70 65 6e 28 24 70 64 61 74 61 5b 24 69 ...........$fp.=.fopen($pdata[$i
31320 5d 2c 20 22 72 22 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 70 64 61 74 61 5b ],."r");.................$pdata[
31340 24 69 5d 20 3d 20 27 27 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 24 66 $i].=.'';.................if.($f
31360 70 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 77 68 69 6c 65 20 28 p).{.....................while.(
31380 28 24 62 75 66 20 3d 20 66 72 65 61 64 28 24 66 70 2c 20 34 30 39 36 29 29 20 21 3d 20 66 61 6c ($buf.=.fread($fp,.4096)).!=.fal
313a0 73 65 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 70 se).{.........................$p
313c0 64 61 74 61 5b 24 69 5d 20 2e 3d 20 24 62 75 66 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 data[$i]..=.$buf;...............
313e0 20 20 20 20 20 20 7d 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 63 6c ......}......................fcl
31400 6f 73 65 28 24 66 70 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 ose($fp);.................}.....
31420 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 21 40 4f 43 49 42 ........}.............if.(!@OCIB
31440 69 6e 64 42 79 4e 61 6d 65 28 24 73 74 6d 74 2c 20 22 3a 62 69 6e 64 22 20 2e 20 24 69 2c 20 24 indByName($stmt,.":bind"...$i,.$
31460 70 64 61 74 61 5b 24 69 5d 2c 20 2d 31 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 pdata[$i],.-1)).{...............
31480 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6f 63 69 38 52 61 69 73 65 45 72 72 6f 72 28 24 ..return.$this->oci8RaiseError($
314a0 73 74 6d 74 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 7d 0a 20 stmt);.............}.........}..
314c0 20 20 20 20 20 20 20 69 66 20 28 24 74 68 69 73 2d 3e 61 75 74 6f 43 6f 6d 6d 69 74 29 20 7b 0a .......if.($this->autoCommit).{.
314e0 20 20 20 20 20 20 20 20 20 20 20 20 24 73 75 63 63 65 73 73 20 3d 20 40 4f 43 49 45 78 65 63 75 ............$success.=.@OCIExecu
31500 74 65 28 24 73 74 6d 74 2c 20 4f 43 49 5f 43 4f 4d 4d 49 54 5f 4f 4e 5f 53 55 43 43 45 53 53 29 te($stmt,.OCI_COMMIT_ON_SUCCESS)
31520 3b 0a 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 ;.........}.else.{.............$
31540 73 75 63 63 65 73 73 20 3d 20 40 4f 43 49 45 78 65 63 75 74 65 28 24 73 74 6d 74 2c 20 4f 43 49 success.=.@OCIExecute($stmt,.OCI
31560 5f 44 45 46 41 55 4c 54 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 69 66 20 _DEFAULT);.........}.........if.
31580 28 21 24 73 75 63 63 65 73 73 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e (!$success).{.............return
315a0 20 24 74 68 69 73 2d 3e 6f 63 69 38 52 61 69 73 65 45 72 72 6f 72 28 24 73 74 6d 74 29 3b 0a 20 .$this->oci8RaiseError($stmt);..
315c0 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 6c 61 73 74 5f 73 74 6d .......}.........$this->last_stm
315e0 74 20 3d 20 24 73 74 6d 74 3b 0a 20 20 20 20 20 20 20 20 69 66 20 28 24 74 68 69 73 2d 3e 6d 61 t.=.$stmt;.........if.($this->ma
31600 6e 69 70 5f 71 75 65 72 79 5b 28 69 6e 74 29 24 73 74 6d 74 5d 29 20 7b 0a 20 20 20 20 20 20 20 nip_query[(int)$stmt]).{........
31620 20 20 20 20 20 72 65 74 75 72 6e 20 44 42 5f 4f 4b 3b 0a 20 20 20 20 20 20 20 20 7d 20 65 6c 73 .....return.DB_OK;.........}.els
31640 65 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 6e 65 77 20 44 42 5f 72 65 e.{.............return.new.DB_re
31660 73 75 6c 74 28 24 74 68 69 73 2c 20 24 73 74 6d 74 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 sult($this,.$stmt);.........}...
31680 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 61 75 74 6f 43 ..}......//.}}}.....//.{{{.autoC
316a0 6f 6d 6d 69 74 28 29 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 45 6e 61 62 6c 65 2f 64 ommit()....../**......*.Enable/d
316c0 69 73 61 62 6c 65 20 61 75 74 6f 6d 61 74 69 63 20 63 6f 6d 6d 69 74 73 0a 20 20 20 20 20 2a 0a isable.automatic.commits......*.
316e0 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 24 6f 6e 6f 66 66 20 74 72 75 65 2f 66 61 6c 73 65 20 .....*.@param.$onoff.true/false.
31700 77 68 65 74 68 65 72 20 74 6f 20 61 75 74 6f 63 6f 6d 6d 69 74 0a 20 20 20 20 20 2a 2f 0a 20 20 whether.to.autocommit......*/...
31720 20 20 66 75 6e 63 74 69 6f 6e 20 61 75 74 6f 43 6f 6d 6d 69 74 28 24 6f 6e 6f 66 66 20 3d 20 66 ..function.autoCommit($onoff.=.f
31740 61 6c 73 65 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 61 75 74 6f 43 alse).....{.........$this->autoC
31760 6f 6d 6d 69 74 20 3d 20 28 62 6f 6f 6c 29 24 6f 6e 6f 66 66 3b 3b 0a 20 20 20 20 20 20 20 20 72 ommit.=.(bool)$onoff;;.........r
31780 65 74 75 72 6e 20 44 42 5f 4f 4b 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 eturn.DB_OK;.....}......//.}}}..
317a0 20 20 20 2f 2f 20 7b 7b 7b 20 63 6f 6d 6d 69 74 28 29 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 ...//.{{{.commit()....../**.....
317c0 20 2a 20 43 6f 6d 6d 69 74 20 74 72 61 6e 73 61 63 74 69 6f 6e 73 20 6f 6e 20 74 68 65 20 63 75 .*.Commit.transactions.on.the.cu
317e0 72 72 65 6e 74 20 63 6f 6e 6e 65 63 74 69 6f 6e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 rrent.connection......*......*.@
31800 72 65 74 75 72 6e 20 44 42 5f 45 52 52 4f 52 20 6f 72 20 44 42 5f 4f 4b 0a 20 20 20 20 20 2a 2f return.DB_ERROR.or.DB_OK......*/
31820 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6d 6d 69 74 28 29 0a 20 20 20 20 7b 0a 20 20 20 .....function.commit().....{....
31840 20 20 20 20 20 24 72 65 73 75 6c 74 20 3d 20 40 4f 43 49 43 6f 6d 6d 69 74 28 24 74 68 69 73 2d .....$result.=.@OCICommit($this-
31860 3e 63 6f 6e 6e 65 63 74 69 6f 6e 29 3b 0a 20 20 20 20 20 20 20 20 69 66 20 28 21 24 72 65 73 75 >connection);.........if.(!$resu
31880 6c 74 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e lt).{.............return.$this->
318a0 6f 63 69 38 52 61 69 73 65 45 72 72 6f 72 28 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 oci8RaiseError();.........}.....
318c0 20 20 20 20 72 65 74 75 72 6e 20 44 42 5f 4f 4b 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 ....return.DB_OK;.....}......//.
318e0 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 72 6f 6c 6c 62 61 63 6b 28 29 0a 0a 20 20 20 20 2f }}}.....//.{{{.rollback()....../
31900 2a 2a 0a 20 20 20 20 20 2a 20 52 6f 6c 6c 20 62 61 63 6b 20 61 6c 6c 20 75 6e 63 6f 6d 6d 69 74 **......*.Roll.back.all.uncommit
31920 74 65 64 20 74 72 61 6e 73 61 63 74 69 6f 6e 73 20 6f 6e 20 74 68 65 20 63 75 72 72 65 6e 74 20 ted.transactions.on.the.current.
31940 63 6f 6e 6e 65 63 74 69 6f 6e 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 72 65 74 75 72 connection.......*......*.@retur
31960 6e 20 44 42 5f 45 52 52 4f 52 20 6f 72 20 44 42 5f 4f 4b 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 n.DB_ERROR.or.DB_OK......*/.....
31980 66 75 6e 63 74 69 6f 6e 20 72 6f 6c 6c 62 61 63 6b 28 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 function.rollback().....{.......
319a0 20 20 24 72 65 73 75 6c 74 20 3d 20 40 4f 43 49 52 6f 6c 6c 62 61 63 6b 28 24 74 68 69 73 2d 3e ..$result.=.@OCIRollback($this->
319c0 63 6f 6e 6e 65 63 74 69 6f 6e 29 3b 0a 20 20 20 20 20 20 20 20 69 66 20 28 21 24 72 65 73 75 6c connection);.........if.(!$resul
319e0 74 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6f t).{.............return.$this->o
31a00 63 69 38 52 61 69 73 65 45 72 72 6f 72 28 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 ci8RaiseError();.........}......
31a20 20 20 20 72 65 74 75 72 6e 20 44 42 5f 4f 4b 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d ...return.DB_OK;.....}......//.}
31a40 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 61 66 66 65 63 74 65 64 52 6f 77 73 28 29 0a 0a 20 20 }}.....//.{{{.affectedRows()....
31a60 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 47 65 74 73 20 74 68 65 20 6e 75 6d 62 65 72 20 6f 66 20 ../**......*.Gets.the.number.of.
31a80 72 6f 77 73 20 61 66 66 65 63 74 65 64 20 62 79 20 74 68 65 20 6c 61 73 74 20 71 75 65 72 79 2e rows.affected.by.the.last.query.
31aa0 0a 20 20 20 20 20 2a 20 69 66 20 74 68 65 20 6c 61 73 74 20 71 75 65 72 79 20 77 61 73 20 61 20 ......*.if.the.last.query.was.a.
31ac0 73 65 6c 65 63 74 2c 20 72 65 74 75 72 6e 73 20 30 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a select,.returns.0.......*......*
31ae0 20 40 72 65 74 75 72 6e 20 6e 75 6d 62 65 72 20 6f 66 20 72 6f 77 73 20 61 66 66 65 63 74 65 64 .@return.number.of.rows.affected
31b00 20 62 79 20 74 68 65 20 6c 61 73 74 20 71 75 65 72 79 20 6f 72 20 44 42 5f 45 52 52 4f 52 0a 20 .by.the.last.query.or.DB_ERROR..
31b20 20 20 20 20 2a 2f 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 61 66 66 65 63 74 65 64 52 6f 77 73 ....*/.....function.affectedRows
31b40 28 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 69 66 20 28 24 74 68 69 73 2d 3e 6c 61 73 74 ().....{.........if.($this->last
31b60 5f 73 74 6d 74 20 3d 3d 3d 20 66 61 6c 73 65 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 _stmt.===.false).{.............r
31b80 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6f 63 69 38 52 61 69 73 65 45 72 72 6f 72 28 29 3b 0a 20 eturn.$this->oci8RaiseError();..
31ba0 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 24 72 65 73 75 6c 74 20 3d 20 40 4f 43 49 52 .......}.........$result.=.@OCIR
31bc0 6f 77 43 6f 75 6e 74 28 24 74 68 69 73 2d 3e 6c 61 73 74 5f 73 74 6d 74 29 3b 0a 20 20 20 20 20 owCount($this->last_stmt);......
31be0 20 20 20 69 66 20 28 24 72 65 73 75 6c 74 20 3d 3d 3d 20 66 61 6c 73 65 29 20 7b 0a 20 20 20 20 ...if.($result.===.false).{.....
31c00 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6f 63 69 38 52 61 69 73 65 45 ........return.$this->oci8RaiseE
31c20 72 72 6f 72 28 24 74 68 69 73 2d 3e 6c 61 73 74 5f 73 74 6d 74 29 3b 0a 20 20 20 20 20 20 20 20 rror($this->last_stmt);.........
31c40 7d 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 72 65 73 75 6c 74 3b 0a 20 20 20 20 7d 0a }.........return.$result;.....}.
31c60 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 6d 6f 64 69 66 79 51 75 65 .....//.}}}.....//.{{{.modifyQue
31c80 72 79 28 29 0a 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 6d 6f 64 69 66 79 51 75 65 72 79 28 24 ry()......function.modifyQuery($
31ca0 71 75 65 72 79 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 2f 2f 20 22 53 45 4c 45 43 54 20 query).....{.........//."SELECT.
31cc0 32 2b 32 22 20 6d 75 73 74 20 62 65 20 22 53 45 4c 45 43 54 20 32 2b 32 20 46 52 4f 4d 20 64 75 2+2".must.be."SELECT.2+2.FROM.du
31ce0 61 6c 22 20 69 6e 20 4f 72 61 63 6c 65 0a 20 20 20 20 20 20 20 20 69 66 20 28 70 72 65 67 5f 6d al".in.Oracle.........if.(preg_m
31d00 61 74 63 68 28 27 2f 5e 5c 73 2a 53 45 4c 45 43 54 2f 69 27 2c 20 24 71 75 65 72 79 29 20 26 26 atch('/^\s*SELECT/i',.$query).&&
31d20 0a 20 20 20 20 20 20 20 20 20 20 20 20 21 70 72 65 67 5f 6d 61 74 63 68 28 27 2f 5c 73 46 52 4f .............!preg_match('/\sFRO
31d40 4d 5c 73 2f 69 27 2c 20 24 71 75 65 72 79 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 M\s/i',.$query)).{.............$
31d60 71 75 65 72 79 20 2e 3d 20 22 20 46 52 4f 4d 20 64 75 61 6c 22 3b 0a 20 20 20 20 20 20 20 20 7d query..=.".FROM.dual";.........}
31d80 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 71 75 65 72 79 3b 0a 20 20 20 20 7d 0a 0a 20 .........return.$query;.....}...
31da0 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 6d 6f 64 69 66 79 4c 69 6d 69 74 ...//.}}}.....//.{{{.modifyLimit
31dc0 51 75 65 72 79 28 29 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 2a 20 45 6d 75 6c 61 74 65 20 74 Query()....../**.....*.Emulate.t
31de0 68 65 20 72 6f 77 20 6c 69 6d 69 74 20 73 75 70 70 6f 72 74 20 61 6c 74 65 72 69 6e 67 20 74 68 he.row.limit.support.altering.th
31e00 65 20 71 75 65 72 79 0a 20 20 20 20 2a 0a 20 20 20 20 2a 20 40 70 61 72 61 6d 20 73 74 72 69 6e e.query.....*.....*.@param.strin
31e20 67 20 24 71 75 65 72 79 20 54 68 65 20 71 75 65 72 79 20 74 6f 20 74 72 65 61 74 0a 20 20 20 20 g.$query.The.query.to.treat.....
31e40 2a 20 40 70 61 72 61 6d 20 69 6e 74 20 20 20 20 24 66 72 6f 6d 20 20 54 68 65 20 72 6f 77 20 74 *.@param.int....$from..The.row.t
31e60 6f 20 73 74 61 72 74 20 74 6f 20 66 65 74 63 68 20 66 72 6f 6d 0a 20 20 20 20 2a 20 40 70 61 72 o.start.to.fetch.from.....*.@par
31e80 61 6d 20 69 6e 74 20 20 20 20 24 63 6f 75 6e 74 20 54 68 65 20 6f 66 66 73 65 74 0a 20 20 20 20 am.int....$count.The.offset.....
31ea0 2a 20 40 72 65 74 75 72 6e 20 73 74 72 69 6e 67 20 54 68 65 20 6d 6f 64 69 66 69 65 64 20 71 75 *.@return.string.The.modified.qu
31ec0 65 72 79 0a 20 20 20 20 2a 0a 20 20 20 20 2a 20 40 61 75 74 68 6f 72 20 54 6f 6d 61 73 20 56 2e ery.....*.....*.@author.Tomas.V.
31ee0 56 2e 43 6f 78 20 3c 63 6f 78 40 69 64 65 63 6e 65 74 2e 63 6f 6d 3e 0a 20 20 20 20 2a 2f 0a 20 V.Cox.<cox@idecnet.com>.....*/..
31f00 20 20 20 66 75 6e 63 74 69 6f 6e 20 6d 6f 64 69 66 79 4c 69 6d 69 74 51 75 65 72 79 28 24 71 75 ...function.modifyLimitQuery($qu
31f20 65 72 79 2c 20 24 66 72 6f 6d 2c 20 24 63 6f 75 6e 74 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 ery,.$from,.$count).....{.......
31f40 20 20 2f 2f 20 4c 65 74 20 4f 72 61 63 6c 65 20 72 65 74 75 72 6e 20 74 68 65 20 6e 61 6d 65 20 ..//.Let.Oracle.return.the.name.
31f60 6f 66 20 74 68 65 20 63 6f 6c 75 6d 6e 73 20 69 6e 73 74 65 61 64 20 6f 66 0a 20 20 20 20 20 20 of.the.columns.instead.of.......
31f80 20 20 2f 2f 20 63 6f 64 69 6e 67 20 61 20 22 68 6f 6d 65 22 20 53 51 4c 20 70 61 72 73 65 72 0a ..//.coding.a."home".SQL.parser.
31fa0 20 20 20 20 20 20 20 20 24 71 5f 66 69 65 6c 64 73 20 3d 20 22 53 45 4c 45 43 54 20 2a 20 46 52 ........$q_fields.=."SELECT.*.FR
31fc0 4f 4d 20 28 24 71 75 65 72 79 29 20 57 48 45 52 45 20 4e 55 4c 4c 20 3d 20 4e 55 4c 4c 22 3b 0a OM.($query).WHERE.NULL.=.NULL";.
31fe0 20 20 20 20 20 20 20 20 69 66 20 28 21 24 72 65 73 75 6c 74 20 3d 20 4f 43 49 50 61 72 73 65 28 ........if.(!$result.=.OCIParse(
32000 24 74 68 69 73 2d 3e 63 6f 6e 6e 65 63 74 69 6f 6e 2c 20 24 71 5f 66 69 65 6c 64 73 29 29 20 7b $this->connection,.$q_fields)).{
32020 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6f 63 69 38 52 .............return.$this->oci8R
32040 61 69 73 65 45 72 72 6f 72 28 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 69 aiseError();.........}.........i
32060 66 20 28 21 4f 43 49 45 78 65 63 75 74 65 28 24 72 65 73 75 6c 74 2c 20 4f 43 49 5f 44 45 46 41 f.(!OCIExecute($result,.OCI_DEFA
32080 55 4c 54 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 ULT)).{.............return.$this
320a0 2d 3e 6f 63 69 38 52 61 69 73 65 45 72 72 6f 72 28 24 72 65 73 75 6c 74 29 3b 0a 20 20 20 20 20 ->oci8RaiseError($result);......
320c0 20 20 20 7d 0a 20 20 20 20 20 20 20 20 24 6e 63 6f 6c 73 20 3d 20 4f 43 49 4e 75 6d 43 6f 6c 73 ...}.........$ncols.=.OCINumCols
320e0 28 24 72 65 73 75 6c 74 29 3b 0a 20 20 20 20 20 20 20 20 24 63 6f 6c 73 20 20 3d 20 61 72 72 61 ($result);.........$cols..=.arra
32100 79 28 29 3b 0a 20 20 20 20 20 20 20 20 66 6f 72 20 28 20 24 69 20 3d 20 31 3b 20 24 69 20 3c 3d y();.........for.(.$i.=.1;.$i.<=
32120 20 24 6e 63 6f 6c 73 3b 20 24 69 2b 2b 20 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 63 .$ncols;.$i++.).{.............$c
32140 6f 6c 73 5b 5d 20 3d 20 4f 43 49 43 6f 6c 75 6d 6e 4e 61 6d 65 28 24 72 65 73 75 6c 74 2c 20 24 ols[].=.OCIColumnName($result,.$
32160 69 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 24 66 69 65 6c 64 73 20 3d 20 i);.........}.........$fields.=.
32180 69 6d 70 6c 6f 64 65 28 27 2c 20 27 2c 20 24 63 6f 6c 73 29 3b 0a 20 20 20 20 20 20 20 20 2f 2f implode(',.',.$cols);.........//
321a0 20 58 58 58 20 54 65 73 74 20 74 68 61 74 20 28 74 69 70 20 62 79 20 4a 6f 68 6e 20 4c 69 6d 29 .XXX.Test.that.(tip.by.John.Lim)
321c0 0a 20 20 20 20 20 20 20 20 2f 2f 69 66 28 70 72 65 67 5f 6d 61 74 63 68 28 27 2f 5e 5c 73 2a 53 .........//if(preg_match('/^\s*S
321e0 45 4c 45 43 54 5c 73 2b 2f 69 73 27 2c 20 24 71 75 65 72 79 2c 20 24 6d 61 74 63 68 29 29 20 7b ELECT\s+/is',.$query,.$match)).{
32200 0a 20 20 20 20 20 20 20 20 2f 2f 20 20 20 20 2f 2f 20 49 6e 74 72 6f 64 75 63 65 20 74 68 65 20 .........//....//.Introduce.the.
32220 46 49 52 53 54 5f 52 4f 57 53 20 4f 72 61 63 6c 65 20 71 75 65 72 79 20 6f 70 74 69 6d 69 7a 65 FIRST_ROWS.Oracle.query.optimize
32240 72 0a 20 20 20 20 20 20 20 20 2f 2f 20 20 20 20 24 71 75 65 72 79 20 3d 20 73 75 62 73 74 72 28 r.........//....$query.=.substr(
32260 24 71 75 65 72 79 2c 20 73 74 72 6c 65 6e 28 24 6d 61 74 63 68 5b 30 5d 29 2c 20 73 74 72 6c 65 $query,.strlen($match[0]),.strle
32280 6e 28 24 71 75 65 72 79 29 29 3b 0a 20 20 20 20 20 20 20 20 2f 2f 20 20 20 20 24 71 75 65 72 79 n($query));.........//....$query
322a0 20 3d 20 22 53 45 4c 45 43 54 20 2f 2a 20 2b 46 49 52 53 54 5f 52 4f 57 53 20 2a 2f 20 22 20 2e .=."SELECT./*.+FIRST_ROWS.*/."..
322c0 20 24 71 75 65 72 79 3b 0a 20 20 20 20 20 20 20 20 2f 2f 7d 0a 0a 20 20 20 20 20 20 20 20 2f 2f .$query;.........//}..........//
322e0 20 43 6f 6e 73 74 72 75 63 74 20 74 68 65 20 71 75 65 72 79 0a 20 20 20 20 20 20 20 20 2f 2f 20 .Construct.the.query.........//.
32300 6d 6f 72 65 20 61 74 3a 20 68 74 74 70 3a 2f 2f 6d 61 72 63 2e 74 68 65 61 69 6d 73 67 72 6f 75 more.at:.http://marc.theaimsgrou
32320 70 2e 63 6f 6d 2f 3f 6c 3d 70 68 70 2d 64 62 26 6d 3d 39 39 38 33 31 39 35 38 31 30 31 32 31 32 p.com/?l=php-db&m=99831958101212
32340 26 77 3d 32 0a 20 20 20 20 20 20 20 20 2f 2f 20 50 65 72 68 61 70 73 20 74 68 69 73 20 63 6f 75 &w=2.........//.Perhaps.this.cou
32360 6c 64 20 62 65 20 6f 70 74 69 6d 69 7a 65 64 20 77 69 74 68 20 74 68 65 20 75 73 65 20 6f 66 20 ld.be.optimized.with.the.use.of.
32380 55 6e 69 6f 6e 73 0a 20 20 20 20 20 20 20 20 24 66 72 6f 6d 20 2b 3d 20 31 3b 20 2f 2f 20 69 6e Unions.........$from.+=.1;.//.in
323a0 20 4f 72 61 63 6c 65 20 72 6f 77 6e 75 6d 20 73 74 61 72 74 73 20 61 74 20 31 0a 20 20 20 20 20 .Oracle.rownum.starts.at.1......
323c0 20 20 20 24 71 75 65 72 79 20 3d 20 22 53 45 4c 45 43 54 20 24 66 69 65 6c 64 73 20 46 52 4f 4d ...$query.=."SELECT.$fields.FROM
323e0 22 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 20 20 28 53 45 4c 45 43 54 20 72 "..................."..(SELECT.r
32400 6f 77 6e 75 6d 20 61 73 20 6c 69 6e 65 6e 75 6d 2c 20 24 66 69 65 6c 64 73 20 46 52 4f 4d 22 2e ownum.as.linenum,.$fields.FROM".
32420 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 20 20 20 20 20 20 28 24 71 75 65 72 79 .................."......($query
32440 29 22 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 20 20 57 48 45 52 45 20 72 6f )"..................."..WHERE.ro
32460 77 6e 75 6d 20 3c 3d 20 22 2e 20 28 24 66 72 6f 6d 20 2b 20 24 63 6f 75 6e 74 29 20 2e 0a 20 20 wnum.<=."..($from.+.$count).....
32480 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 29 20 57 48 45 52 45 20 6c 69 6e 65 6e 75 6d 20 ...............").WHERE.linenum.
324a0 3e 3d 20 24 66 72 6f 6d 22 3b 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 71 75 65 72 79 >=.$from";.........return.$query
324c0 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 6e ;.....}......//.}}}.....//.{{{.n
324e0 65 78 74 49 64 28 29 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 47 65 74 20 74 68 65 20 extId()....../**......*.Get.the.
32500 6e 65 78 74 20 76 61 6c 75 65 20 69 6e 20 61 20 73 65 71 75 65 6e 63 65 2e 20 20 57 65 20 65 6d next.value.in.a.sequence...We.em
32520 75 6c 61 74 65 20 73 65 71 75 65 6e 63 65 73 0a 20 20 20 20 20 2a 20 66 6f 72 20 4d 79 53 51 4c ulate.sequences......*.for.MySQL
32540 2e 20 20 57 69 6c 6c 20 63 72 65 61 74 65 20 74 68 65 20 73 65 71 75 65 6e 63 65 20 69 66 20 69 ...Will.create.the.sequence.if.i
32560 74 20 64 6f 65 73 20 6e 6f 74 20 65 78 69 73 74 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 t.does.not.exist.......*......*.
32580 40 61 63 63 65 73 73 20 70 75 62 6c 69 63 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 70 61 @access.public......*......*.@pa
325a0 72 61 6d 20 24 73 65 71 5f 6e 61 6d 65 20 74 68 65 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 73 65 ram.$seq_name.the.name.of.the.se
325c0 71 75 65 6e 63 65 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 24 6f 6e 64 quence......*......*.@param.$ond
325e0 65 6d 61 6e 64 20 77 68 65 74 68 65 72 20 74 6f 20 63 72 65 61 74 65 20 74 68 65 20 73 65 71 75 emand.whether.to.create.the.sequ
32600 65 6e 63 65 20 74 61 62 6c 65 20 6f 6e 20 64 65 6d 61 6e 64 0a 20 20 20 20 20 2a 20 28 64 65 66 ence.table.on.demand......*.(def
32620 61 75 6c 74 20 69 73 20 74 72 75 65 29 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 72 65 74 ault.is.true)......*......*.@ret
32640 75 72 6e 20 61 20 73 65 71 75 65 6e 63 65 20 69 6e 74 65 67 65 72 2c 20 6f 72 20 61 20 44 42 20 urn.a.sequence.integer,.or.a.DB.
32660 65 72 72 6f 72 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 6e 65 78 74 49 error......*/.....function.nextI
32680 64 28 24 73 65 71 5f 6e 61 6d 65 2c 20 24 6f 6e 64 65 6d 61 6e 64 20 3d 20 74 72 75 65 29 0a 20 d($seq_name,.$ondemand.=.true)..
326a0 20 20 20 7b 0a 20 20 20 20 20 20 20 20 24 73 65 71 6e 61 6d 65 20 3d 20 24 74 68 69 73 2d 3e 67 ...{.........$seqname.=.$this->g
326c0 65 74 53 65 71 75 65 6e 63 65 4e 61 6d 65 28 24 73 65 71 5f 6e 61 6d 65 29 3b 0a 20 20 20 20 20 etSequenceName($seq_name);......
326e0 20 20 20 24 72 65 70 65 61 74 20 3d 20 30 3b 0a 20 20 20 20 20 20 20 20 64 6f 20 7b 0a 20 20 20 ...$repeat.=.0;.........do.{....
32700 20 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 65 78 70 65 63 74 45 72 72 6f 72 28 44 42 5f 45 .........$this->expectError(DB_E
32720 52 52 4f 52 5f 4e 4f 53 55 43 48 54 41 42 4c 45 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 RROR_NOSUCHTABLE);.............$
32740 72 65 73 75 6c 74 20 3d 20 24 74 68 69 73 2d 3e 71 75 65 72 79 28 22 53 45 4c 45 43 54 20 24 7b result.=.$this->query("SELECT.${
32760 73 65 71 6e 61 6d 65 7d 2e 6e 65 78 74 76 61 6c 20 46 52 4f 4d 20 64 75 61 6c 22 29 3b 0a 20 20 seqname}.nextval.FROM.dual");...
32780 20 20 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 70 6f 70 45 78 70 65 63 74 28 29 3b 0a 20 20 ..........$this->popExpect();...
327a0 20 20 20 20 20 20 20 20 20 20 69 66 20 28 24 6f 6e 64 65 6d 61 6e 64 20 26 26 20 44 42 3a 3a 69 ..........if.($ondemand.&&.DB::i
327c0 73 45 72 72 6f 72 28 24 72 65 73 75 6c 74 29 20 26 26 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 sError($result).&&..............
327e0 20 20 20 24 72 65 73 75 6c 74 2d 3e 67 65 74 43 6f 64 65 28 29 20 3d 3d 20 44 42 5f 45 52 52 4f ...$result->getCode().==.DB_ERRO
32800 52 5f 4e 4f 53 55 43 48 54 41 42 4c 45 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 R_NOSUCHTABLE).{................
32820 20 24 72 65 70 65 61 74 20 3d 20 31 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 72 .$repeat.=.1;.................$r
32840 65 73 75 6c 74 20 3d 20 24 74 68 69 73 2d 3e 63 72 65 61 74 65 53 65 71 75 65 6e 63 65 28 24 73 esult.=.$this->createSequence($s
32860 65 71 5f 6e 61 6d 65 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 44 42 eq_name);.................if.(DB
32880 3a 3a 69 73 45 72 72 6f 72 28 24 72 65 73 75 6c 74 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 ::isError($result)).{...........
328a0 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 61 69 73 65 45 72 72 ..........return.$this->raiseErr
328c0 6f 72 28 24 72 65 73 75 6c 74 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 or($result);.................}..
328e0 20 20 20 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 ...........}.else.{.............
32900 20 20 20 20 24 72 65 70 65 61 74 20 3d 20 30 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 ....$repeat.=.0;.............}..
32920 20 20 20 20 20 20 20 7d 20 77 68 69 6c 65 20 28 24 72 65 70 65 61 74 29 3b 0a 20 20 20 20 20 20 .......}.while.($repeat);.......
32940 20 20 69 66 20 28 44 42 3a 3a 69 73 45 72 72 6f 72 28 24 72 65 73 75 6c 74 29 29 20 7b 0a 20 20 ..if.(DB::isError($result)).{...
32960 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 61 69 73 65 45 72 72 ..........return.$this->raiseErr
32980 6f 72 28 24 72 65 73 75 6c 74 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 24 or($result);.........}.........$
329a0 61 72 72 20 3d 20 24 72 65 73 75 6c 74 2d 3e 66 65 74 63 68 52 6f 77 28 44 42 5f 46 45 54 43 48 arr.=.$result->fetchRow(DB_FETCH
329c0 4d 4f 44 45 5f 4f 52 44 45 52 45 44 29 3b 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 61 MODE_ORDERED);.........return.$a
329e0 72 72 5b 30 5d 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 rr[0];.....}......//.}}}.....//.
32a00 7b 7b 7b 20 63 72 65 61 74 65 53 65 71 75 65 6e 63 65 28 29 0a 0a 20 20 20 20 66 75 6e 63 74 69 {{{.createSequence()......functi
32a20 6f 6e 20 63 72 65 61 74 65 53 65 71 75 65 6e 63 65 28 24 73 65 71 5f 6e 61 6d 65 29 0a 20 20 20 on.createSequence($seq_name)....
32a40 20 7b 0a 20 20 20 20 20 20 20 20 24 73 65 71 6e 61 6d 65 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 .{.........$seqname.=.$this->get
32a60 53 65 71 75 65 6e 63 65 4e 61 6d 65 28 24 73 65 71 5f 6e 61 6d 65 29 3b 0a 20 20 20 20 20 20 20 SequenceName($seq_name);........
32a80 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 71 75 65 72 79 28 22 43 52 45 41 54 45 20 53 45 51 .return.$this->query("CREATE.SEQ
32aa0 55 45 4e 43 45 20 24 7b 73 65 71 6e 61 6d 65 7d 22 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f UENCE.${seqname}");.....}....../
32ac0 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 64 72 6f 70 53 65 71 75 65 6e 63 65 28 29 0a /.}}}.....//.{{{.dropSequence().
32ae0 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 64 72 6f 70 53 65 71 75 65 6e 63 65 28 24 73 65 71 5f .....function.dropSequence($seq_
32b00 6e 61 6d 65 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 24 73 65 71 6e 61 6d 65 20 3d 20 24 name).....{.........$seqname.=.$
32b20 74 68 69 73 2d 3e 67 65 74 53 65 71 75 65 6e 63 65 4e 61 6d 65 28 24 73 65 71 5f 6e 61 6d 65 29 this->getSequenceName($seq_name)
32b40 3b 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 71 75 65 72 79 28 22 44 ;.........return.$this->query("D
32b60 52 4f 50 20 53 45 51 55 45 4e 43 45 20 24 7b 73 65 71 6e 61 6d 65 7d 22 29 3b 0a 20 20 20 20 7d ROP.SEQUENCE.${seqname}");.....}
32b80 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 6f 63 69 38 52 61 69 73 ......//.}}}.....//.{{{.oci8Rais
32ba0 65 45 72 72 6f 72 28 29 0a 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 6f 63 69 38 52 61 69 73 65 eError()......function.oci8Raise
32bc0 45 72 72 6f 72 28 24 65 72 72 6e 6f 20 3d 20 6e 75 6c 6c 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 Error($errno.=.null).....{......
32be0 20 20 20 69 66 20 28 24 65 72 72 6e 6f 20 3d 3d 3d 20 6e 75 6c 6c 29 20 7b 0a 20 20 20 20 20 20 ...if.($errno.===.null).{.......
32c00 20 20 20 20 20 20 24 65 72 72 6f 72 20 3d 20 40 4f 43 49 45 72 72 6f 72 28 24 74 68 69 73 2d 3e ......$error.=.@OCIError($this->
32c20 63 6f 6e 6e 65 63 74 69 6f 6e 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 connection);.............return.
32c40 24 74 68 69 73 2d 3e 72 61 69 73 65 45 72 72 6f 72 28 24 74 68 69 73 2d 3e 65 72 72 6f 72 43 6f $this->raiseError($this->errorCo
32c60 64 65 28 24 65 72 72 6f 72 5b 27 63 6f 64 65 27 5d 29 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 de($error['code']),.............
32c80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 75 6c 6c 2c 20 6e .........................null,.n
32ca0 75 6c 6c 2c 20 6e 75 6c 6c 2c 20 24 65 72 72 6f 72 5b 27 6d 65 73 73 61 67 65 27 5d 29 3b 0a 20 ull,.null,.$error['message']);..
32cc0 20 20 20 20 20 20 20 7d 20 65 6c 73 65 69 66 20 28 69 73 5f 72 65 73 6f 75 72 63 65 28 24 65 72 .......}.elseif.(is_resource($er
32ce0 72 6e 6f 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 65 72 72 6f 72 20 3d 20 40 4f 43 rno)).{.............$error.=.@OC
32d00 49 45 72 72 6f 72 28 24 65 72 72 6e 6f 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 IError($errno);.............retu
32d20 72 6e 20 24 74 68 69 73 2d 3e 72 61 69 73 65 45 72 72 6f 72 28 24 74 68 69 73 2d 3e 65 72 72 6f rn.$this->raiseError($this->erro
32d40 72 43 6f 64 65 28 24 65 72 72 6f 72 5b 27 63 6f 64 65 27 5d 29 2c 0a 20 20 20 20 20 20 20 20 20 rCode($error['code']),..........
32d60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 75 6c 6c ............................null
32d80 2c 20 6e 75 6c 6c 2c 20 6e 75 6c 6c 2c 20 24 65 72 72 6f 72 5b 27 6d 65 73 73 61 67 65 27 5d 29 ,.null,.null,.$error['message'])
32da0 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 ;.........}.........return.$this
32dc0 2d 3e 72 61 69 73 65 45 72 72 6f 72 28 24 74 68 69 73 2d 3e 65 72 72 6f 72 43 6f 64 65 28 24 65 ->raiseError($this->errorCode($e
32de0 72 72 6e 6f 29 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f rrno));.....}......//.}}}.....//
32e00 20 7b 7b 7b 20 67 65 74 53 70 65 63 69 61 6c 51 75 65 72 79 28 29 0a 0a 20 20 20 20 2f 2a 2a 0a .{{{.getSpecialQuery()....../**.
32e20 20 20 20 20 2a 20 52 65 74 75 72 6e 73 20 74 68 65 20 71 75 65 72 79 20 6e 65 65 64 65 64 20 74 ....*.Returns.the.query.needed.t
32e40 6f 20 67 65 74 20 73 6f 6d 65 20 62 61 63 6b 65 6e 64 20 69 6e 66 6f 0a 20 20 20 20 2a 20 40 70 o.get.some.backend.info.....*.@p
32e60 61 72 61 6d 20 73 74 72 69 6e 67 20 24 74 79 70 65 20 57 68 61 74 20 6b 69 6e 64 20 6f 66 20 69 aram.string.$type.What.kind.of.i
32e80 6e 66 6f 20 79 6f 75 20 77 61 6e 74 20 74 6f 20 72 65 74 72 69 65 76 65 0a 20 20 20 20 2a 20 40 nfo.you.want.to.retrieve.....*.@
32ea0 72 65 74 75 72 6e 20 73 74 72 69 6e 67 20 54 68 65 20 53 51 4c 20 71 75 65 72 79 20 73 74 72 69 return.string.The.SQL.query.stri
32ec0 6e 67 0a 20 20 20 20 2a 2f 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 70 65 63 69 61 ng.....*/.....function.getSpecia
32ee0 6c 51 75 65 72 79 28 24 74 79 70 65 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 73 77 69 74 lQuery($type).....{.........swit
32f00 63 68 20 28 24 74 79 70 65 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 63 61 73 65 20 27 74 ch.($type).{.............case.'t
32f20 61 62 6c 65 73 27 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 73 71 6c 20 3d 20 22 ables':.................$sql.=."
32f40 53 45 4c 45 43 54 20 74 61 62 6c 65 5f 6e 61 6d 65 20 46 52 4f 4d 20 75 73 65 72 5f 74 61 62 6c SELECT.table_name.FROM.user_tabl
32f60 65 73 22 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 72 65 61 6b 3b 0a 20 20 20 20 es";.................break;.....
32f80 20 20 20 20 20 20 20 20 64 65 66 61 75 6c 74 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ........default:................
32fa0 20 72 65 74 75 72 6e 20 6e 75 6c 6c 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 .return.null;.........}.........
32fc0 72 65 74 75 72 6e 20 24 73 71 6c 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 return.$sql;.....}......//.}}}..
32fe0 20 20 20 2f 2f 20 7b 7b 7b 20 74 61 62 6c 65 49 6e 66 6f 28 29 0a 0a 20 20 20 20 66 75 6e 63 74 ...//.{{{.tableInfo()......funct
33000 69 6f 6e 20 74 61 62 6c 65 49 6e 66 6f 28 24 72 65 73 75 6c 74 2c 20 24 6d 6f 64 65 20 3d 20 6e ion.tableInfo($result,.$mode.=.n
33020 75 6c 6c 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 24 63 6f 75 6e 74 20 3d 20 30 3b 0a 20 ull).....{.........$count.=.0;..
33040 20 20 20 20 20 20 20 24 72 65 73 20 20 20 3d 20 61 72 72 61 79 28 29 3b 0a 20 20 20 20 20 20 20 .......$res...=.array();........
33060 20 2f 2a 0a 20 20 20 20 20 20 20 20 20 2a 20 64 65 70 65 6e 64 69 6e 67 20 6f 6e 20 24 6d 6f 64 ./*..........*.depending.on.$mod
33080 65 2c 20 6d 65 74 61 64 61 74 61 20 72 65 74 75 72 6e 73 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e e,.metadata.returns.the.followin
330a0 67 20 76 61 6c 75 65 73 3a 0a 20 20 20 20 20 20 20 20 20 2a 0a 20 20 20 20 20 20 20 20 20 2a 20 g.values:..........*..........*.
330c0 2d 20 6d 6f 64 65 20 69 73 20 66 61 6c 73 65 20 28 64 65 66 61 75 6c 74 29 3a 0a 20 20 20 20 20 -.mode.is.false.(default):......
330e0 20 20 20 20 2a 20 24 72 65 73 5b 5d 3a 0a 20 20 20 20 20 20 20 20 20 2a 20 20 20 5b 30 5d 5b 22 ....*.$res[]:..........*...[0]["
33100 74 61 62 6c 65 22 5d 20 20 20 20 20 20 20 74 61 62 6c 65 20 6e 61 6d 65 0a 20 20 20 20 20 20 20 table"].......table.name........
33120 20 20 2a 20 20 20 5b 30 5d 5b 22 6e 61 6d 65 22 5d 20 20 20 20 20 20 20 20 66 69 65 6c 64 20 6e ..*...[0]["name"]........field.n
33140 61 6d 65 0a 20 20 20 20 20 20 20 20 20 2a 20 20 20 5b 30 5d 5b 22 74 79 70 65 22 5d 20 20 20 20 ame..........*...[0]["type"]....
33160 20 20 20 20 66 69 65 6c 64 20 74 79 70 65 0a 20 20 20 20 20 20 20 20 20 2a 20 20 20 5b 30 5d 5b ....field.type..........*...[0][
33180 22 6c 65 6e 22 5d 20 20 20 20 20 20 20 20 20 66 69 65 6c 64 20 6c 65 6e 67 74 68 0a 20 20 20 20 "len"].........field.length.....
331a0 20 20 20 20 20 2a 20 20 20 5b 30 5d 5b 22 6e 75 6c 6c 61 62 6c 65 22 5d 20 20 20 20 66 69 65 6c .....*...[0]["nullable"]....fiel
331c0 64 20 63 61 6e 20 62 65 20 6e 75 6c 6c 20 28 62 6f 6f 6c 65 61 6e 29 0a 20 20 20 20 20 20 20 20 d.can.be.null.(boolean).........
331e0 20 2a 20 20 20 5b 30 5d 5b 22 66 6f 72 6d 61 74 22 5d 20 20 20 20 20 20 66 69 65 6c 64 20 70 72 .*...[0]["format"]......field.pr
33200 65 63 69 73 69 6f 6e 20 69 66 20 4e 55 4d 42 45 52 0a 20 20 20 20 20 20 20 20 20 2a 20 20 20 5b ecision.if.NUMBER..........*...[
33220 30 5d 5b 22 64 65 66 61 75 6c 74 22 5d 20 20 20 20 20 66 69 65 6c 64 20 64 65 66 61 75 6c 74 20 0]["default"].....field.default.
33240 76 61 6c 75 65 0a 20 20 20 20 20 20 20 20 20 2a 0a 20 20 20 20 20 20 20 20 20 2a 20 2d 20 6d 6f value..........*..........*.-.mo
33260 64 65 20 69 73 20 44 42 5f 54 41 42 4c 45 49 4e 46 4f 5f 4f 52 44 45 52 0a 20 20 20 20 20 20 20 de.is.DB_TABLEINFO_ORDER........
33280 20 20 2a 20 24 72 65 73 5b 5d 3a 0a 20 20 20 20 20 20 20 20 20 2a 20 20 20 5b 22 6e 75 6d 5f 66 ..*.$res[]:..........*...["num_f
332a0 69 65 6c 64 73 22 5d 20 20 20 20 20 6e 75 6d 62 65 72 20 6f 66 20 66 69 65 6c 64 73 0a 20 20 20 ields"].....number.of.fields....
332c0 20 20 20 20 20 20 2a 20 20 20 5b 30 5d 5b 22 74 61 62 6c 65 22 5d 20 20 20 20 20 20 20 74 61 62 ......*...[0]["table"].......tab
332e0 6c 65 20 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 2a 20 20 20 5b 30 5d 5b 22 6e 61 6d 65 22 5d le.name..........*...[0]["name"]
33300 20 20 20 20 20 20 20 20 66 69 65 6c 64 20 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 2a 20 20 20 ........field.name..........*...
33320 5b 30 5d 5b 22 74 79 70 65 22 5d 20 20 20 20 20 20 20 20 66 69 65 6c 64 20 74 79 70 65 0a 20 20 [0]["type"]........field.type...
33340 20 20 20 20 20 20 20 2a 20 20 20 5b 30 5d 5b 22 6c 65 6e 22 5d 20 20 20 20 20 20 20 20 20 66 69 .......*...[0]["len"].........fi
33360 65 6c 64 20 6c 65 6e 67 74 68 0a 20 20 20 20 20 20 20 20 20 2a 20 20 20 5b 30 5d 5b 22 6e 75 6c eld.length..........*...[0]["nul
33380 6c 61 62 6c 65 22 5d 20 20 20 20 66 69 65 6c 64 20 63 61 6e 20 62 65 20 6e 75 6c 6c 20 28 62 6f lable"]....field.can.be.null.(bo
333a0 6f 6c 65 61 6e 29 0a 20 20 20 20 20 20 20 20 20 2a 20 20 20 5b 30 5d 5b 22 66 6f 72 6d 61 74 22 olean)..........*...[0]["format"
333c0 5d 20 20 20 20 20 20 66 69 65 6c 64 20 70 72 65 63 69 73 69 6f 6e 20 69 66 20 4e 55 4d 42 45 52 ]......field.precision.if.NUMBER
333e0 0a 20 20 20 20 20 20 20 20 20 2a 20 20 20 5b 30 5d 5b 22 64 65 66 61 75 6c 74 22 5d 20 20 20 20 ..........*...[0]["default"]....
33400 20 66 69 65 6c 64 20 64 65 66 61 75 6c 74 20 76 61 6c 75 65 0a 20 20 20 20 20 20 20 20 20 2a 20 .field.default.value..........*.
33420 20 20 5b 27 6f 72 64 65 72 27 5d 5b 66 69 65 6c 64 20 6e 61 6d 65 5d 20 69 6e 64 65 78 20 6f 66 ..['order'][field.name].index.of
33440 20 66 69 65 6c 64 20 6e 61 6d 65 64 20 22 66 69 65 6c 64 20 6e 61 6d 65 22 0a 20 20 20 20 20 20 .field.named."field.name".......
33460 20 20 20 2a 20 20 20 54 68 65 20 6c 61 73 74 20 6f 6e 65 20 69 73 20 75 73 65 64 2c 20 69 66 20 ...*...The.last.one.is.used,.if.
33480 79 6f 75 20 68 61 76 65 20 61 20 66 69 65 6c 64 20 6e 61 6d 65 2c 20 62 75 74 20 6e 6f 20 69 6e you.have.a.field.name,.but.no.in
334a0 64 65 78 2e 0a 20 20 20 20 20 20 20 20 20 2a 20 20 20 54 65 73 74 3a 20 20 69 66 20 28 69 73 73 dex...........*...Test:..if.(iss
334c0 65 74 28 24 72 65 73 75 6c 74 5b 27 6f 72 64 65 72 27 5d 5b 27 6d 79 66 69 65 6c 64 27 5d 29 29 et($result['order']['myfield']))
334e0 20 7b 20 2e 2e 2e 0a 20 20 20 20 20 20 20 20 20 2a 0a 20 20 20 20 20 20 20 20 20 2a 20 2d 20 6d .{..............*..........*.-.m
33500 6f 64 65 20 69 73 20 44 42 5f 54 41 42 4c 45 49 4e 46 4f 5f 4f 52 44 45 52 54 41 42 4c 45 0a 20 ode.is.DB_TABLEINFO_ORDERTABLE..
33520 20 20 20 20 20 20 20 20 2a 20 20 20 20 74 68 65 20 73 61 6d 65 20 61 73 20 61 62 6f 76 65 2e 20 ........*....the.same.as.above..
33540 62 75 74 20 61 64 64 69 74 69 6f 6e 61 6c 6c 79 0a 20 20 20 20 20 20 20 20 20 2a 20 20 20 5b 22 but.additionally..........*...["
33560 6f 72 64 65 72 74 61 62 6c 65 22 5d 5b 74 61 62 6c 65 20 6e 61 6d 65 5d 5b 66 69 65 6c 64 20 6e ordertable"][table.name][field.n
33580 61 6d 65 5d 20 69 6e 64 65 78 20 6f 66 20 66 69 65 6c 64 0a 20 20 20 20 20 20 20 20 20 2a 20 20 ame].index.of.field..........*..
335a0 20 20 20 20 6e 61 6d 65 64 20 22 66 69 65 6c 64 20 6e 61 6d 65 22 0a 20 20 20 20 20 20 20 20 20 ....named."field.name"..........
335c0 2a 0a 20 20 20 20 20 20 20 20 20 2a 20 20 20 20 20 20 74 68 69 73 20 69 73 2c 20 62 65 63 61 75 *..........*......this.is,.becau
335e0 73 65 20 69 66 20 79 6f 75 20 68 61 76 65 20 66 69 65 6c 64 73 20 66 72 6f 6d 20 64 69 66 66 65 se.if.you.have.fields.from.diffe
33600 72 65 6e 74 0a 20 20 20 20 20 20 20 20 20 2a 20 20 20 20 20 20 74 61 62 6c 65 73 20 77 69 74 68 rent..........*......tables.with
33620 20 74 68 65 20 73 61 6d 65 20 66 69 65 6c 64 20 6e 61 6d 65 20 2a 20 74 68 65 79 20 6f 76 65 72 .the.same.field.name.*.they.over
33640 72 69 64 65 20 65 61 63 68 0a 20 20 20 20 20 20 20 20 20 2a 20 20 20 20 20 20 6f 74 68 65 72 20 ride.each..........*......other.
33660 77 69 74 68 20 44 42 5f 54 41 42 4c 45 49 4e 46 4f 5f 4f 52 44 45 52 0a 20 20 20 20 20 20 20 20 with.DB_TABLEINFO_ORDER.........
33680 20 2a 0a 20 20 20 20 20 20 20 20 20 2a 20 20 20 20 20 20 79 6f 75 20 63 61 6e 20 63 6f 6d 62 69 .*..........*......you.can.combi
336a0 6e 65 20 44 42 5f 54 41 42 4c 45 49 4e 46 4f 5f 4f 52 44 45 52 20 61 6e 64 0a 20 20 20 20 20 20 ne.DB_TABLEINFO_ORDER.and.......
336c0 20 20 20 2a 20 20 20 20 20 20 44 42 5f 54 41 42 4c 45 49 4e 46 4f 5f 4f 52 44 45 52 54 41 42 4c ...*......DB_TABLEINFO_ORDERTABL
336e0 45 20 77 69 74 68 20 44 42 5f 54 41 42 4c 45 49 4e 46 4f 5f 4f 52 44 45 52 20 7c 0a 20 20 20 20 E.with.DB_TABLEINFO_ORDER.|.....
33700 20 20 20 20 20 2a 20 20 20 20 20 20 44 42 5f 54 41 42 4c 45 49 4e 46 4f 5f 4f 52 44 45 52 54 41 .....*......DB_TABLEINFO_ORDERTA
33720 42 4c 45 20 2a 20 6f 72 20 77 69 74 68 20 44 42 5f 54 41 42 4c 45 49 4e 46 4f 5f 46 55 4c 4c 0a BLE.*.or.with.DB_TABLEINFO_FULL.
33740 20 20 20 20 20 20 20 20 20 2a 2f 0a 0a 20 20 20 20 20 20 20 20 2f 2f 20 69 66 20 24 72 65 73 75 .........*/..........//.if.$resu
33760 6c 74 20 69 73 20 61 20 73 74 72 69 6e 67 2c 20 77 65 20 63 6f 6c 6c 65 63 74 20 69 6e 66 6f 20 lt.is.a.string,.we.collect.info.
33780 66 6f 72 20 61 20 74 61 62 6c 65 20 6f 6e 6c 79 0a 20 20 20 20 20 20 20 20 69 66 20 28 69 73 5f for.a.table.only.........if.(is_
337a0 73 74 72 69 6e 67 28 24 72 65 73 75 6c 74 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 string($result)).{.............$
337c0 72 65 73 75 6c 74 20 3d 20 73 74 72 74 6f 75 70 70 65 72 28 24 72 65 73 75 6c 74 29 3b 0a 20 20 result.=.strtoupper($result);...
337e0 20 20 20 20 20 20 20 20 20 20 24 71 5f 66 69 65 6c 64 73 20 3d 20 22 73 65 6c 65 63 74 20 63 6f ..........$q_fields.=."select.co
33800 6c 75 6d 6e 5f 6e 61 6d 65 2c 20 64 61 74 61 5f 74 79 70 65 2c 20 64 61 74 61 5f 6c 65 6e 67 74 lumn_name,.data_type,.data_lengt
33820 68 2c 20 64 61 74 61 5f 70 72 65 63 69 73 69 6f 6e 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 h,.data_precision,..............
33840 20 20 20 20 20 20 20 20 20 20 20 20 6e 75 6c 6c 61 62 6c 65 2c 20 64 61 74 61 5f 64 65 66 61 75 ............nullable,.data_defau
33860 6c 74 20 66 72 6f 6d 20 75 73 65 72 5f 74 61 62 5f 63 6f 6c 75 6d 6e 73 0a 20 20 20 20 20 20 20 lt.from.user_tab_columns........
33880 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 77 68 65 72 65 20 74 61 62 6c 65 5f 6e 61 ..................where.table_na
338a0 6d 65 3d 27 24 72 65 73 75 6c 74 27 20 6f 72 64 65 72 20 62 79 20 63 6f 6c 75 6d 6e 5f 69 64 22 me='$result'.order.by.column_id"
338c0 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 21 24 73 74 6d 74 20 3d 20 4f 43 49 50 61 ;.............if.(!$stmt.=.OCIPa
338e0 72 73 65 28 24 74 68 69 73 2d 3e 63 6f 6e 6e 65 63 74 69 6f 6e 2c 20 24 71 5f 66 69 65 6c 64 73 rse($this->connection,.$q_fields
33900 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 )).{.................return.$thi
33920 73 2d 3e 6f 63 69 38 52 61 69 73 65 45 72 72 6f 72 28 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 s->oci8RaiseError();............
33940 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 21 4f 43 49 45 78 65 63 75 74 65 28 24 .}.............if.(!OCIExecute($
33960 73 74 6d 74 2c 20 4f 43 49 5f 44 45 46 41 55 4c 54 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 stmt,.OCI_DEFAULT)).{...........
33980 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6f 63 69 38 52 61 69 73 65 45 72 72 ......return.$this->oci8RaiseErr
339a0 6f 72 28 24 73 74 6d 74 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 or($stmt);.............}........
339c0 20 20 20 20 20 77 68 69 6c 65 20 28 4f 43 49 46 65 74 63 68 28 24 73 74 6d 74 29 29 20 7b 0a 20 .....while.(OCIFetch($stmt)).{..
339e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 72 65 73 5b 24 63 6f 75 6e 74 5d 5b 27 74 61 62 ...............$res[$count]['tab
33a00 6c 65 27 5d 20 20 20 20 20 20 20 3d 20 24 72 65 73 75 6c 74 3b 0a 20 20 20 20 20 20 20 20 20 20 le'].......=.$result;...........
33a20 20 20 20 20 20 20 24 72 65 73 5b 24 63 6f 75 6e 74 5d 5b 27 6e 61 6d 65 27 5d 20 20 20 20 20 20 ......$res[$count]['name']......
33a40 20 20 3d 20 40 4f 43 49 52 65 73 75 6c 74 28 24 73 74 6d 74 2c 20 31 29 3b 0a 20 20 20 20 20 20 ..=.@OCIResult($stmt,.1);.......
33a60 20 20 20 20 20 20 20 20 20 20 24 72 65 73 5b 24 63 6f 75 6e 74 5d 5b 27 74 79 70 65 27 5d 20 20 ..........$res[$count]['type']..
33a80 20 20 20 20 20 20 3d 20 40 4f 43 49 52 65 73 75 6c 74 28 24 73 74 6d 74 2c 20 32 29 3b 0a 20 20 ......=.@OCIResult($stmt,.2);...
33aa0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 72 65 73 5b 24 63 6f 75 6e 74 5d 5b 27 6c 65 6e 27 ..............$res[$count]['len'
33ac0 5d 20 20 20 20 20 20 20 20 20 3d 20 40 4f 43 49 52 65 73 75 6c 74 28 24 73 74 6d 74 2c 20 33 29 ].........=.@OCIResult($stmt,.3)
33ae0 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 72 65 73 5b 24 63 6f 75 6e 74 5d 5b 27 ;.................$res[$count]['
33b00 66 6f 72 6d 61 74 27 5d 20 20 20 20 20 20 3d 20 40 4f 43 49 52 65 73 75 6c 74 28 24 73 74 6d 74 format']......=.@OCIResult($stmt
33b20 2c 20 34 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 72 65 73 5b 24 63 6f 75 6e ,.4);.................$res[$coun
33b40 74 5d 5b 27 6e 75 6c 6c 61 62 6c 65 27 5d 20 20 20 20 3d 20 28 40 4f 43 49 52 65 73 75 6c 74 28 t]['nullable']....=.(@OCIResult(
33b60 24 73 74 6d 74 2c 20 35 29 20 3d 3d 20 27 59 27 29 20 3f 20 74 72 75 65 20 3a 20 66 61 6c 73 65 $stmt,.5).==.'Y').?.true.:.false
33b80 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 72 65 73 5b 24 63 6f 75 6e 74 5d 5b 27 ;.................$res[$count]['
33ba0 64 65 66 61 75 6c 74 27 5d 20 20 20 20 20 3d 20 40 4f 43 49 52 65 73 75 6c 74 28 24 73 74 6d 74 default'].....=.@OCIResult($stmt
33bc0 2c 20 36 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 24 6d 6f 64 65 20 ,.6);.................if.($mode.
33be0 26 20 44 42 5f 54 41 42 4c 45 49 4e 46 4f 5f 4f 52 44 45 52 29 20 7b 0a 20 20 20 20 20 20 20 20 &.DB_TABLEINFO_ORDER).{.........
33c00 20 20 20 20 20 20 20 20 20 20 20 20 24 72 65 73 5b 27 6f 72 64 65 72 27 5d 5b 24 72 65 73 5b 24 ............$res['order'][$res[$
33c20 63 6f 75 6e 74 5d 5b 27 6e 61 6d 65 27 5d 5d 20 3d 20 24 63 6f 75 6e 74 3b 0a 20 20 20 20 20 20 count]['name']].=.$count;.......
33c40 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 ..........}.................if.(
33c60 24 6d 6f 64 65 20 26 20 44 42 5f 54 41 42 4c 45 49 4e 46 4f 5f 4f 52 44 45 52 54 41 42 4c 45 29 $mode.&.DB_TABLEINFO_ORDERTABLE)
33c80 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 72 65 73 5b 27 6f 72 64 .{.....................$res['ord
33ca0 65 72 74 61 62 6c 65 27 5d 5b 24 72 65 73 5b 24 63 6f 75 6e 74 5d 5b 27 74 61 62 6c 65 27 5d 5d ertable'][$res[$count]['table']]
33cc0 5b 24 72 65 73 5b 24 63 6f 75 6e 74 5d 5b 27 6e 61 6d 65 27 5d 5d 20 3d 20 24 63 6f 75 6e 74 3b [$res[$count]['name']].=.$count;
33ce0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 .................}..............
33d00 20 20 20 24 63 6f 75 6e 74 2b 2b 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 ...$count++;.............}......
33d20 20 20 20 20 20 20 20 24 72 65 73 5b 27 6e 75 6d 5f 66 69 65 6c 64 73 27 5d 20 3d 20 24 63 6f 75 .......$res['num_fields'].=.$cou
33d40 6e 74 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 40 4f 43 49 46 72 65 65 53 74 61 74 65 6d 65 6e nt;.............@OCIFreeStatemen
33d60 74 28 24 73 74 6d 74 29 3b 0a 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 20 2f 2f 20 65 6c t($stmt);.........}.else.{.//.el
33d80 73 65 20 77 65 20 77 61 6e 74 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 61 62 6f 75 74 20 61 20 72 se.we.want.information.about.a.r
33da0 65 73 75 6c 74 73 65 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 24 72 65 73 75 6c 74 esultset.............if.($result
33dc0 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 6c 61 73 74 5f 73 74 6d 74 29 20 7b 0a 20 20 20 20 20 20 20 .===.$this->last_stmt).{........
33de0 20 20 20 20 20 20 20 20 20 24 63 6f 75 6e 74 20 3d 20 40 4f 43 49 4e 75 6d 43 6f 6c 73 28 24 72 .........$count.=.@OCINumCols($r
33e00 65 73 75 6c 74 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 20 28 24 69 3d esult);.................for.($i=
33e20 30 3b 20 24 69 3c 24 63 6f 75 6e 74 3b 20 24 69 2b 2b 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 0;.$i<$count;.$i++).{...........
33e40 20 20 20 20 20 20 20 20 20 20 24 72 65 73 5b 24 69 5d 5b 27 6e 61 6d 65 27 5d 20 20 3d 20 40 4f ..........$res[$i]['name']..=.@O
33e60 43 49 43 6f 6c 75 6d 6e 4e 61 6d 65 28 24 72 65 73 75 6c 74 2c 20 24 69 2b 31 29 3b 0a 20 20 20 CIColumnName($result,.$i+1);....
33e80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 72 65 73 5b 24 69 5d 5b 27 74 79 70 65 27 .................$res[$i]['type'
33ea0 5d 20 20 3d 20 40 4f 43 49 43 6f 6c 75 6d 6e 54 79 70 65 28 24 72 65 73 75 6c 74 2c 20 24 69 2b ]..=.@OCIColumnType($result,.$i+
33ec0 31 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 72 65 73 5b 24 69 5d 1);.....................$res[$i]
33ee0 5b 27 6c 65 6e 27 5d 20 20 20 3d 20 40 4f 43 49 43 6f 6c 75 6d 6e 53 69 7a 65 28 24 72 65 73 75 ['len']...=.@OCIColumnSize($resu
33f00 6c 74 2c 20 24 69 2b 31 29 3b 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 lt,.$i+1);......................
33f20 24 71 5f 66 69 65 6c 64 73 20 3d 20 22 73 65 6c 65 63 74 20 74 61 62 6c 65 5f 6e 61 6d 65 2c 20 $q_fields.=."select.table_name,.
33f40 64 61 74 61 5f 70 72 65 63 69 73 69 6f 6e 2c 20 6e 75 6c 6c 61 62 6c 65 2c 20 64 61 74 61 5f 64 data_precision,.nullable,.data_d
33f60 65 66 61 75 6c 74 20 66 72 6f 6d 20 75 73 65 72 5f 74 61 62 5f 63 6f 6c 75 6d 6e 73 20 77 68 65 efault.from.user_tab_columns.whe
33f80 72 65 20 63 6f 6c 75 6d 6e 5f 6e 61 6d 65 3d 27 22 2e 24 72 65 73 5b 24 69 5d 5b 27 6e 61 6d 65 re.column_name='".$res[$i]['name
33fa0 27 5d 2e 22 27 22 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 ']."'";.....................if.(
33fc0 21 24 73 74 6d 74 20 3d 20 4f 43 49 50 61 72 73 65 28 24 74 68 69 73 2d 3e 63 6f 6e 6e 65 63 74 !$stmt.=.OCIParse($this->connect
33fe0 69 6f 6e 2c 20 24 71 5f 66 69 65 6c 64 73 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ion,.$q_fields)).{..............
34000 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6f 63 69 38 52 61 69 ...........return.$this->oci8Rai
34020 73 65 45 72 72 6f 72 28 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d seError();.....................}
34040 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 21 4f 43 49 45 78 65 .....................if.(!OCIExe
34060 63 75 74 65 28 24 73 74 6d 74 2c 20 4f 43 49 5f 44 45 46 41 55 4c 54 29 29 20 7b 0a 20 20 20 20 cute($stmt,.OCI_DEFAULT)).{.....
34080 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 ....................return.$this
340a0 2d 3e 6f 63 69 38 52 61 69 73 65 45 72 72 6f 72 28 24 73 74 6d 74 29 3b 0a 20 20 20 20 20 20 20 ->oci8RaiseError($stmt);........
340c0 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .............}..................
340e0 20 20 20 4f 43 49 46 65 74 63 68 28 24 73 74 6d 74 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 ...OCIFetch($stmt);.............
34100 20 20 20 20 20 20 20 20 24 72 65 73 5b 24 69 5d 5b 27 74 61 62 6c 65 27 5d 20 20 20 20 20 20 20 ........$res[$i]['table'].......
34120 3d 20 4f 43 49 52 65 73 75 6c 74 28 24 73 74 6d 74 2c 20 31 29 3b 0a 20 20 20 20 20 20 20 20 20 =.OCIResult($stmt,.1);..........
34140 20 20 20 20 20 20 20 20 20 20 20 24 72 65 73 5b 24 69 5d 5b 27 66 6f 72 6d 61 74 27 5d 20 20 20 ...........$res[$i]['format']...
34160 20 20 20 3d 20 4f 43 49 52 65 73 75 6c 74 28 24 73 74 6d 74 2c 20 32 29 3b 0a 20 20 20 20 20 20 ...=.OCIResult($stmt,.2);.......
34180 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 72 65 73 5b 24 69 5d 5b 27 6e 75 6c 6c 61 62 6c 65 ..............$res[$i]['nullable
341a0 27 5d 20 20 20 20 3d 20 28 4f 43 49 52 65 73 75 6c 74 28 24 73 74 6d 74 2c 20 33 29 20 3d 3d 20 ']....=.(OCIResult($stmt,.3).==.
341c0 27 59 27 29 20 3f 20 74 72 75 65 20 3a 20 66 61 6c 73 65 3b 0a 20 20 20 20 20 20 20 20 20 20 20 'Y').?.true.:.false;............
341e0 20 20 20 20 20 20 20 20 20 24 72 65 73 5b 24 69 5d 5b 27 64 65 66 61 75 6c 74 27 5d 20 20 20 20 .........$res[$i]['default']....
34200 20 3d 20 4f 43 49 52 65 73 75 6c 74 28 24 73 74 6d 74 2c 20 34 29 3b 0a 20 20 20 20 20 20 20 20 .=.OCIResult($stmt,.4);.........
34220 20 20 20 20 20 20 20 20 20 20 20 20 4f 43 49 46 72 65 65 53 74 61 74 65 6d 65 6e 74 28 24 73 74 ............OCIFreeStatement($st
34240 6d 74 29 3b 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 24 6d mt);......................if.($m
34260 6f 64 65 20 26 20 44 42 5f 54 41 42 4c 45 49 4e 46 4f 5f 4f 52 44 45 52 29 20 7b 0a 20 20 20 20 ode.&.DB_TABLEINFO_ORDER).{.....
34280 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 72 65 73 5b 27 6f 72 64 65 72 27 ....................$res['order'
342a0 5d 5b 24 72 65 73 5b 24 69 5d 5b 27 6e 61 6d 65 27 5d 5d 20 3d 20 24 69 3b 0a 20 20 20 20 20 20 ][$res[$i]['name']].=.$i;.......
342c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..............}.................
342e0 20 20 20 20 69 66 20 28 24 6d 6f 64 65 20 26 20 44 42 5f 54 41 42 4c 45 49 4e 46 4f 5f 4f 52 44 ....if.($mode.&.DB_TABLEINFO_ORD
34300 45 52 54 41 42 4c 45 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ERTABLE).{......................
34320 20 20 20 24 72 65 73 5b 27 6f 72 64 65 72 74 61 62 6c 65 27 5d 5b 24 72 65 73 5b 24 69 5d 5b 27 ...$res['ordertable'][$res[$i]['
34340 74 61 62 6c 65 27 5d 5d 5b 24 72 65 73 5b 24 69 5d 5b 27 6e 61 6d 65 27 5d 5d 20 3d 20 24 69 3b table']][$res[$i]['name']].=.$i;
34360 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 .....................}..........
34380 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 72 65 73 5b 27 6e .......}.................$res['n
343a0 75 6d 5f 66 69 65 6c 64 73 27 5d 20 3d 20 24 63 6f 75 6e 74 3b 0a 0a 20 20 20 20 20 20 20 20 20 um_fields'].=.$count;...........
343c0 20 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 ...}.else.{.................retu
343e0 72 6e 20 24 74 68 69 73 2d 3e 72 61 69 73 65 45 72 72 6f 72 28 44 42 5f 45 52 52 4f 52 5f 4e 4f rn.$this->raiseError(DB_ERROR_NO
34400 54 5f 43 41 50 41 42 4c 45 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 T_CAPABLE);.............}.......
34420 20 20 7d 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 72 65 73 3b 0a 20 20 20 20 7d 0a 0a ..}.........return.$res;.....}..
34440 20 20 20 20 2f 2f 20 7d 7d 7d 0a 0a 7d 0a 2f 2f 20 4c 6f 63 61 6c 20 76 61 72 69 61 62 6c 65 73 ....//.}}}..}.//.Local.variables
34460 3a 0a 2f 2f 20 74 61 62 2d 77 69 64 74 68 3a 20 34 0a 2f 2f 20 63 2d 62 61 73 69 63 2d 6f 66 66 :.//.tab-width:.4.//.c-basic-off
34480 73 65 74 3a 20 34 0a 2f 2f 20 45 6e 64 3a 0a 3f 3e 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 set:.4.//.End:.?>...............
344a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
344c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
344e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
34500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
34520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
34540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
34560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
34580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
345a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
345c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
345e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
34600 44 42 2d 31 2e 35 2e 30 52 43 31 2f 44 42 2f 6f 64 62 63 2e 70 68 70 00 00 00 00 00 00 00 00 00 DB-1.5.0RC1/DB/odbc.php.........
34620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
34640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
34660 00 00 00 00 31 30 30 36 34 34 20 00 20 20 20 37 36 34 20 00 20 20 20 31 34 34 20 00 20 20 20 20 ....100644.....764.....144......
34680 20 20 33 34 30 37 31 20 20 37 36 37 35 33 30 31 31 35 30 20 20 20 37 34 31 30 20 00 00 00 00 00 ..34071..7675301150...7410......
346a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
346c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
346e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
34700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
34720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
34740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
34760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
34780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
347a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
347c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
347e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
34800 3c 3f 70 68 70 0a 2f 2a 20 76 69 6d 3a 20 73 65 74 20 65 78 70 61 6e 64 74 61 62 20 74 61 62 73 <?php./*.vim:.set.expandtab.tabs
34820 74 6f 70 3d 34 20 73 68 69 66 74 77 69 64 74 68 3d 34 20 66 6f 6c 64 6d 65 74 68 6f 64 3d 6d 61 top=4.shiftwidth=4.foldmethod=ma
34840 72 6b 65 72 3a 20 2a 2f 0a 2f 2f 20 2b 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d rker:.*/.//.+-------------------
34860 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
34880 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2b 0a 2f 2f 20 7c 20 50 48 50 20 56 65 -------------------+.//.|.PHP.Ve
348a0 72 73 69 6f 6e 20 34 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 rsion.4.........................
348c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c ...............................|
348e0 0a 2f 2f 20 2b 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d .//.+---------------------------
34900 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
34920 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2b 0a 2f 2f 20 7c 20 43 6f 70 79 72 69 67 68 74 20 28 63 29 20 -----------+.//.|.Copyright.(c).
34940 31 39 39 37 2d 32 30 30 33 20 54 68 65 20 50 48 50 20 47 72 6f 75 70 20 20 20 20 20 20 20 20 20 1997-2003.The.PHP.Group.........
34960 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 2f 2f 20 2b 2d 2d 2d .......................|.//.+---
34980 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
349a0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
349c0 2d 2d 2d 2b 0a 2f 2f 20 7c 20 54 68 69 73 20 73 6f 75 72 63 65 20 66 69 6c 65 20 69 73 20 73 75 ---+.//.|.This.source.file.is.su
349e0 62 6a 65 63 74 20 74 6f 20 76 65 72 73 69 6f 6e 20 32 2e 30 32 20 6f 66 20 74 68 65 20 50 48 50 bject.to.version.2.02.of.the.PHP
34a00 20 6c 69 63 65 6e 73 65 2c 20 20 20 20 20 20 7c 0a 2f 2f 20 7c 20 74 68 61 74 20 69 73 20 62 75 .license,......|.//.|.that.is.bu
34a20 6e 64 6c 65 64 20 77 69 74 68 20 74 68 69 73 20 70 61 63 6b 61 67 65 20 69 6e 20 74 68 65 20 66 ndled.with.this.package.in.the.f
34a40 69 6c 65 20 4c 49 43 45 4e 53 45 2c 20 61 6e 64 20 69 73 20 20 20 20 20 20 20 20 7c 0a 2f 2f 20 ile.LICENSE,.and.is........|.//.
34a60 7c 20 61 76 61 69 6c 61 62 6c 65 20 61 74 20 74 68 72 6f 75 67 68 20 74 68 65 20 77 6f 72 6c 64 |.available.at.through.the.world
34a80 2d 77 69 64 65 2d 77 65 62 20 61 74 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -wide-web.at....................
34aa0 20 20 20 20 20 20 20 7c 0a 2f 2f 20 7c 20 68 74 74 70 3a 2f 2f 77 77 77 2e 70 68 70 2e 6e 65 74 .......|.//.|.http://www.php.net
34ac0 2f 6c 69 63 65 6e 73 65 2f 32 5f 30 32 2e 74 78 74 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 /license/2_02.txt...............
34ae0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 2f 2f 20 7c 20 49 66 20 79 6f 75 ...................|.//.|.If.you
34b00 20 64 69 64 20 6e 6f 74 20 72 65 63 65 69 76 65 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 50 .did.not.receive.a.copy.of.the.P
34b20 48 50 20 6c 69 63 65 6e 73 65 20 61 6e 64 20 61 72 65 20 75 6e 61 62 6c 65 20 74 6f 20 20 20 7c HP.license.and.are.unable.to...|
34b40 0a 2f 2f 20 7c 20 6f 62 74 61 69 6e 20 69 74 20 74 68 72 6f 75 67 68 20 74 68 65 20 77 6f 72 6c .//.|.obtain.it.through.the.worl
34b60 64 2d 77 69 64 65 2d 77 65 62 2c 20 70 6c 65 61 73 65 20 73 65 6e 64 20 61 20 6e 6f 74 65 20 74 d-wide-web,.please.send.a.note.t
34b80 6f 20 20 20 20 20 20 20 20 20 20 7c 0a 2f 2f 20 7c 20 6c 69 63 65 6e 73 65 40 70 68 70 2e 6e 65 o..........|.//.|.license@php.ne
34ba0 74 20 73 6f 20 77 65 20 63 61 6e 20 6d 61 69 6c 20 79 6f 75 20 61 20 63 6f 70 79 20 69 6d 6d 65 t.so.we.can.mail.you.a.copy.imme
34bc0 64 69 61 74 65 6c 79 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 2f 2f 20 2b 2d 2d 2d diately................|.//.+---
34be0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
34c00 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
34c20 2d 2d 2d 2b 0a 2f 2f 20 7c 20 41 75 74 68 6f 72 3a 20 53 74 69 67 20 42 61 6b 6b 65 6e 20 3c 73 ---+.//.|.Author:.Stig.Bakken.<s
34c40 73 62 40 70 68 70 2e 6e 65 74 3e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 sb@php.net>.....................
34c60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 2f 2f 20 2b 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ...............|.//.+-----------
34c80 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
34ca0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2b 0a 2f 2f 0a ---------------------------+.//.
34cc0 2f 2f 20 24 49 64 3a 20 6f 64 62 63 2e 70 68 70 2c 76 20 31 2e 38 20 32 30 30 33 2f 30 36 2f 32 //.$Id:.odbc.php,v.1.8.2003/06/2
34ce0 32 20 31 30 3a 31 38 3a 31 36 20 63 6f 78 20 45 78 70 20 24 0a 2f 2f 0a 2f 2f 20 44 61 74 61 62 2.10:18:16.cox.Exp.$.//.//.Datab
34d00 61 73 65 20 69 6e 64 65 70 65 6e 64 65 6e 74 20 71 75 65 72 79 20 69 6e 74 65 72 66 61 63 65 20 ase.independent.query.interface.
34d20 64 65 66 69 6e 69 74 69 6f 6e 20 66 6f 72 20 50 48 50 27 73 20 4f 44 42 43 0a 2f 2f 20 65 78 74 definition.for.PHP's.ODBC.//.ext
34d40 65 6e 73 69 6f 6e 2e 0a 2f 2f 0a 0a 2f 2f 0a 2f 2f 20 58 58 58 20 6c 65 67 65 6e 64 3a 0a 2f 2f ension..//..//.//.XXX.legend:.//
34d60 20 20 4d 6f 72 65 20 69 6e 66 6f 20 6f 6e 20 4f 44 42 43 20 65 72 72 6f 72 73 20 63 6f 75 6c 64 ..More.info.on.ODBC.errors.could
34d80 20 62 65 20 66 6f 75 6e 64 20 68 65 72 65 3a 0a 2f 2f 20 20 68 74 74 70 3a 2f 2f 6d 73 64 6e 2e .be.found.here:.//..http://msdn.
34da0 6d 69 63 72 6f 73 6f 66 74 2e 63 6f 6d 2f 6c 69 62 72 61 72 79 2f 64 65 66 61 75 6c 74 2e 61 73 microsoft.com/library/default.as
34dc0 70 3f 75 72 6c 3d 2f 6c 69 62 72 61 72 79 2f 65 6e 2d 75 73 2f 74 72 62 6c 73 71 6c 2f 74 72 5f p?url=/library/en-us/trblsql/tr_
34de0 65 72 72 5f 6f 64 62 63 5f 35 73 74 7a 2e 61 73 70 0a 2f 2f 0a 2f 2f 20 58 58 58 20 45 52 52 4f err_odbc_5stz.asp.//.//.XXX.ERRO
34e00 52 4d 53 47 3a 20 54 68 65 20 65 72 72 6f 72 20 6d 65 73 73 61 67 65 20 66 72 6f 6d 20 74 68 65 RMSG:.The.error.message.from.the
34e20 20 6f 64 62 63 20 66 75 6e 63 74 69 6f 6e 20 73 68 6f 75 6c 64 0a 2f 2f 20 20 20 20 20 20 20 20 .odbc.function.should.//........
34e40 20 20 20 20 20 20 20 20 20 62 65 20 72 65 67 69 73 74 65 72 65 64 20 68 65 72 65 2e 0a 2f 2f 0a .........be.registered.here..//.
34e60 0a 72 65 71 75 69 72 65 5f 6f 6e 63 65 20 27 44 42 2f 63 6f 6d 6d 6f 6e 2e 70 68 70 27 3b 0a 0a .require_once.'DB/common.php';..
34e80 63 6c 61 73 73 20 44 42 5f 6f 64 62 63 20 65 78 74 65 6e 64 73 20 44 42 5f 63 6f 6d 6d 6f 6e 0a class.DB_odbc.extends.DB_common.
34ea0 7b 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 70 72 6f 70 65 72 74 69 65 73 0a 0a 20 20 20 20 76 61 72 {.....//.{{{.properties......var
34ec0 20 24 63 6f 6e 6e 65 63 74 69 6f 6e 3b 0a 20 20 20 20 76 61 72 20 24 70 68 70 74 79 70 65 2c 20 .$connection;.....var.$phptype,.
34ee0 24 64 62 73 79 6e 74 61 78 3b 0a 20 20 20 20 76 61 72 20 24 72 6f 77 20 3d 20 61 72 72 61 79 28 $dbsyntax;.....var.$row.=.array(
34f00 29 3b 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 63 6f 6e 73 74 72 );......//.}}}.....//.{{{.constr
34f20 75 63 74 6f 72 0a 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 44 42 5f 6f 64 62 63 28 29 0a 20 20 uctor......function.DB_odbc()...
34f40 20 20 7b 0a 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 44 42 5f 63 6f 6d 6d 6f 6e 28 29 3b 0a ..{.........$this->DB_common();.
34f60 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 70 68 70 74 79 70 65 20 3d 20 27 6f 64 62 63 27 3b ........$this->phptype.=.'odbc';
34f80 0a 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 64 62 73 79 6e 74 61 78 20 3d 20 27 73 71 6c 39 .........$this->dbsyntax.=.'sql9
34fa0 32 27 3b 0a 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 66 65 61 74 75 72 65 73 20 3d 20 61 72 2';.........$this->features.=.ar
34fc0 72 61 79 28 0a 20 20 20 20 20 20 20 20 20 20 20 20 27 70 72 65 70 61 72 65 27 20 3d 3e 20 74 72 ray(.............'prepare'.=>.tr
34fe0 75 65 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 27 70 63 6f 6e 6e 65 63 74 27 20 3d 3e 20 74 72 ue,.............'pconnect'.=>.tr
35000 75 65 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 27 74 72 61 6e 73 61 63 74 69 6f 6e 73 27 20 3d ue,.............'transactions'.=
35020 3e 20 66 61 6c 73 65 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 27 6c 69 6d 69 74 27 20 3d 3e 20 >.false,.............'limit'.=>.
35040 27 65 6d 75 6c 61 74 65 27 0a 20 20 20 20 20 20 20 20 29 3b 0a 20 20 20 20 20 20 20 20 24 74 68 'emulate'.........);.........$th
35060 69 73 2d 3e 65 72 72 6f 72 63 6f 64 65 5f 6d 61 70 20 3d 20 61 72 72 61 79 28 0a 20 20 20 20 20 is->errorcode_map.=.array(......
35080 20 20 20 20 20 20 20 27 30 31 30 30 34 27 20 3d 3e 20 44 42 5f 45 52 52 4f 52 5f 54 52 55 4e 43 .......'01004'.=>.DB_ERROR_TRUNC
350a0 41 54 45 44 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 27 30 37 30 30 31 27 20 3d 3e 20 44 42 5f ATED,.............'07001'.=>.DB_
350c0 45 52 52 4f 52 5f 4d 49 53 4d 41 54 43 48 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 27 32 31 53 ERROR_MISMATCH,.............'21S
350e0 30 31 27 20 3d 3e 20 44 42 5f 45 52 52 4f 52 5f 4d 49 53 4d 41 54 43 48 2c 0a 20 20 20 20 20 20 01'.=>.DB_ERROR_MISMATCH,.......
35100 20 20 20 20 20 20 27 32 31 53 30 32 27 20 3d 3e 20 44 42 5f 45 52 52 4f 52 5f 4d 49 53 4d 41 54 ......'21S02'.=>.DB_ERROR_MISMAT
35120 43 48 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 27 32 32 30 30 33 27 20 3d 3e 20 44 42 5f 45 52 CH,.............'22003'.=>.DB_ER
35140 52 4f 52 5f 49 4e 56 41 4c 49 44 5f 4e 55 4d 42 45 52 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 ROR_INVALID_NUMBER,.............
35160 27 32 32 30 30 35 27 20 3d 3e 20 44 42 5f 45 52 52 4f 52 5f 49 4e 56 41 4c 49 44 5f 4e 55 4d 42 '22005'.=>.DB_ERROR_INVALID_NUMB
35180 45 52 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 27 32 32 30 30 38 27 20 3d 3e 20 44 42 5f 45 52 ER,.............'22008'.=>.DB_ER
351a0 52 4f 52 5f 49 4e 56 41 4c 49 44 5f 44 41 54 45 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 27 32 ROR_INVALID_DATE,.............'2
351c0 32 30 31 32 27 20 3d 3e 20 44 42 5f 45 52 52 4f 52 5f 44 49 56 5a 45 52 4f 2c 0a 20 20 20 20 20 2012'.=>.DB_ERROR_DIVZERO,......
351e0 20 20 20 20 20 20 20 27 32 33 30 30 30 27 20 3d 3e 20 44 42 5f 45 52 52 4f 52 5f 43 4f 4e 53 54 .......'23000'.=>.DB_ERROR_CONST
35200 52 41 49 4e 54 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 27 32 33 35 30 33 27 20 3d 3e 20 44 42 RAINT,.............'23503'.=>.DB
35220 5f 45 52 52 4f 52 5f 43 4f 4e 53 54 52 41 49 4e 54 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 27 _ERROR_CONSTRAINT,.............'
35240 32 34 30 30 30 27 20 3d 3e 20 44 42 5f 45 52 52 4f 52 5f 49 4e 56 41 4c 49 44 2c 0a 20 20 20 20 24000'.=>.DB_ERROR_INVALID,.....
35260 20 20 20 20 20 20 20 20 27 33 34 30 30 30 27 20 3d 3e 20 44 42 5f 45 52 52 4f 52 5f 49 4e 56 41 ........'34000'.=>.DB_ERROR_INVA
35280 4c 49 44 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 27 33 37 30 30 30 27 20 3d 3e 20 44 42 5f 45 LID,.............'37000'.=>.DB_E
352a0 52 52 4f 52 5f 53 59 4e 54 41 58 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 27 34 32 30 30 30 27 RROR_SYNTAX,.............'42000'
352c0 20 3d 3e 20 44 42 5f 45 52 52 4f 52 5f 53 59 4e 54 41 58 2c 0a 20 20 20 20 20 20 20 20 20 20 20 .=>.DB_ERROR_SYNTAX,............
352e0 20 27 34 32 36 30 31 27 20 3d 3e 20 44 42 5f 45 52 52 4f 52 5f 53 59 4e 54 41 58 2c 0a 20 20 20 .'42601'.=>.DB_ERROR_SYNTAX,....
35300 20 20 20 20 20 20 20 20 20 27 49 4d 30 30 31 27 20 3d 3e 20 44 42 5f 45 52 52 4f 52 5f 55 4e 53 .........'IM001'.=>.DB_ERROR_UNS
35320 55 50 50 4f 52 54 45 44 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 27 53 30 30 30 30 27 20 3d 3e UPPORTED,.............'S0000'.=>
35340 20 44 42 5f 45 52 52 4f 52 5f 4e 4f 53 55 43 48 54 41 42 4c 45 2c 0a 20 20 20 20 20 20 20 20 20 .DB_ERROR_NOSUCHTABLE,..........
35360 20 20 20 27 53 30 30 30 31 27 20 3d 3e 20 44 42 5f 45 52 52 4f 52 5f 41 4c 52 45 41 44 59 5f 45 ...'S0001'.=>.DB_ERROR_ALREADY_E
35380 58 49 53 54 53 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 27 53 30 30 30 32 27 20 3d 3e 20 44 42 XISTS,.............'S0002'.=>.DB
353a0 5f 45 52 52 4f 52 5f 4e 4f 53 55 43 48 54 41 42 4c 45 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 _ERROR_NOSUCHTABLE,.............
353c0 27 53 30 30 31 31 27 20 3d 3e 20 44 42 5f 45 52 52 4f 52 5f 41 4c 52 45 41 44 59 5f 45 58 49 53 'S0011'.=>.DB_ERROR_ALREADY_EXIS
353e0 54 53 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 27 53 30 30 31 32 27 20 3d 3e 20 44 42 5f 45 52 TS,.............'S0012'.=>.DB_ER
35400 52 4f 52 5f 4e 4f 54 5f 46 4f 55 4e 44 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 27 53 30 30 32 ROR_NOT_FOUND,.............'S002
35420 31 27 20 3d 3e 20 44 42 5f 45 52 52 4f 52 5f 41 4c 52 45 41 44 59 5f 45 58 49 53 54 53 2c 0a 20 1'.=>.DB_ERROR_ALREADY_EXISTS,..
35440 20 20 20 20 20 20 20 20 20 20 20 27 53 30 30 32 32 27 20 3d 3e 20 44 42 5f 45 52 52 4f 52 5f 4e ...........'S0022'.=>.DB_ERROR_N
35460 4f 53 55 43 48 46 49 45 4c 44 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 27 53 31 30 30 39 27 20 OSUCHFIELD,.............'S1009'.
35480 3d 3e 20 44 42 5f 45 52 52 4f 52 5f 49 4e 56 41 4c 49 44 2c 0a 20 20 20 20 20 20 20 20 20 20 20 =>.DB_ERROR_INVALID,............
354a0 20 27 53 31 30 39 30 27 20 3d 3e 20 44 42 5f 45 52 52 4f 52 5f 49 4e 56 41 4c 49 44 2c 0a 20 20 .'S1090'.=>.DB_ERROR_INVALID,...
354c0 20 20 20 20 20 20 20 20 20 20 27 53 31 43 30 30 27 20 3d 3e 20 44 42 5f 45 52 52 4f 52 5f 4e 4f ..........'S1C00'.=>.DB_ERROR_NO
354e0 54 5f 43 41 50 41 42 4c 45 0a 20 20 20 20 20 20 20 20 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 T_CAPABLE.........);.....}......
35500 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 63 6f 6e 6e 65 63 74 28 29 0a 0a 20 20 20 //.}}}.....//.{{{.connect().....
35520 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 43 6f 6e 6e 65 63 74 20 74 6f 20 61 20 64 61 74 61 62 61 73 ./**......*.Connect.to.a.databas
35540 65 20 61 6e 64 20 6c 6f 67 20 69 6e 20 61 73 20 74 68 65 20 73 70 65 63 69 66 69 65 64 20 75 73 e.and.log.in.as.the.specified.us
35560 65 72 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 24 64 73 6e 20 74 68 er.......*......*.@param.$dsn.th
35580 65 20 64 61 74 61 20 73 6f 75 72 63 65 20 6e 61 6d 65 20 28 73 65 65 20 44 42 3a 3a 70 61 72 73 e.data.source.name.(see.DB::pars
355a0 65 44 53 4e 20 66 6f 72 20 73 79 6e 74 61 78 29 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 24 eDSN.for.syntax)......*.@param.$
355c0 70 65 72 73 69 73 74 65 6e 74 20 28 6f 70 74 69 6f 6e 61 6c 29 20 77 68 65 74 68 65 72 20 74 68 persistent.(optional).whether.th
355e0 65 20 63 6f 6e 6e 65 63 74 69 6f 6e 20 73 68 6f 75 6c 64 0a 20 20 20 20 20 2a 20 20 20 20 20 20 e.connection.should......*......
35600 20 20 62 65 20 70 65 72 73 69 73 74 65 6e 74 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 72 ..be.persistent......*......*.@r
35620 65 74 75 72 6e 20 69 6e 74 20 44 42 5f 4f 4b 20 6f 6e 20 73 75 63 63 65 73 73 2c 20 61 20 44 42 eturn.int.DB_OK.on.success,.a.DB
35640 20 65 72 72 6f 72 20 63 6f 64 65 20 6f 6e 20 66 61 69 6c 75 72 65 0a 20 20 20 20 20 2a 2f 0a 20 .error.code.on.failure......*/..
35660 20 20 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6e 6e 65 63 74 28 24 64 73 6e 69 6e 66 6f 2c 20 24 70 ...function.connect($dsninfo,.$p
35680 65 72 73 69 73 74 65 6e 74 20 3d 20 66 61 6c 73 65 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 ersistent.=.false).....{........
356a0 20 69 66 20 28 21 44 42 3a 3a 61 73 73 65 72 74 45 78 74 65 6e 73 69 6f 6e 28 27 6f 64 62 63 27 .if.(!DB::assertExtension('odbc'
356c0 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 61 69 )).............return.$this->rai
356e0 73 65 45 72 72 6f 72 28 44 42 5f 45 52 52 4f 52 5f 45 58 54 45 4e 53 49 4f 4e 5f 4e 4f 54 5f 46 seError(DB_ERROR_EXTENSION_NOT_F
35700 4f 55 4e 44 29 3b 0a 0a 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 64 73 6e 20 3d 20 24 64 73 OUND);..........$this->dsn.=.$ds
35720 6e 69 6e 66 6f 3b 0a 20 20 20 20 20 20 20 20 69 66 20 28 21 65 6d 70 74 79 28 24 64 73 6e 69 6e ninfo;.........if.(!empty($dsnin
35740 66 6f 5b 27 64 62 73 79 6e 74 61 78 27 5d 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 fo['dbsyntax'])).{.............$
35760 74 68 69 73 2d 3e 64 62 73 79 6e 74 61 78 20 3d 20 24 64 73 6e 69 6e 66 6f 5b 27 64 62 73 79 6e this->dbsyntax.=.$dsninfo['dbsyn
35780 74 61 78 27 5d 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 73 77 69 74 63 68 20 tax'];.........}.........switch.
357a0 28 24 74 68 69 73 2d 3e 64 62 73 79 6e 74 61 78 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 ($this->dbsyntax).{.............
357c0 63 61 73 65 20 27 73 6f 6c 69 64 27 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 74 case.'solid':.................$t
357e0 68 69 73 2d 3e 66 65 61 74 75 72 65 73 20 3d 20 61 72 72 61 79 28 0a 20 20 20 20 20 20 20 20 20 his->features.=.array(..........
35800 20 20 20 20 20 20 20 20 20 20 20 27 70 72 65 70 61 72 65 27 20 3d 3e 20 74 72 75 65 2c 0a 20 20 ...........'prepare'.=>.true,...
35820 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 70 63 6f 6e 6e 65 63 74 27 20 3d 3e 20 ..................'pconnect'.=>.
35840 74 72 75 65 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 74 72 61 6e 73 true,.....................'trans
35860 61 63 74 69 6f 6e 73 27 20 3d 3e 20 74 72 75 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 actions'.=>.true................
35880 20 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 64 65 66 61 75 6c 74 5f 64 73 6e .);.................$default_dsn
358a0 20 3d 20 27 6c 6f 63 61 6c 68 6f 73 74 27 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .=.'localhost';.................
358c0 62 72 65 61 6b 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 63 61 73 65 20 27 6e 61 76 69 73 69 6f break;.............case.'navisio
358e0 6e 27 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 74 68 65 20 4e 61 76 69 73 n':.................//.the.Navis
35900 69 6f 6e 20 64 72 69 76 65 72 20 64 6f 65 73 6e 27 74 20 73 75 70 70 6f 72 74 20 66 65 74 63 68 ion.driver.doesn't.support.fetch
35920 20 72 6f 77 20 62 79 20 6e 75 6d 62 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 .row.by.number.................$
35940 74 68 69 73 2d 3e 66 65 61 74 75 72 65 73 5b 27 6c 69 6d 69 74 27 5d 20 3d 20 66 61 6c 73 65 3b this->features['limit'].=.false;
35960 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 72 65 61 6b 3b 0a 20 20 20 20 20 20 20 20 .................break;.........
35980 20 20 20 20 64 65 66 61 75 6c 74 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 72 65 ....default:.................bre
359a0 61 6b 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 24 64 62 68 6f 73 74 20 3d 20 ak;.........}.........$dbhost.=.
359c0 24 64 73 6e 69 6e 66 6f 5b 27 68 6f 73 74 73 70 65 63 27 5d 20 3f 20 24 64 73 6e 69 6e 66 6f 5b $dsninfo['hostspec'].?.$dsninfo[
359e0 27 68 6f 73 74 73 70 65 63 27 5d 20 3a 20 27 6c 6f 63 61 6c 68 6f 73 74 27 3b 0a 20 20 20 20 20 'hostspec'].:.'localhost';......
35a00 20 20 20 24 75 73 65 72 20 3d 20 24 64 73 6e 69 6e 66 6f 5b 27 75 73 65 72 6e 61 6d 65 27 5d 3b ...$user.=.$dsninfo['username'];
35a20 0a 20 20 20 20 20 20 20 20 24 70 77 20 3d 20 24 64 73 6e 69 6e 66 6f 5b 27 70 61 73 73 77 6f 72 .........$pw.=.$dsninfo['passwor
35a40 64 27 5d 3b 0a 20 20 20 20 20 20 20 20 69 66 20 28 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 73 d'];.........if.($this->provides
35a60 28 27 70 63 6f 6e 6e 65 63 74 27 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 63 6f 6e ('pconnect')).{.............$con
35a80 6e 65 63 74 5f 66 75 6e 63 74 69 6f 6e 20 3d 20 24 70 65 72 73 69 73 74 65 6e 74 20 3f 20 27 6f nect_function.=.$persistent.?.'o
35aa0 64 62 63 5f 70 63 6f 6e 6e 65 63 74 27 20 3a 20 27 6f 64 62 63 5f 63 6f 6e 6e 65 63 74 27 3b 0a dbc_pconnect'.:.'odbc_connect';.
35ac0 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 63 6f ........}.else.{.............$co
35ae0 6e 6e 65 63 74 5f 66 75 6e 63 74 69 6f 6e 20 3d 20 27 6f 64 62 63 5f 63 6f 6e 6e 65 63 74 27 3b nnect_function.=.'odbc_connect';
35b00 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 24 63 6f 6e 6e 20 3d 20 40 24 63 6f 6e .........}.........$conn.=.@$con
35b20 6e 65 63 74 5f 66 75 6e 63 74 69 6f 6e 28 24 64 62 68 6f 73 74 2c 20 24 75 73 65 72 2c 20 24 70 nect_function($dbhost,.$user,.$p
35b40 77 29 3b 0a 20 20 20 20 20 20 20 20 69 66 20 28 21 69 73 5f 72 65 73 6f 75 72 63 65 28 24 63 6f w);.........if.(!is_resource($co
35b60 6e 6e 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d nn)).{.............return.$this-
35b80 3e 72 61 69 73 65 45 72 72 6f 72 28 44 42 5f 45 52 52 4f 52 5f 43 4f 4e 4e 45 43 54 5f 46 41 49 >raiseError(DB_ERROR_CONNECT_FAI
35ba0 4c 45 44 2c 20 6e 75 6c 6c 2c 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 LED,.null,.null,................
35bc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 75 6c 6c 2c 20 ..........................null,.
35be0 24 74 68 69 73 2d 3e 65 72 72 6f 72 4e 61 74 69 76 65 28 29 29 3b 0a 20 20 20 20 20 20 20 20 7d $this->errorNative());.........}
35c00 0a 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 63 6f 6e 6e 65 63 74 69 6f 6e 20 3d 20 24 63 6f .........$this->connection.=.$co
35c20 6e 6e 3b 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 44 42 5f 4f 4b 3b 0a 20 20 20 20 7d 0a nn;.........return.DB_OK;.....}.
35c40 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 64 69 73 63 6f 6e 6e 65 63 .....//.}}}.....//.{{{.disconnec
35c60 74 28 29 0a 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 64 69 73 63 6f 6e 6e 65 63 74 28 29 0a 20 t()......function.disconnect()..
35c80 20 20 20 7b 0a 20 20 20 20 20 20 20 20 24 65 72 72 20 3d 20 40 6f 64 62 63 5f 63 6c 6f 73 65 28 ...{.........$err.=.@odbc_close(
35ca0 24 74 68 69 73 2d 3e 63 6f 6e 6e 65 63 74 69 6f 6e 29 3b 0a 20 20 20 20 20 20 20 20 24 74 68 69 $this->connection);.........$thi
35cc0 73 2d 3e 63 6f 6e 6e 65 63 74 69 6f 6e 20 3d 20 6e 75 6c 6c 3b 0a 20 20 20 20 20 20 20 20 72 65 s->connection.=.null;.........re
35ce0 74 75 72 6e 20 24 65 72 72 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 turn.$err;.....}......//.}}}....
35d00 20 2f 2f 20 7b 7b 7b 20 73 69 6d 70 6c 65 51 75 65 72 79 28 29 0a 0a 20 20 20 20 2f 2a 2a 0a 20 .//.{{{.simpleQuery()....../**..
35d20 20 20 20 20 2a 20 53 65 6e 64 20 61 20 71 75 65 72 79 20 74 6f 20 4f 44 42 43 20 61 6e 64 20 72 ....*.Send.a.query.to.ODBC.and.r
35d40 65 74 75 72 6e 20 74 68 65 20 72 65 73 75 6c 74 73 20 61 73 20 61 20 4f 44 42 43 20 72 65 73 6f eturn.the.results.as.a.ODBC.reso
35d60 75 72 63 65 0a 20 20 20 20 20 2a 20 69 64 65 6e 74 69 66 69 65 72 2e 0a 20 20 20 20 20 2a 0a 20 urce......*.identifier.......*..
35d80 20 20 20 20 2a 20 40 70 61 72 61 6d 20 24 71 75 65 72 79 20 74 68 65 20 53 51 4c 20 71 75 65 72 ....*.@param.$query.the.SQL.quer
35da0 79 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 72 65 74 75 72 6e 20 69 6e 74 20 72 65 74 75 y......*......*.@return.int.retu
35dc0 72 6e 73 20 61 20 76 61 6c 69 64 20 4f 44 42 43 20 72 65 73 75 6c 74 20 66 6f 72 20 73 75 63 63 rns.a.valid.ODBC.result.for.succ
35de0 65 73 73 66 75 6c 20 53 45 4c 45 43 54 0a 20 20 20 20 20 2a 20 71 75 65 72 69 65 73 2c 20 44 42 essful.SELECT......*.queries,.DB
35e00 5f 4f 4b 20 66 6f 72 20 6f 74 68 65 72 20 73 75 63 63 65 73 73 66 75 6c 20 71 75 65 72 69 65 73 _OK.for.other.successful.queries
35e20 2e 20 20 41 20 44 42 20 65 72 72 6f 72 20 63 6f 64 65 0a 20 20 20 20 20 2a 20 69 73 20 72 65 74 ...A.DB.error.code......*.is.ret
35e40 75 72 6e 65 64 20 6f 6e 20 66 61 69 6c 75 72 65 2e 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 66 75 urned.on.failure.......*/.....fu
35e60 6e 63 74 69 6f 6e 20 73 69 6d 70 6c 65 51 75 65 72 79 28 24 71 75 65 72 79 29 0a 20 20 20 20 7b nction.simpleQuery($query).....{
35e80 0a 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 6c 61 73 74 5f 71 75 65 72 79 20 3d 20 24 71 75 .........$this->last_query.=.$qu
35ea0 65 72 79 3b 0a 20 20 20 20 20 20 20 20 24 71 75 65 72 79 20 3d 20 24 74 68 69 73 2d 3e 6d 6f 64 ery;.........$query.=.$this->mod
35ec0 69 66 79 51 75 65 72 79 28 24 71 75 65 72 79 29 3b 0a 20 20 20 20 20 20 20 20 24 72 65 73 75 6c ifyQuery($query);.........$resul
35ee0 74 20 3d 20 40 6f 64 62 63 5f 65 78 65 63 28 24 74 68 69 73 2d 3e 63 6f 6e 6e 65 63 74 69 6f 6e t.=.@odbc_exec($this->connection
35f00 2c 20 24 71 75 65 72 79 29 3b 0a 20 20 20 20 20 20 20 20 69 66 20 28 21 24 72 65 73 75 6c 74 29 ,.$query);.........if.(!$result)
35f20 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6f 64 62 .{.............return.$this->odb
35f40 63 52 61 69 73 65 45 72 72 6f 72 28 29 3b 20 2f 2f 20 58 58 58 20 45 52 52 4f 52 4d 53 47 0a 20 cRaiseError();.//.XXX.ERRORMSG..
35f60 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 2f 2f 20 44 65 74 65 72 6d 69 6e 65 20 77 68 .......}.........//.Determine.wh
35f80 69 63 68 20 71 75 65 72 69 65 73 20 74 68 61 74 20 73 68 6f 75 6c 64 20 72 65 74 75 72 6e 20 64 ich.queries.that.should.return.d
35fa0 61 74 61 2c 20 61 6e 64 20 77 68 69 63 68 0a 20 20 20 20 20 20 20 20 2f 2f 20 73 68 6f 75 6c 64 ata,.and.which.........//.should
35fc0 20 72 65 74 75 72 6e 20 61 6e 20 65 72 72 6f 72 20 63 6f 64 65 20 6f 6e 6c 79 2e 0a 20 20 20 20 .return.an.error.code.only......
35fe0 20 20 20 20 69 66 20 28 44 42 3a 3a 69 73 4d 61 6e 69 70 28 24 71 75 65 72 79 29 29 20 7b 0a 20 ....if.(DB::isManip($query)).{..
36000 20 20 20 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 6d 61 6e 69 70 5f 72 65 73 75 6c 74 20 3d ...........$this->manip_result.=
36020 20 24 72 65 73 75 6c 74 3b 20 2f 2f 20 46 6f 72 20 61 66 66 65 63 74 65 64 52 6f 77 73 28 29 0a .$result;.//.For.affectedRows().
36040 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 44 42 5f 4f 4b 3b 0a 20 20 20 20 20 20 ............return.DB_OK;.......
36060 20 20 7d 0a 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 72 6f 77 5b 24 72 65 73 75 6c 74 5d 20 ..}.........$this->row[$result].
36080 3d 20 30 3b 0a 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 6d 61 6e 69 70 5f 72 65 73 75 6c 74 =.0;.........$this->manip_result
360a0 20 3d 20 30 3b 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 72 65 73 75 6c 74 3b 0a 20 20 .=.0;.........return.$result;...
360c0 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 6e 65 78 74 52 ..}......//.}}}.....//.{{{.nextR
360e0 65 73 75 6c 74 28 29 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 4d 6f 76 65 20 74 68 65 esult()....../**......*.Move.the
36100 20 69 6e 74 65 72 6e 61 6c 20 6f 64 62 63 20 72 65 73 75 6c 74 20 70 6f 69 6e 74 65 72 20 74 6f .internal.odbc.result.pointer.to
36120 20 74 68 65 20 6e 65 78 74 20 61 76 61 69 6c 61 62 6c 65 20 72 65 73 75 6c 74 0a 20 20 20 20 20 .the.next.available.result......
36140 2a 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 61 20 76 61 6c 69 64 20 66 62 73 71 6c 20 72 65 *......*.@param.a.valid.fbsql.re
36160 73 75 6c 74 20 72 65 73 6f 75 72 63 65 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 61 63 63 sult.resource......*......*.@acc
36180 65 73 73 20 70 75 62 6c 69 63 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 72 65 74 75 72 6e ess.public......*......*.@return
361a0 20 74 72 75 65 20 69 66 20 61 20 72 65 73 75 6c 74 20 69 73 20 61 76 61 69 6c 61 62 6c 65 20 6f .true.if.a.result.is.available.o
361c0 74 68 65 72 77 69 73 65 20 72 65 74 75 72 6e 20 66 61 6c 73 65 0a 20 20 20 20 20 2a 2f 0a 20 20 therwise.return.false......*/...
361e0 20 20 66 75 6e 63 74 69 6f 6e 20 6e 65 78 74 52 65 73 75 6c 74 28 24 72 65 73 75 6c 74 29 0a 20 ..function.nextResult($result)..
36200 20 20 20 7b 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 6f 64 62 63 5f 6e 65 78 74 5f 72 65 ...{.........return.odbc_next_re
36220 73 75 6c 74 28 24 72 65 73 75 6c 74 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d sult($result);.....}......//.}}}
36240 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 66 65 74 63 68 49 6e 74 6f 28 29 0a 0a 20 20 20 20 66 75 6e .....//.{{{.fetchInto()......fun
36260 63 74 69 6f 6e 20 66 65 74 63 68 49 6e 74 6f 28 24 72 65 73 75 6c 74 2c 20 26 24 72 6f 77 2c 20 ction.fetchInto($result,.&$row,.
36280 24 66 65 74 63 68 6d 6f 64 65 2c 20 24 72 6f 77 6e 75 6d 3d 6e 75 6c 6c 29 0a 20 20 20 20 7b 0a $fetchmode,.$rownum=null).....{.
362a0 20 20 20 20 20 20 20 20 24 72 6f 77 20 3d 20 61 72 72 61 79 28 29 3b 0a 20 20 20 20 20 20 20 20 ........$row.=.array();.........
362c0 69 66 20 28 24 72 6f 77 6e 75 6d 20 21 3d 3d 20 6e 75 6c 6c 29 20 7b 0a 20 20 20 20 20 20 20 20 if.($rownum.!==.null).{.........
362e0 20 20 20 20 24 72 6f 77 6e 75 6d 2b 2b 3b 20 2f 2f 20 4f 44 42 43 20 66 69 72 73 74 20 72 6f 77 ....$rownum++;.//.ODBC.first.row
36300 20 69 73 20 31 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 76 65 72 73 69 6f 6e 5f 63 6f .is.1.............if.(version_co
36320 6d 70 61 72 65 28 70 68 70 76 65 72 73 69 6f 6e 28 29 2c 20 27 34 2e 32 2e 30 27 2c 20 27 67 65 mpare(phpversion(),.'4.2.0',.'ge
36340 27 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 63 6f 6c 73 20 3d 20 6f 64 ')).{.................$cols.=.od
36360 62 63 5f 66 65 74 63 68 5f 69 6e 74 6f 28 24 72 65 73 75 6c 74 2c 20 24 72 6f 77 2c 20 24 72 6f bc_fetch_into($result,.$row,.$ro
36380 77 6e 75 6d 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 wnum);.............}.else.{.....
363a0 20 20 20 20 20 20 20 20 20 20 20 20 24 63 6f 6c 73 20 3d 20 6f 64 62 63 5f 66 65 74 63 68 5f 69 ............$cols.=.odbc_fetch_i
363c0 6e 74 6f 28 24 72 65 73 75 6c 74 2c 20 24 72 6f 77 6e 75 6d 2c 20 24 72 6f 77 29 3b 0a 20 20 20 nto($result,.$rownum,.$row);....
363e0 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 .........}.........}.else.{.....
36400 20 20 20 20 20 20 20 20 24 63 6f 6c 73 20 3d 20 6f 64 62 63 5f 66 65 74 63 68 5f 69 6e 74 6f 28 ........$cols.=.odbc_fetch_into(
36420 24 72 65 73 75 6c 74 2c 20 24 72 6f 77 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 $result,.$row);.........}.......
36440 20 20 20 69 66 20 28 21 24 63 6f 6c 73 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2a 20 ...if.(!$cols).{............./*.
36460 58 58 58 20 46 49 58 4d 45 3a 20 64 6f 65 73 6e 27 74 20 77 6f 72 6b 20 77 69 74 68 20 75 6e 69 XXX.FIXME:.doesn't.work.with.uni
36480 78 4f 44 42 43 20 61 6e 64 20 65 61 73 79 73 6f 66 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 xODBC.and.easysoft..............
364a0 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 65 74 20 63 6f 72 72 75 70 74 65 64 20 24 65 72 72 .............(get.corrupted.$err
364c0 6e 6f 20 76 61 6c 75 65 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 24 65 72 72 6e no.values).............if.($errn
364e0 6f 20 3d 20 6f 64 62 63 5f 65 72 72 6f 72 28 24 74 68 69 73 2d 3e 63 6f 6e 6e 65 63 74 69 6f 6e o.=.odbc_error($this->connection
36500 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 )).{.................return.$thi
36520 73 2d 3e 52 61 69 73 65 45 72 72 6f 72 28 24 65 72 72 6e 6f 29 3b 0a 20 20 20 20 20 20 20 20 20 s->RaiseError($errno);..........
36540 20 20 20 7d 2a 2f 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 6e 75 6c 6c 3b 0a ...}*/.............return.null;.
36560 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 69 66 20 28 24 66 65 74 63 68 6d 6f 64 65 ........}.........if.($fetchmode
36580 20 21 3d 3d 20 44 42 5f 46 45 54 43 48 4d 4f 44 45 5f 4f 52 44 45 52 45 44 29 20 7b 0a 20 20 20 .!==.DB_FETCHMODE_ORDERED).{....
365a0 20 20 20 20 20 20 20 20 20 66 6f 72 20 28 24 69 20 3d 20 30 3b 20 24 69 20 3c 20 63 6f 75 6e 74 .........for.($i.=.0;.$i.<.count
365c0 28 24 72 6f 77 29 3b 20 24 69 2b 2b 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ($row);.$i++).{.................
365e0 24 63 6f 6c 4e 61 6d 65 20 3d 20 6f 64 62 63 5f 66 69 65 6c 64 5f 6e 61 6d 65 28 24 72 65 73 75 $colName.=.odbc_field_name($resu
36600 6c 74 2c 20 24 69 2b 31 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 61 5b 24 63 lt,.$i+1);.................$a[$c
36620 6f 6c 4e 61 6d 65 5d 20 3d 20 24 72 6f 77 5b 24 69 5d 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 olName].=.$row[$i];.............
36640 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 }.............if.($this->options
36660 5b 27 6f 70 74 69 6d 69 7a 65 27 5d 20 3d 3d 20 27 70 6f 72 74 61 62 69 6c 69 74 79 27 29 20 7b ['optimize'].==.'portability').{
36680 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 61 20 3d 20 61 72 72 61 79 5f 63 68 61 6e .................$a.=.array_chan
366a0 67 65 5f 6b 65 79 5f 63 61 73 65 28 24 61 2c 20 43 41 53 45 5f 4c 4f 57 45 52 29 3b 0a 20 20 20 ge_key_case($a,.CASE_LOWER);....
366c0 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 72 6f 77 20 3d 20 24 61 .........}.............$row.=.$a
366e0 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 44 42 5f 4f 4b ;.........}.........return.DB_OK
36700 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 66 ;.....}......//.}}}.....//.{{{.f
36720 72 65 65 52 65 73 75 6c 74 28 29 0a 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 66 72 65 65 52 65 reeResult()......function.freeRe
36740 73 75 6c 74 28 24 72 65 73 75 6c 74 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 69 66 20 28 sult($result).....{.........if.(
36760 69 73 5f 72 65 73 6f 75 72 63 65 28 24 72 65 73 75 6c 74 29 29 20 7b 0a 20 20 20 20 20 20 20 20 is_resource($result)).{.........
36780 20 20 20 20 2f 2f 20 41 6c 77 61 79 73 20 72 65 74 75 72 6e 20 74 72 75 65 0a 20 20 20 20 20 20 ....//.Always.return.true.......
367a0 20 20 20 20 20 20 72 65 74 75 72 6e 20 6f 64 62 63 5f 66 72 65 65 5f 72 65 73 75 6c 74 28 24 72 ......return.odbc_free_result($r
367c0 65 73 75 6c 74 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 69 66 20 28 21 69 esult);.........}.........if.(!i
367e0 73 73 65 74 28 24 74 68 69 73 2d 3e 70 72 65 70 61 72 65 5f 74 6f 6b 65 6e 73 5b 28 69 6e 74 29 sset($this->prepare_tokens[(int)
36800 24 72 65 73 75 6c 74 5d 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 $result])).{.............return.
36820 66 61 6c 73 65 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 75 6e 73 65 74 28 24 false;.........}.........unset($
36840 74 68 69 73 2d 3e 70 72 65 70 61 72 65 5f 74 6f 6b 65 6e 73 5b 28 69 6e 74 29 24 72 65 73 75 6c this->prepare_tokens[(int)$resul
36860 74 5d 29 3b 0a 20 20 20 20 20 20 20 20 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 70 72 65 70 61 72 t]);.........unset($this->prepar
36880 65 5f 74 79 70 65 73 5b 28 69 6e 74 29 24 72 65 73 75 6c 74 5d 29 3b 0a 20 20 20 20 20 20 20 20 e_types[(int)$result]);.........
368a0 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 return.true;.....}......//.}}}..
368c0 20 20 20 2f 2f 20 7b 7b 7b 20 6e 75 6d 43 6f 6c 73 28 29 0a 0a 20 20 20 20 66 75 6e 63 74 69 6f ...//.{{{.numCols()......functio
368e0 6e 20 6e 75 6d 43 6f 6c 73 28 24 72 65 73 75 6c 74 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 n.numCols($result).....{........
36900 20 24 63 6f 6c 73 20 3d 20 40 6f 64 62 63 5f 6e 75 6d 5f 66 69 65 6c 64 73 28 24 72 65 73 75 6c .$cols.=.@odbc_num_fields($resul
36920 74 29 3b 0a 20 20 20 20 20 20 20 20 69 66 20 28 21 24 63 6f 6c 73 29 20 7b 0a 20 20 20 20 20 20 t);.........if.(!$cols).{.......
36940 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6f 64 62 63 52 61 69 73 65 45 72 72 ......return.$this->odbcRaiseErr
36960 6f 72 28 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 or();.........}.........return.$
36980 63 6f 6c 73 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b cols;.....}......//.}}}.....//.{
369a0 7b 7b 20 61 66 66 65 63 74 65 64 52 6f 77 73 28 29 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 2a {{.affectedRows()....../**.....*
369c0 20 52 65 74 75 72 6e 73 20 74 68 65 20 6e 75 6d 62 65 72 20 6f 66 20 72 6f 77 73 20 61 66 66 65 .Returns.the.number.of.rows.affe
369e0 63 74 65 64 20 62 79 20 61 20 6d 61 6e 69 70 75 6c 61 74 69 76 65 20 71 75 65 72 79 0a 20 20 20 cted.by.a.manipulative.query....
36a00 20 2a 20 28 49 4e 53 45 52 54 2c 20 44 45 4c 45 54 45 2c 20 55 50 44 41 54 45 29 0a 20 20 20 20 .*.(INSERT,.DELETE,.UPDATE).....
36a20 2a 20 40 72 65 74 75 72 6e 20 6d 69 78 65 64 20 69 6e 74 20 61 66 66 65 63 74 65 64 20 72 6f 77 *.@return.mixed.int.affected.row
36a40 73 2c 20 30 20 77 68 65 6e 20 6e 6f 6e 20 6d 61 6e 69 70 20 71 75 65 72 69 65 73 20 6f 72 0a 20 s,.0.when.non.manip.queries.or..
36a60 20 20 20 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 44 42 20 65 72 72 6f 72 20 6f 6e 20 65 ...*...............DB.error.on.e
36a80 72 72 6f 72 0a 20 20 20 20 2a 2f 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 61 66 66 65 63 74 65 rror.....*/.....function.affecte
36aa0 64 52 6f 77 73 28 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 69 66 20 28 65 6d 70 74 79 28 dRows().....{.........if.(empty(
36ac0 24 74 68 69 73 2d 3e 6d 61 6e 69 70 5f 72 65 73 75 6c 74 29 29 20 7b 20 20 2f 2f 20 49 6e 20 63 $this->manip_result)).{..//.In.c
36ae0 61 73 65 20 6f 66 20 53 45 4c 45 43 54 20 73 74 6d 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 ase.of.SELECT.stms.............r
36b00 65 74 75 72 6e 20 30 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 24 6e 72 6f 77 eturn.0;.........}.........$nrow
36b20 73 20 3d 20 6f 64 62 63 5f 6e 75 6d 5f 72 6f 77 73 28 24 74 68 69 73 2d 3e 6d 61 6e 69 70 5f 72 s.=.odbc_num_rows($this->manip_r
36b40 65 73 75 6c 74 29 3b 0a 20 20 20 20 20 20 20 20 69 66 20 28 24 6e 72 6f 77 73 20 3d 3d 20 2d 31 esult);.........if.($nrows.==.-1
36b60 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6f 64 ).{.............return.$this->od
36b80 62 63 52 61 69 73 65 45 72 72 6f 72 28 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 bcRaiseError();.........}.......
36ba0 20 20 72 65 74 75 72 6e 20 24 6e 72 6f 77 73 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d ..return.$nrows;.....}......//.}
36bc0 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 6e 75 6d 52 6f 77 73 28 29 0a 0a 20 20 20 20 2f 2a 2a }}.....//.{{{.numRows()....../**
36be0 0a 20 20 20 20 20 2a 20 4f 44 42 43 20 6d 61 79 20 6f 72 20 6d 61 79 20 6e 6f 74 20 73 75 70 70 ......*.ODBC.may.or.may.not.supp
36c00 6f 72 74 20 63 6f 75 6e 74 69 6e 67 20 72 6f 77 73 20 69 6e 20 74 68 65 20 72 65 73 75 6c 74 20 ort.counting.rows.in.the.result.
36c20 73 65 74 20 6f 66 0a 20 20 20 20 20 2a 20 53 45 4c 45 43 54 73 2e 0a 20 20 20 20 20 2a 0a 20 20 set.of......*.SELECTs.......*...
36c40 20 20 20 2a 20 40 70 61 72 61 6d 20 24 72 65 73 75 6c 74 20 74 68 65 20 6f 64 62 63 20 72 65 73 ...*.@param.$result.the.odbc.res
36c60 75 6c 74 20 72 65 73 6f 75 72 63 65 0a 20 20 20 20 20 2a 20 40 72 65 74 75 72 6e 20 74 68 65 20 ult.resource......*.@return.the.
36c80 6e 75 6d 62 65 72 20 6f 66 20 72 6f 77 73 2c 20 6f 72 20 30 0a 20 20 20 20 20 2a 2f 0a 20 20 20 number.of.rows,.or.0......*/....
36ca0 20 66 75 6e 63 74 69 6f 6e 20 6e 75 6d 52 6f 77 73 28 24 72 65 73 75 6c 74 29 0a 20 20 20 20 7b .function.numRows($result).....{
36cc0 0a 20 20 20 20 20 20 20 20 24 6e 72 6f 77 73 20 3d 20 6f 64 62 63 5f 6e 75 6d 5f 72 6f 77 73 28 .........$nrows.=.odbc_num_rows(
36ce0 24 72 65 73 75 6c 74 29 3b 0a 20 20 20 20 20 20 20 20 69 66 20 28 24 6e 72 6f 77 73 20 3d 3d 20 $result);.........if.($nrows.==.
36d00 2d 31 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e -1).{.............return.$this->
36d20 6f 64 62 63 52 61 69 73 65 45 72 72 6f 72 28 44 42 5f 45 52 52 4f 52 5f 55 4e 53 55 50 50 4f 52 odbcRaiseError(DB_ERROR_UNSUPPOR
36d40 54 45 44 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 TED);.........}.........return.$
36d60 6e 72 6f 77 73 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 71 75 6f 74 65 28 29 nrows;.....}......//.{{{.quote()
36d80 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 2a 20 51 75 6f 74 65 20 74 68 65 20 67 69 76 65 6e 20 73 ...../**.....*.Quote.the.given.s
36da0 74 72 69 6e 67 20 73 6f 20 69 74 20 63 61 6e 20 62 65 20 73 61 66 65 6c 79 20 75 73 65 64 20 77 tring.so.it.can.be.safely.used.w
36dc0 69 74 68 69 6e 20 73 74 72 69 6e 67 20 64 65 6c 69 6d 69 74 65 72 73 0a 20 20 20 20 2a 20 69 6e ithin.string.delimiters.....*.in
36de0 20 61 20 71 75 65 72 79 2e 0a 20 20 20 20 2a 20 40 70 61 72 61 6d 20 24 73 74 72 69 6e 67 20 6d .a.query......*.@param.$string.m
36e00 69 78 65 64 20 44 61 74 61 20 74 6f 20 62 65 20 71 75 6f 74 65 64 0a 20 20 20 20 2a 20 40 72 65 ixed.Data.to.be.quoted.....*.@re
36e20 74 75 72 6e 20 6d 69 78 65 64 20 22 4e 55 4c 4c 22 20 73 74 72 69 6e 67 2c 20 71 75 6f 74 65 64 turn.mixed."NULL".string,.quoted
36e40 20 73 74 72 69 6e 67 20 6f 72 20 6f 72 69 67 69 6e 61 6c 20 64 61 74 61 0a 20 20 20 20 2a 2f 0a .string.or.original.data.....*/.
36e60 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 71 75 6f 74 65 28 24 73 74 72 20 3d 20 6e 75 6c 6c 29 0a ....function.quote($str.=.null).
36e80 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 69 66 20 28 69 73 5f 6e 75 6d 65 72 69 63 28 24 73 74 ....{.........if.(is_numeric($st
36ea0 72 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 73 74 72 3b 0a 20 r)).{.............return.$str;..
36ec0 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 73 77 69 74 63 68 20 28 73 74 72 74 6f 6c 6f .......}.........switch.(strtolo
36ee0 77 65 72 28 67 65 74 74 79 70 65 28 24 73 74 72 29 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 wer(gettype($str))).{...........
36f00 20 20 63 61 73 65 20 27 6e 75 6c 6c 27 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 ..case.'null':.................r
36f20 65 74 75 72 6e 20 27 4e 55 4c 4c 27 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 63 61 73 65 20 27 eturn.'NULL';.............case.'
36f40 62 6f 6f 6c 65 61 6e 27 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e boolean':.................return
36f60 20 24 73 74 72 20 3f 20 27 54 52 55 45 27 20 3a 20 27 46 41 4c 53 45 27 3b 0a 20 20 20 20 20 20 .$str.?.'TRUE'.:.'FALSE';.......
36f80 20 20 20 20 20 20 63 61 73 65 20 27 73 74 72 69 6e 67 27 3a 0a 20 20 20 20 20 20 20 20 20 20 20 ......case.'string':............
36fa0 20 64 65 66 61 75 6c 74 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 73 74 72 20 3d .default:.................$str.=
36fc0 20 73 74 72 5f 72 65 70 6c 61 63 65 28 22 27 22 2c 20 22 27 27 22 2c 20 24 73 74 72 29 3b 0a 20 .str_replace("'",."''",.$str);..
36fe0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 22 27 24 73 74 72 27 22 3b 0a ...............return."'$str'";.
37000 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 ........}.....}......//.}}}.....
37020 2f 2f 20 7b 7b 7b 20 65 72 72 6f 72 4e 61 74 69 76 65 28 29 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 //.{{{.errorNative()....../**...
37040 20 20 20 2a 20 47 65 74 20 74 68 65 20 6e 61 74 69 76 65 20 65 72 72 6f 72 20 63 6f 64 65 20 6f ...*.Get.the.native.error.code.o
37060 66 20 74 68 65 20 6c 61 73 74 20 65 72 72 6f 72 20 28 69 66 20 61 6e 79 29 20 74 68 61 74 0a 20 f.the.last.error.(if.any).that..
37080 20 20 20 20 2a 20 6f 63 63 75 72 65 64 20 6f 6e 20 74 68 65 20 63 75 72 72 65 6e 74 20 63 6f 6e ....*.occured.on.the.current.con
370a0 6e 65 63 74 69 6f 6e 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 61 63 63 65 73 73 20 70 nection.......*......*.@access.p
370c0 75 62 6c 69 63 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 72 65 74 75 72 6e 20 69 6e 74 20 ublic......*......*.@return.int.
370e0 4f 44 42 43 20 65 72 72 6f 72 20 63 6f 64 65 0a 20 20 20 20 20 2a 2f 0a 0a 20 20 20 20 66 75 6e ODBC.error.code......*/......fun
37100 63 74 69 6f 6e 20 65 72 72 6f 72 4e 61 74 69 76 65 28 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 ction.errorNative().....{.......
37120 20 20 69 66 20 28 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e 6e 65 63 74 69 6f 6e 29 20 ..if.(!isset($this->connection).
37140 7c 7c 20 21 69 73 5f 72 65 73 6f 75 72 63 65 28 24 74 68 69 73 2d 3e 63 6f 6e 6e 65 63 74 69 6f ||.!is_resource($this->connectio
37160 6e 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 6f 64 62 63 5f 65 72 n)).{.............return.odbc_er
37180 72 6f 72 28 29 20 2e 20 27 20 27 20 2e 20 6f 64 62 63 5f 65 72 72 6f 72 6d 73 67 28 29 3b 0a 20 ror()...'.'...odbc_errormsg();..
371a0 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 6f 64 62 63 5f 65 72 72 .......}.........return.odbc_err
371c0 6f 72 28 24 74 68 69 73 2d 3e 63 6f 6e 6e 65 63 74 69 6f 6e 29 20 2e 20 27 20 27 20 2e 20 6f 64 or($this->connection)...'.'...od
371e0 62 63 5f 65 72 72 6f 72 6d 73 67 28 24 74 68 69 73 2d 3e 63 6f 6e 6e 65 63 74 69 6f 6e 29 3b 0a bc_errormsg($this->connection);.
37200 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 6e 65 78 ....}......//.}}}.....//.{{{.nex
37220 74 49 64 28 29 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 47 65 74 20 74 68 65 20 6e 65 tId()....../**......*.Get.the.ne
37240 78 74 20 76 61 6c 75 65 20 69 6e 20 61 20 73 65 71 75 65 6e 63 65 2e 20 20 57 65 20 65 6d 75 6c xt.value.in.a.sequence...We.emul
37260 61 74 65 20 73 65 71 75 65 6e 63 65 73 0a 20 20 20 20 20 2a 20 66 6f 72 20 6f 64 62 63 2e 20 57 ate.sequences......*.for.odbc..W
37280 69 6c 6c 20 63 72 65 61 74 65 20 74 68 65 20 73 65 71 75 65 6e 63 65 20 69 66 20 69 74 20 64 6f ill.create.the.sequence.if.it.do
372a0 65 73 20 6e 6f 74 20 65 78 69 73 74 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 61 63 63 es.not.exist.......*......*.@acc
372c0 65 73 73 20 70 75 62 6c 69 63 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 ess.public......*......*.@param.
372e0 24 73 65 71 5f 6e 61 6d 65 20 74 68 65 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 73 65 71 75 65 6e $seq_name.the.name.of.the.sequen
37300 63 65 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 24 6f 6e 64 65 6d 61 6e ce......*......*.@param.$ondeman
37320 64 20 77 68 65 74 68 65 72 20 74 6f 20 63 72 65 61 74 65 20 74 68 65 20 73 65 71 75 65 6e 63 65 d.whether.to.create.the.sequence
37340 20 74 61 62 6c 65 20 6f 6e 20 64 65 6d 61 6e 64 0a 20 20 20 20 20 2a 20 28 64 65 66 61 75 6c 74 .table.on.demand......*.(default
37360 20 69 73 20 74 72 75 65 29 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 72 65 74 75 72 6e 20 .is.true)......*......*.@return.
37380 61 20 73 65 71 75 65 6e 63 65 20 69 6e 74 65 67 65 72 2c 20 6f 72 20 61 20 44 42 20 65 72 72 6f a.sequence.integer,.or.a.DB.erro
373a0 72 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 6e 65 78 74 49 64 28 24 73 r......*/.....function.nextId($s
373c0 65 71 5f 6e 61 6d 65 2c 20 24 6f 6e 64 65 6d 61 6e 64 20 3d 20 74 72 75 65 29 0a 20 20 20 20 7b eq_name,.$ondemand.=.true).....{
373e0 0a 20 20 20 20 20 20 20 20 24 73 65 71 6e 61 6d 65 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 53 65 .........$seqname.=.$this->getSe
37400 71 75 65 6e 63 65 4e 61 6d 65 28 24 73 65 71 5f 6e 61 6d 65 29 3b 0a 20 20 20 20 20 20 20 20 24 quenceName($seq_name);.........$
37420 72 65 70 65 61 74 20 3d 20 30 3b 0a 20 20 20 20 20 20 20 20 64 6f 20 7b 0a 20 20 20 20 20 20 20 repeat.=.0;.........do.{........
37440 20 20 20 20 20 24 74 68 69 73 2d 3e 70 75 73 68 45 72 72 6f 72 48 61 6e 64 6c 69 6e 67 28 50 45 .....$this->pushErrorHandling(PE
37460 41 52 5f 45 52 52 4f 52 5f 52 45 54 55 52 4e 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 72 AR_ERROR_RETURN);.............$r
37480 65 73 75 6c 74 20 3d 20 24 74 68 69 73 2d 3e 71 75 65 72 79 28 22 75 70 64 61 74 65 20 24 7b 73 esult.=.$this->query("update.${s
374a0 65 71 6e 61 6d 65 7d 20 73 65 74 20 69 64 20 3d 20 69 64 20 2b 20 31 22 29 3b 0a 20 20 20 20 20 eqname}.set.id.=.id.+.1");......
374c0 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 70 6f 70 45 72 72 6f 72 48 61 6e 64 6c 69 6e 67 28 29 .......$this->popErrorHandling()
374e0 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 24 6f 6e 64 65 6d 61 6e 64 20 26 26 20 44 ;.............if.($ondemand.&&.D
37500 42 3a 3a 69 73 45 72 72 6f 72 28 24 72 65 73 75 6c 74 29 20 26 26 0a 20 20 20 20 20 20 20 20 20 B::isError($result).&&..........
37520 20 20 20 20 20 20 20 24 72 65 73 75 6c 74 2d 3e 67 65 74 43 6f 64 65 28 29 20 3d 3d 20 44 42 5f .......$result->getCode().==.DB_
37540 45 52 52 4f 52 5f 4e 4f 53 55 43 48 54 41 42 4c 45 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 ERROR_NOSUCHTABLE).{............
37560 20 20 20 20 20 24 72 65 70 65 61 74 20 3d 20 31 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .....$repeat.=.1;...............
37580 20 20 24 74 68 69 73 2d 3e 70 75 73 68 45 72 72 6f 72 48 61 6e 64 6c 69 6e 67 28 50 45 41 52 5f ..$this->pushErrorHandling(PEAR_
375a0 45 52 52 4f 52 5f 52 45 54 55 52 4e 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 ERROR_RETURN);.................$
375c0 72 65 73 75 6c 74 20 3d 20 24 74 68 69 73 2d 3e 63 72 65 61 74 65 53 65 71 75 65 6e 63 65 28 24 result.=.$this->createSequence($
375e0 73 65 71 5f 6e 61 6d 65 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 74 68 69 73 seq_name);.................$this
37600 2d 3e 70 6f 70 45 72 72 6f 72 48 61 6e 64 6c 69 6e 67 28 29 3b 0a 20 20 20 20 20 20 20 20 20 20 ->popErrorHandling();...........
37620 20 20 20 20 20 20 69 66 20 28 44 42 3a 3a 69 73 45 72 72 6f 72 28 24 72 65 73 75 6c 74 29 29 20 ......if.(DB::isError($result)).
37640 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 {.....................return.$th
37660 69 73 2d 3e 72 61 69 73 65 45 72 72 6f 72 28 24 72 65 73 75 6c 74 29 3b 0a 20 20 20 20 20 20 20 is->raiseError($result);........
37680 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 72 65 73 75 .........}.................$resu
376a0 6c 74 20 3d 20 24 74 68 69 73 2d 3e 71 75 65 72 79 28 22 69 6e 73 65 72 74 20 69 6e 74 6f 20 24 lt.=.$this->query("insert.into.$
376c0 7b 73 65 71 6e 61 6d 65 7d 20 28 69 64 29 20 76 61 6c 75 65 73 28 30 29 22 29 3b 0a 20 20 20 20 {seqname}.(id).values(0)");.....
376e0 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ........}.else.{................
37700 20 24 72 65 70 65 61 74 20 3d 20 30 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 .$repeat.=.0;.............}.....
37720 20 20 20 20 7d 20 77 68 69 6c 65 20 28 24 72 65 70 65 61 74 29 3b 0a 0a 20 20 20 20 20 20 20 20 ....}.while.($repeat);..........
37740 69 66 20 28 44 42 3a 3a 69 73 45 72 72 6f 72 28 24 72 65 73 75 6c 74 29 29 20 7b 0a 20 20 20 20 if.(DB::isError($result)).{.....
37760 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 61 69 73 65 45 72 72 6f 72 ........return.$this->raiseError
37780 28 24 72 65 73 75 6c 74 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 24 72 ($result);.........}..........$r
377a0 65 73 75 6c 74 20 3d 20 24 74 68 69 73 2d 3e 71 75 65 72 79 28 22 73 65 6c 65 63 74 20 69 64 20 esult.=.$this->query("select.id.
377c0 66 72 6f 6d 20 24 7b 73 65 71 6e 61 6d 65 7d 22 29 3b 0a 20 20 20 20 20 20 20 20 69 66 20 28 44 from.${seqname}");.........if.(D
377e0 42 3a 3a 69 73 45 72 72 6f 72 28 24 72 65 73 75 6c 74 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 B::isError($result)).{..........
37800 20 20 20 72 65 74 75 72 6e 20 24 72 65 73 75 6c 74 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 ...return.$result;.........}....
37820 20 20 20 20 20 20 24 72 6f 77 20 3d 20 24 72 65 73 75 6c 74 2d 3e 66 65 74 63 68 52 6f 77 28 44 ......$row.=.$result->fetchRow(D
37840 42 5f 46 45 54 43 48 4d 4f 44 45 5f 4f 52 44 45 52 45 44 29 3b 0a 20 20 20 20 20 20 20 20 69 66 B_FETCHMODE_ORDERED);.........if
37860 20 28 44 42 3a 3a 69 73 45 72 72 6f 72 28 24 72 6f 77 20 7c 7c 20 21 24 72 6f 77 29 29 20 7b 0a .(DB::isError($row.||.!$row)).{.
37880 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 72 6f 77 3b 0a 20 20 20 20 20 20 20 ............return.$row;........
378a0 20 7d 0a 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 72 6f 77 5b 30 5d 3b 0a 20 20 20 20 .}..........return.$row[0];.....
378c0 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 63 72 65 61 74 65 53 }......//.}}}.....//.{{{.createS
378e0 65 71 75 65 6e 63 65 28 29 0a 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 63 72 65 61 74 65 53 65 equence()......function.createSe
37900 71 75 65 6e 63 65 28 24 73 65 71 5f 6e 61 6d 65 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 quence($seq_name).....{.........
37920 24 73 65 71 6e 61 6d 65 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 53 65 71 75 65 6e 63 65 4e 61 6d $seqname.=.$this->getSequenceNam
37940 65 28 24 73 65 71 5f 6e 61 6d 65 29 3b 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 e($seq_name);.........return.$th
37960 69 73 2d 3e 71 75 65 72 79 28 22 43 52 45 41 54 45 20 54 41 42 4c 45 20 24 7b 73 65 71 6e 61 6d is->query("CREATE.TABLE.${seqnam
37980 65 7d 20 22 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e}."............................
379a0 20 20 27 28 69 64 20 62 69 67 69 6e 74 20 4e 4f 54 20 4e 55 4c 4c 2c 27 2e 0a 20 20 20 20 20 20 ..'(id.bigint.NOT.NULL,'........
379c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 20 50 52 49 4d 41 52 59 20 ......................'.PRIMARY.
379e0 4b 45 59 28 69 64 29 29 27 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 KEY(id))');.....}......//.}}}...
37a00 20 20 2f 2f 20 7b 7b 7b 20 64 72 6f 70 53 65 71 75 65 6e 63 65 28 29 0a 0a 20 20 20 20 66 75 6e ..//.{{{.dropSequence()......fun
37a20 63 74 69 6f 6e 20 64 72 6f 70 53 65 71 75 65 6e 63 65 28 24 73 65 71 5f 6e 61 6d 65 29 0a 20 20 ction.dropSequence($seq_name)...
37a40 20 20 7b 0a 20 20 20 20 20 20 20 20 24 73 65 71 6e 61 6d 65 20 3d 20 24 74 68 69 73 2d 3e 67 65 ..{.........$seqname.=.$this->ge
37a60 74 53 65 71 75 65 6e 63 65 4e 61 6d 65 28 24 73 65 71 5f 6e 61 6d 65 29 3b 0a 20 20 20 20 20 20 tSequenceName($seq_name);.......
37a80 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 71 75 65 72 79 28 22 44 52 4f 50 20 54 41 42 4c ..return.$this->query("DROP.TABL
37aa0 45 20 24 7b 73 65 71 6e 61 6d 65 7d 22 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d E.${seqname}");.....}......//.}}
37ac0 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 61 75 74 6f 43 6f 6d 6d 69 74 28 29 0a 0a 20 20 20 20 66 }.....//.{{{.autoCommit()......f
37ae0 75 6e 63 74 69 6f 6e 20 61 75 74 6f 43 6f 6d 6d 69 74 28 24 6f 6e 6f 66 66 20 3d 20 66 61 6c 73 unction.autoCommit($onoff.=.fals
37b00 65 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 69 66 20 28 21 40 6f 64 62 63 5f 61 75 74 6f e).....{.........if.(!@odbc_auto
37b20 63 6f 6d 6d 69 74 28 24 74 68 69 73 2d 3e 63 6f 6e 6e 65 63 74 69 6f 6e 2c 20 24 6f 6e 6f 66 66 commit($this->connection,.$onoff
37b40 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6f )).{.............return.$this->o
37b60 64 62 63 52 61 69 73 65 45 72 72 6f 72 28 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 dbcRaiseError();.........}......
37b80 20 20 20 72 65 74 75 72 6e 20 44 42 5f 4f 4b 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d ...return.DB_OK;.....}......//.}
37ba0 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 63 6f 6d 6d 69 74 28 29 0a 0a 20 20 20 20 66 75 6e 63 }}.....//.{{{.commit()......func
37bc0 74 69 6f 6e 20 63 6f 6d 6d 69 74 28 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 69 66 20 28 tion.commit().....{.........if.(
37be0 21 40 6f 64 62 63 5f 63 6f 6d 6d 69 74 28 24 74 68 69 73 2d 3e 63 6f 6e 6e 65 63 74 69 6f 6e 29 !@odbc_commit($this->connection)
37c00 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6f 64 ).{.............return.$this->od
37c20 62 63 52 61 69 73 65 45 72 72 6f 72 28 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 bcRaiseError();.........}.......
37c40 20 20 72 65 74 75 72 6e 20 44 42 5f 4f 4b 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d ..return.DB_OK;.....}......//.}}
37c60 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 72 6f 6c 6c 62 61 63 6b 28 29 0a 0a 20 20 20 20 66 75 6e }.....//.{{{.rollback()......fun
37c80 63 74 69 6f 6e 20 72 6f 6c 6c 62 61 63 6b 28 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 69 ction.rollback().....{.........i
37ca0 66 20 28 21 40 6f 64 62 63 5f 72 6f 6c 6c 62 61 63 6b 28 24 74 68 69 73 2d 3e 63 6f 6e 6e 65 63 f.(!@odbc_rollback($this->connec
37cc0 74 69 6f 6e 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 tion)).{.............return.$thi
37ce0 73 2d 3e 6f 64 62 63 52 61 69 73 65 45 72 72 6f 72 28 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 s->odbcRaiseError();.........}..
37d00 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 44 42 5f 4f 4b 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 .......return.DB_OK;.....}......
37d20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 6f 64 62 63 52 61 69 73 65 45 72 72 6f 72 //.}}}.....//.{{{.odbcRaiseError
37d40 28 29 0a 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 6f 64 62 63 52 61 69 73 65 45 72 72 6f 72 28 ()......function.odbcRaiseError(
37d60 24 65 72 72 6e 6f 20 3d 20 6e 75 6c 6c 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 69 66 20 $errno.=.null).....{.........if.
37d80 28 24 65 72 72 6e 6f 20 3d 3d 3d 20 6e 75 6c 6c 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 ($errno.===.null).{.............
37da0 24 65 72 72 6e 6f 20 3d 20 24 74 68 69 73 2d 3e 65 72 72 6f 72 43 6f 64 65 28 6f 64 62 63 5f 65 $errno.=.$this->errorCode(odbc_e
37dc0 72 72 6f 72 28 24 74 68 69 73 2d 3e 63 6f 6e 6e 65 63 74 69 6f 6e 29 29 3b 0a 20 20 20 20 20 20 rror($this->connection));.......
37de0 20 20 7d 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 61 69 73 65 45 ..}.........return.$this->raiseE
37e00 72 72 6f 72 28 24 65 72 72 6e 6f 2c 20 6e 75 6c 6c 2c 20 6e 75 6c 6c 2c 20 6e 75 6c 6c 2c 0a 20 rror($errno,.null,.null,.null,..
37e20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 65 72 .......................$this->er
37e40 72 6f 72 4e 61 74 69 76 65 28 29 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a rorNative());.....}......//.}}}.
37e60 20 20 20 20 2f 2f 20 7b 7b 7b 20 67 65 74 53 70 65 63 69 61 6c 51 75 65 72 79 28 29 0a 0a 20 20 ....//.{{{.getSpecialQuery()....
37e80 20 20 2f 2a 2a 0a 20 20 20 20 2a 20 52 65 74 75 72 6e 73 20 74 68 65 20 71 75 65 72 79 20 6e 65 ../**.....*.Returns.the.query.ne
37ea0 65 64 65 64 20 74 6f 20 67 65 74 20 73 6f 6d 65 20 62 61 63 6b 65 6e 64 20 69 6e 66 6f 0a 20 20 eded.to.get.some.backend.info...
37ec0 20 20 2a 20 40 70 61 72 61 6d 20 73 74 72 69 6e 67 20 24 74 79 70 65 20 57 68 61 74 20 6b 69 6e ..*.@param.string.$type.What.kin
37ee0 64 20 6f 66 20 69 6e 66 6f 20 79 6f 75 20 77 61 6e 74 20 74 6f 20 72 65 74 72 69 65 76 65 0a 20 d.of.info.you.want.to.retrieve..
37f00 20 20 20 2a 20 40 72 65 74 75 72 6e 20 73 74 72 69 6e 67 20 54 68 65 20 53 51 4c 20 71 75 65 72 ...*.@return.string.The.SQL.quer
37f20 79 20 73 74 72 69 6e 67 0a 20 20 20 20 2a 2f 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 y.string.....*/.....function.get
37f40 53 70 65 63 69 61 6c 51 75 65 72 79 28 24 74 79 70 65 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 SpecialQuery($type).....{.......
37f60 20 20 73 77 69 74 63 68 20 28 24 74 79 70 65 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 63 ..switch.($type).{.............c
37f80 61 73 65 20 27 74 61 62 6c 65 73 27 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 64 65 66 61 75 6c ase.'tables':.............defaul
37fa0 74 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 6e 75 6c 6c 3b 0a t:.................return.null;.
37fc0 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 73 71 6c 3b 0a 20 ........}.........return.$sql;..
37fe0 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 0a 7d 0a 0a 2f 2f 20 4c 6f 63 61 6c 20 76 61 ...}......//.}}}..}..//.Local.va
38000 72 69 61 62 6c 65 73 3a 0a 2f 2f 20 74 61 62 2d 77 69 64 74 68 3a 20 34 0a 2f 2f 20 63 2d 62 61 riables:.//.tab-width:.4.//.c-ba
38020 73 69 63 2d 6f 66 66 73 65 74 3a 20 34 0a 2f 2f 20 45 6e 64 3a 0a 3f 3e 0a 00 00 00 00 00 00 00 sic-offset:.4.//.End:.?>........
38040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
38060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
38080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
380a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
380c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
380e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
38100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
38120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
38140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
38160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
38180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
381a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
381c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
381e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
38200 44 42 2d 31 2e 35 2e 30 52 43 31 2f 44 42 2f 70 67 73 71 6c 2e 70 68 70 00 00 00 00 00 00 00 00 DB-1.5.0RC1/DB/pgsql.php........
38220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
38240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
38260 00 00 00 00 31 30 30 36 34 34 20 00 20 20 20 37 36 34 20 00 20 20 20 31 34 34 20 00 20 20 20 20 ....100644.....764.....144......
38280 20 20 36 32 30 37 30 20 20 37 36 37 35 31 30 37 35 31 34 20 20 20 37 36 33 37 20 00 00 00 00 00 ..62070..7675107514...7637......
382a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
382c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
382e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
38300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
38320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
38340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
38360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
38380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
383a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
383c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
383e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
38400 3c 3f 70 68 70 0a 2f 2a 20 76 69 6d 3a 20 73 65 74 20 65 78 70 61 6e 64 74 61 62 20 74 61 62 73 <?php./*.vim:.set.expandtab.tabs
38420 74 6f 70 3d 34 20 73 68 69 66 74 77 69 64 74 68 3d 34 20 66 6f 6c 64 6d 65 74 68 6f 64 3d 6d 61 top=4.shiftwidth=4.foldmethod=ma
38440 72 6b 65 72 3a 20 2a 2f 0a 2f 2f 20 2b 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d rker:.*/.//.+-------------------
38460 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
38480 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2b 0a 2f 2f 20 7c 20 50 48 50 20 56 65 -------------------+.//.|.PHP.Ve
384a0 72 73 69 6f 6e 20 34 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 rsion.4.........................
384c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c ...............................|
384e0 0a 2f 2f 20 2b 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d .//.+---------------------------
38500 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
38520 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2b 0a 2f 2f 20 7c 20 43 6f 70 79 72 69 67 68 74 20 28 63 29 20 -----------+.//.|.Copyright.(c).
38540 31 39 39 37 2d 32 30 30 33 20 54 68 65 20 50 48 50 20 47 72 6f 75 70 20 20 20 20 20 20 20 20 20 1997-2003.The.PHP.Group.........
38560 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 2f 2f 20 2b 2d 2d 2d .......................|.//.+---
38580 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
385a0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
385c0 2d 2d 2d 2b 0a 2f 2f 20 7c 20 54 68 69 73 20 73 6f 75 72 63 65 20 66 69 6c 65 20 69 73 20 73 75 ---+.//.|.This.source.file.is.su
385e0 62 6a 65 63 74 20 74 6f 20 76 65 72 73 69 6f 6e 20 32 2e 30 32 20 6f 66 20 74 68 65 20 50 48 50 bject.to.version.2.02.of.the.PHP
38600 20 6c 69 63 65 6e 73 65 2c 20 20 20 20 20 20 7c 0a 2f 2f 20 7c 20 74 68 61 74 20 69 73 20 62 75 .license,......|.//.|.that.is.bu
38620 6e 64 6c 65 64 20 77 69 74 68 20 74 68 69 73 20 70 61 63 6b 61 67 65 20 69 6e 20 74 68 65 20 66 ndled.with.this.package.in.the.f
38640 69 6c 65 20 4c 49 43 45 4e 53 45 2c 20 61 6e 64 20 69 73 20 20 20 20 20 20 20 20 7c 0a 2f 2f 20 ile.LICENSE,.and.is........|.//.
38660 7c 20 61 76 61 69 6c 61 62 6c 65 20 61 74 20 74 68 72 6f 75 67 68 20 74 68 65 20 77 6f 72 6c 64 |.available.at.through.the.world
38680 2d 77 69 64 65 2d 77 65 62 20 61 74 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -wide-web.at....................
386a0 20 20 20 20 20 20 20 7c 0a 2f 2f 20 7c 20 68 74 74 70 3a 2f 2f 77 77 77 2e 70 68 70 2e 6e 65 74 .......|.//.|.http://www.php.net
386c0 2f 6c 69 63 65 6e 73 65 2f 32 5f 30 32 2e 74 78 74 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 /license/2_02.txt...............
386e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 2f 2f 20 7c 20 49 66 20 79 6f 75 ...................|.//.|.If.you
38700 20 64 69 64 20 6e 6f 74 20 72 65 63 65 69 76 65 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 50 .did.not.receive.a.copy.of.the.P
38720 48 50 20 6c 69 63 65 6e 73 65 20 61 6e 64 20 61 72 65 20 75 6e 61 62 6c 65 20 74 6f 20 20 20 7c HP.license.and.are.unable.to...|
38740 0a 2f 2f 20 7c 20 6f 62 74 61 69 6e 20 69 74 20 74 68 72 6f 75 67 68 20 74 68 65 20 77 6f 72 6c .//.|.obtain.it.through.the.worl
38760 64 2d 77 69 64 65 2d 77 65 62 2c 20 70 6c 65 61 73 65 20 73 65 6e 64 20 61 20 6e 6f 74 65 20 74 d-wide-web,.please.send.a.note.t
38780 6f 20 20 20 20 20 20 20 20 20 20 7c 0a 2f 2f 20 7c 20 6c 69 63 65 6e 73 65 40 70 68 70 2e 6e 65 o..........|.//.|.license@php.ne
387a0 74 20 73 6f 20 77 65 20 63 61 6e 20 6d 61 69 6c 20 79 6f 75 20 61 20 63 6f 70 79 20 69 6d 6d 65 t.so.we.can.mail.you.a.copy.imme
387c0 64 69 61 74 65 6c 79 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 2f 2f 20 2b 2d 2d 2d diately................|.//.+---
387e0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
38800 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
38820 2d 2d 2d 2b 0a 2f 2f 20 7c 20 41 75 74 68 6f 72 73 3a 20 52 75 69 20 48 69 72 6f 6b 61 77 61 20 ---+.//.|.Authors:.Rui.Hirokawa.
38840 3c 72 75 69 5f 68 69 72 6f 6b 61 77 61 40 79 62 62 2e 6e 65 2e 6a 70 3e 20 20 20 20 20 20 20 20 <rui_hirokawa@ybb.ne.jp>........
38860 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 2f 2f 20 7c 20 20 20 20 20 20 20 20 20 20 53 ...............|.//.|..........S
38880 74 69 67 20 42 61 6b 6b 65 6e 20 3c 73 73 62 40 70 68 70 2e 6e 65 74 3e 20 20 20 20 20 20 20 20 tig.Bakken.<ssb@php.net>........
388a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 2f 2f 20 ...........................|.//.
388c0 2b 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d +-------------------------------
388e0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
38900 2d 2d 2d 2d 2d 2d 2d 2b 0a 2f 2f 0a 2f 2f 20 24 49 64 3a 20 70 67 73 71 6c 2e 70 68 70 2c 76 20 -------+.//.//.$Id:.pgsql.php,v.
38920 31 2e 32 35 20 32 30 30 33 2f 30 36 2f 32 31 20 31 37 3a 30 31 3a 30 30 20 63 6f 78 20 45 78 70 1.25.2003/06/21.17:01:00.cox.Exp
38940 20 24 0a 2f 2f 0a 2f 2f 20 44 61 74 61 62 61 73 65 20 69 6e 64 65 70 65 6e 64 65 6e 74 20 71 75 .$.//.//.Database.independent.qu
38960 65 72 79 20 69 6e 74 65 72 66 61 63 65 20 64 65 66 69 6e 69 74 69 6f 6e 20 66 6f 72 20 50 48 50 ery.interface.definition.for.PHP
38980 27 73 20 50 6f 73 74 67 72 65 53 51 4c 0a 2f 2f 20 65 78 74 65 6e 73 69 6f 6e 2e 0a 2f 2f 0a 0a 's.PostgreSQL.//.extension..//..
389a0 72 65 71 75 69 72 65 5f 6f 6e 63 65 20 27 44 42 2f 63 6f 6d 6d 6f 6e 2e 70 68 70 27 3b 0a 0a 63 require_once.'DB/common.php';..c
389c0 6c 61 73 73 20 44 42 5f 70 67 73 71 6c 20 65 78 74 65 6e 64 73 20 44 42 5f 63 6f 6d 6d 6f 6e 0a lass.DB_pgsql.extends.DB_common.
389e0 7b 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 70 72 6f 70 65 72 74 69 65 73 0a 0a 20 20 20 20 76 61 72 {.....//.{{{.properties......var
38a00 20 24 63 6f 6e 6e 65 63 74 69 6f 6e 3b 0a 20 20 20 20 76 61 72 20 24 70 68 70 74 79 70 65 2c 20 .$connection;.....var.$phptype,.
38a20 24 64 62 73 79 6e 74 61 78 3b 0a 20 20 20 20 76 61 72 20 24 70 72 65 70 61 72 65 5f 74 6f 6b 65 $dbsyntax;.....var.$prepare_toke
38a40 6e 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 20 20 20 20 76 61 72 20 24 70 72 65 70 61 72 65 5f 74 ns.=.array();.....var.$prepare_t
38a60 79 70 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 20 20 20 20 76 61 72 20 24 74 72 61 6e 73 61 63 ypes.=.array();.....var.$transac
38a80 74 69 6f 6e 5f 6f 70 63 6f 75 6e 74 20 3d 20 30 3b 0a 20 20 20 20 76 61 72 20 24 64 73 6e 20 3d tion_opcount.=.0;.....var.$dsn.=
38aa0 20 61 72 72 61 79 28 29 3b 0a 20 20 20 20 76 61 72 20 24 72 6f 77 20 3d 20 61 72 72 61 79 28 29 .array();.....var.$row.=.array()
38ac0 3b 0a 20 20 20 20 76 61 72 20 24 6e 75 6d 5f 72 6f 77 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 20 ;.....var.$num_rows.=.array();..
38ae0 20 20 20 76 61 72 20 24 61 66 66 65 63 74 65 64 20 3d 20 30 3b 0a 20 20 20 20 76 61 72 20 24 61 ...var.$affected.=.0;.....var.$a
38b00 75 74 6f 63 6f 6d 6d 69 74 20 3d 20 74 72 75 65 3b 0a 20 20 20 20 76 61 72 20 24 66 65 74 63 68 utocommit.=.true;.....var.$fetch
38b20 6d 6f 64 65 20 3d 20 44 42 5f 46 45 54 43 48 4d 4f 44 45 5f 4f 52 44 45 52 45 44 3b 0a 0a 20 20 mode.=.DB_FETCHMODE_ORDERED;....
38b40 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 63 6f 6e 73 74 72 75 63 74 6f 72 0a ..//.}}}.....//.{{{.constructor.
38b60 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 44 42 5f 70 67 73 71 6c 28 29 0a 20 20 20 20 7b 0a 20 .....function.DB_pgsql().....{..
38b80 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 44 42 5f 63 6f 6d 6d 6f 6e 28 29 3b 0a 20 20 20 20 20 .......$this->DB_common();......
38ba0 20 20 20 24 74 68 69 73 2d 3e 70 68 70 74 79 70 65 20 3d 20 27 70 67 73 71 6c 27 3b 0a 20 20 20 ...$this->phptype.=.'pgsql';....
38bc0 20 20 20 20 20 24 74 68 69 73 2d 3e 64 62 73 79 6e 74 61 78 20 3d 20 27 70 67 73 71 6c 27 3b 0a .....$this->dbsyntax.=.'pgsql';.
38be0 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 66 65 61 74 75 72 65 73 20 3d 20 61 72 72 61 79 28 ........$this->features.=.array(
38c00 0a 20 20 20 20 20 20 20 20 20 20 20 20 27 70 72 65 70 61 72 65 27 20 3d 3e 20 66 61 6c 73 65 2c .............'prepare'.=>.false,
38c20 0a 20 20 20 20 20 20 20 20 20 20 20 20 27 70 63 6f 6e 6e 65 63 74 27 20 3d 3e 20 74 72 75 65 2c .............'pconnect'.=>.true,
38c40 0a 20 20 20 20 20 20 20 20 20 20 20 20 27 74 72 61 6e 73 61 63 74 69 6f 6e 73 27 20 3d 3e 20 74 .............'transactions'.=>.t
38c60 72 75 65 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 27 6c 69 6d 69 74 27 20 3d 3e 20 27 61 6c 74 rue,.............'limit'.=>.'alt
38c80 65 72 27 0a 20 20 20 20 20 20 20 20 29 3b 0a 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 65 72 er'.........);.........$this->er
38ca0 72 6f 72 63 6f 64 65 5f 6d 61 70 20 3d 20 61 72 72 61 79 28 0a 20 20 20 20 20 20 20 20 29 3b 0a rorcode_map.=.array(.........);.
38cc0 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 63 6f 6e ....}......//.}}}.....//.{{{.con
38ce0 6e 65 63 74 28 29 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 43 6f 6e 6e 65 63 74 20 74 nect()....../**......*.Connect.t
38d00 6f 20 61 20 64 61 74 61 62 61 73 65 20 61 6e 64 20 6c 6f 67 20 69 6e 20 61 73 20 74 68 65 20 73 o.a.database.and.log.in.as.the.s
38d20 70 65 63 69 66 69 65 64 20 75 73 65 72 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 70 61 pecified.user.......*......*.@pa
38d40 72 61 6d 20 24 64 73 6e 20 74 68 65 20 64 61 74 61 20 73 6f 75 72 63 65 20 6e 61 6d 65 20 28 73 ram.$dsn.the.data.source.name.(s
38d60 65 65 20 44 42 3a 3a 70 61 72 73 65 44 53 4e 20 66 6f 72 20 73 79 6e 74 61 78 29 0a 20 20 20 20 ee.DB::parseDSN.for.syntax).....
38d80 20 2a 20 40 70 61 72 61 6d 20 24 70 65 72 73 69 73 74 65 6e 74 20 28 6f 70 74 69 6f 6e 61 6c 29 .*.@param.$persistent.(optional)
38da0 20 77 68 65 74 68 65 72 20 74 68 65 20 63 6f 6e 6e 65 63 74 69 6f 6e 20 73 68 6f 75 6c 64 0a 20 .whether.the.connection.should..
38dc0 20 20 20 20 2a 20 20 20 20 20 20 20 20 62 65 20 70 65 72 73 69 73 74 65 6e 74 0a 20 20 20 20 20 ....*........be.persistent......
38de0 2a 0a 20 20 20 20 20 2a 20 40 72 65 74 75 72 6e 20 69 6e 74 20 44 42 5f 4f 4b 20 6f 6e 20 73 75 *......*.@return.int.DB_OK.on.su
38e00 63 63 65 73 73 2c 20 61 20 44 42 20 65 72 72 6f 72 20 63 6f 64 65 20 6f 6e 20 66 61 69 6c 75 72 ccess,.a.DB.error.code.on.failur
38e20 65 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6e 6e 65 63 74 28 24 e......*/.....function.connect($
38e40 64 73 6e 69 6e 66 6f 2c 20 24 70 65 72 73 69 73 74 65 6e 74 20 3d 20 66 61 6c 73 65 29 0a 20 20 dsninfo,.$persistent.=.false)...
38e60 20 20 7b 0a 20 20 20 20 20 20 20 20 69 66 20 28 21 44 42 3a 3a 61 73 73 65 72 74 45 78 74 65 6e ..{.........if.(!DB::assertExten
38e80 73 69 6f 6e 28 27 70 67 73 71 6c 27 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 sion('pgsql')).............retur
38ea0 6e 20 24 74 68 69 73 2d 3e 72 61 69 73 65 45 72 72 6f 72 28 44 42 5f 45 52 52 4f 52 5f 45 58 54 n.$this->raiseError(DB_ERROR_EXT
38ec0 45 4e 53 49 4f 4e 5f 4e 4f 54 5f 46 4f 55 4e 44 29 3b 0a 0a 20 20 20 20 20 20 20 20 24 74 68 69 ENSION_NOT_FOUND);..........$thi
38ee0 73 2d 3e 64 73 6e 20 3d 20 24 64 73 6e 69 6e 66 6f 3b 0a 20 20 20 20 20 20 20 20 24 70 72 6f 74 s->dsn.=.$dsninfo;.........$prot
38f00 6f 63 6f 6c 20 3d 20 28 69 73 73 65 74 28 24 64 73 6e 69 6e 66 6f 5b 27 70 72 6f 74 6f 63 6f 6c ocol.=.(isset($dsninfo['protocol
38f20 27 5d 29 29 20 3f 20 24 64 73 6e 69 6e 66 6f 5b 27 70 72 6f 74 6f 63 6f 6c 27 5d 20 3a 20 27 74 '])).?.$dsninfo['protocol'].:.'t
38f40 63 70 27 3b 0a 20 20 20 20 20 20 20 20 24 63 6f 6e 6e 73 74 72 20 3d 20 27 27 3b 0a 0a 20 20 20 cp';.........$connstr.=.'';.....
38f60 20 20 20 20 20 69 66 20 28 24 70 72 6f 74 6f 63 6f 6c 20 3d 3d 20 27 74 63 70 27 29 20 7b 0a 20 .....if.($protocol.==.'tcp').{..
38f80 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 21 65 6d 70 74 79 28 24 64 73 6e 69 6e 66 6f 5b 27 ...........if.(!empty($dsninfo['
38fa0 68 6f 73 74 73 70 65 63 27 5d 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 hostspec'])).{.................$
38fc0 63 6f 6e 6e 73 74 72 20 3d 20 27 68 6f 73 74 3d 27 20 2e 20 24 64 73 6e 69 6e 66 6f 5b 27 68 6f connstr.=.'host='...$dsninfo['ho
38fe0 73 74 73 70 65 63 27 5d 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 stspec'];.............}.........
39000 20 20 20 20 69 66 20 28 21 65 6d 70 74 79 28 24 64 73 6e 69 6e 66 6f 5b 27 70 6f 72 74 27 5d 29 ....if.(!empty($dsninfo['port'])
39020 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 63 6f 6e 6e 73 74 72 20 2e 3d 20 ).{.................$connstr..=.
39040 27 20 70 6f 72 74 3d 27 20 2e 20 24 64 73 6e 69 6e 66 6f 5b 27 70 6f 72 74 27 5d 3b 0a 20 20 20 '.port='...$dsninfo['port'];....
39060 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 69 66 .........}.........}..........if
39080 20 28 69 73 73 65 74 28 24 64 73 6e 69 6e 66 6f 5b 27 64 61 74 61 62 61 73 65 27 5d 29 29 20 7b .(isset($dsninfo['database'])).{
390a0 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 63 6f 6e 6e 73 74 72 20 2e 3d 20 27 20 64 62 6e 61 6d .............$connstr..=.'.dbnam
390c0 65 3d 5c 27 27 20 2e 20 61 64 64 73 6c 61 73 68 65 73 28 24 64 73 6e 69 6e 66 6f 5b 27 64 61 74 e=\''...addslashes($dsninfo['dat
390e0 61 62 61 73 65 27 5d 29 20 2e 20 27 5c 27 27 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 abase'])...'\'';.........}......
39100 20 20 20 69 66 20 28 21 65 6d 70 74 79 28 24 64 73 6e 69 6e 66 6f 5b 27 75 73 65 72 6e 61 6d 65 ...if.(!empty($dsninfo['username
39120 27 5d 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 63 6f 6e 6e 73 74 72 20 2e 3d 20 27 '])).{.............$connstr..=.'
39140 20 75 73 65 72 3d 5c 27 27 20 2e 20 61 64 64 73 6c 61 73 68 65 73 28 24 64 73 6e 69 6e 66 6f 5b .user=\''...addslashes($dsninfo[
39160 27 75 73 65 72 6e 61 6d 65 27 5d 29 20 2e 20 27 5c 27 27 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 'username'])...'\'';.........}..
39180 20 20 20 20 20 20 20 69 66 20 28 21 65 6d 70 74 79 28 24 64 73 6e 69 6e 66 6f 5b 27 70 61 73 73 .......if.(!empty($dsninfo['pass
391a0 77 6f 72 64 27 5d 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 63 6f 6e 6e 73 74 72 20 word'])).{.............$connstr.
391c0 2e 3d 20 27 20 70 61 73 73 77 6f 72 64 3d 5c 27 27 20 2e 20 61 64 64 73 6c 61 73 68 65 73 28 24 .=.'.password=\''...addslashes($
391e0 64 73 6e 69 6e 66 6f 5b 27 70 61 73 73 77 6f 72 64 27 5d 29 20 2e 20 27 5c 27 27 3b 0a 20 20 20 dsninfo['password'])...'\'';....
39200 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 69 66 20 28 21 65 6d 70 74 79 28 24 64 73 6e 69 6e .....}.........if.(!empty($dsnin
39220 66 6f 5b 27 6f 70 74 69 6f 6e 73 27 5d 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 63 fo['options'])).{.............$c
39240 6f 6e 6e 73 74 72 20 2e 3d 20 27 20 6f 70 74 69 6f 6e 73 3d 27 20 2e 20 24 64 73 6e 69 6e 66 6f onnstr..=.'.options='...$dsninfo
39260 5b 27 6f 70 74 69 6f 6e 73 27 5d 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 69 ['options'];.........}.........i
39280 66 20 28 21 65 6d 70 74 79 28 24 64 73 6e 69 6e 66 6f 5b 27 74 74 79 27 5d 29 29 20 7b 0a 20 20 f.(!empty($dsninfo['tty'])).{...
392a0 20 20 20 20 20 20 20 20 20 20 24 63 6f 6e 6e 73 74 72 20 2e 3d 20 27 20 74 74 79 3d 27 20 2e 20 ..........$connstr..=.'.tty='...
392c0 24 64 73 6e 69 6e 66 6f 5b 27 74 74 79 27 5d 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 $dsninfo['tty'];.........}......
392e0 20 20 20 20 24 63 6f 6e 6e 65 63 74 5f 66 75 6e 63 74 69 6f 6e 20 3d 20 24 70 65 72 73 69 73 74 ....$connect_function.=.$persist
39300 65 6e 74 20 3f 20 27 70 67 5f 70 63 6f 6e 6e 65 63 74 27 20 3a 20 27 70 67 5f 63 6f 6e 6e 65 63 ent.?.'pg_pconnect'.:.'pg_connec
39320 74 27 3b 0a 20 20 20 20 20 20 20 20 2f 2f 20 63 61 74 63 68 20 65 72 72 6f 72 0a 20 20 20 20 20 t';.........//.catch.error......
39340 20 20 20 6f 62 5f 73 74 61 72 74 28 29 3b 0a 20 20 20 20 20 20 20 20 24 63 6f 6e 6e 20 3d 20 24 ...ob_start();.........$conn.=.$
39360 63 6f 6e 6e 65 63 74 5f 66 75 6e 63 74 69 6f 6e 28 24 63 6f 6e 6e 73 74 72 29 3b 0a 20 20 20 20 connect_function($connstr);.....
39380 20 20 20 20 24 65 72 72 6f 72 20 3d 20 6f 62 5f 67 65 74 5f 63 6f 6e 74 65 6e 74 73 28 29 3b 0a ....$error.=.ob_get_contents();.
393a0 20 20 20 20 20 20 20 20 6f 62 5f 65 6e 64 5f 63 6c 65 61 6e 28 29 3b 0a 20 20 20 20 20 20 20 20 ........ob_end_clean();.........
393c0 69 66 20 28 24 63 6f 6e 6e 20 3d 3d 20 66 61 6c 73 65 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 if.($conn.==.false).{...........
393e0 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 61 69 73 65 45 72 72 6f 72 28 44 42 5f 45 52 ..return.$this->raiseError(DB_ER
39400 52 4f 52 5f 43 4f 4e 4e 45 43 54 5f 46 41 49 4c 45 44 2c 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 ROR_CONNECT_FAILED,.null,.......
39420 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e ...............................n
39440 75 6c 6c 2c 20 6e 75 6c 6c 2c 20 73 74 72 69 70 5f 74 61 67 73 28 24 65 72 72 6f 72 29 29 3b 0a ull,.null,.strip_tags($error));.
39460 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 63 6f 6e 6e 65 63 74 ........}.........$this->connect
39480 69 6f 6e 20 3d 20 24 63 6f 6e 6e 3b 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 44 42 5f 4f ion.=.$conn;.........return.DB_O
394a0 4b 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 K;.....}......//.}}}.....//.{{{.
394c0 64 69 73 63 6f 6e 6e 65 63 74 28 29 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 4c 6f 67 disconnect()....../**......*.Log
394e0 20 6f 75 74 20 61 6e 64 20 64 69 73 63 6f 6e 6e 65 63 74 20 66 72 6f 6d 20 74 68 65 20 64 61 74 .out.and.disconnect.from.the.dat
39500 61 62 61 73 65 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 72 65 74 75 72 6e 20 62 6f 6f abase.......*......*.@return.boo
39520 6c 20 54 52 55 45 20 6f 6e 20 73 75 63 63 65 73 73 2c 20 46 41 4c 53 45 20 69 66 20 6e 6f 74 20 l.TRUE.on.success,.FALSE.if.not.
39540 63 6f 6e 6e 65 63 74 65 64 2e 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 connected.......*/.....function.
39560 64 69 73 63 6f 6e 6e 65 63 74 28 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 24 72 65 74 20 disconnect().....{.........$ret.
39580 3d 20 40 70 67 5f 63 6c 6f 73 65 28 24 74 68 69 73 2d 3e 63 6f 6e 6e 65 63 74 69 6f 6e 29 3b 0a =.@pg_close($this->connection);.
395a0 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 63 6f 6e 6e 65 63 74 69 6f 6e 20 3d 20 6e 75 6c 6c ........$this->connection.=.null
395c0 3b 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 72 65 74 3b 0a 20 20 20 20 7d 0a 0a 20 20 ;.........return.$ret;.....}....
395e0 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 73 69 6d 70 6c 65 51 75 65 72 79 28 ..//.}}}.....//.{{{.simpleQuery(
39600 29 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 53 65 6e 64 20 61 20 71 75 65 72 79 20 74 )....../**......*.Send.a.query.t
39620 6f 20 50 6f 73 74 67 72 65 53 51 4c 20 61 6e 64 20 72 65 74 75 72 6e 20 74 68 65 20 72 65 73 75 o.PostgreSQL.and.return.the.resu
39640 6c 74 73 20 61 73 20 61 0a 20 20 20 20 20 2a 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 73 6f 75 lts.as.a......*.PostgreSQL.resou
39660 72 63 65 20 69 64 65 6e 74 69 66 69 65 72 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 70 rce.identifier.......*......*.@p
39680 61 72 61 6d 20 24 71 75 65 72 79 20 74 68 65 20 53 51 4c 20 71 75 65 72 79 0a 20 20 20 20 20 2a aram.$query.the.SQL.query......*
396a0 0a 20 20 20 20 20 2a 20 40 72 65 74 75 72 6e 20 69 6e 74 20 72 65 74 75 72 6e 73 20 61 20 76 61 ......*.@return.int.returns.a.va
396c0 6c 69 64 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 73 75 6c 74 20 66 6f 72 20 73 75 63 63 65 73 lid.PostgreSQL.result.for.succes
396e0 73 66 75 6c 20 53 45 4c 45 43 54 0a 20 20 20 20 20 2a 20 71 75 65 72 69 65 73 2c 20 44 42 5f 4f sful.SELECT......*.queries,.DB_O
39700 4b 20 66 6f 72 20 6f 74 68 65 72 20 73 75 63 63 65 73 73 66 75 6c 20 71 75 65 72 69 65 73 2e 20 K.for.other.successful.queries..
39720 20 41 20 44 42 20 65 72 72 6f 72 20 63 6f 64 65 0a 20 20 20 20 20 2a 20 69 73 20 72 65 74 75 72 .A.DB.error.code......*.is.retur
39740 6e 65 64 20 6f 6e 20 66 61 69 6c 75 72 65 2e 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 66 75 6e 63 ned.on.failure.......*/.....func
39760 74 69 6f 6e 20 73 69 6d 70 6c 65 51 75 65 72 79 28 24 71 75 65 72 79 29 0a 20 20 20 20 7b 0a 20 tion.simpleQuery($query).....{..
39780 20 20 20 20 20 20 20 24 69 73 6d 61 6e 69 70 20 3d 20 44 42 3a 3a 69 73 4d 61 6e 69 70 28 24 71 .......$ismanip.=.DB::isManip($q
397a0 75 65 72 79 29 3b 0a 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 6c 61 73 74 5f 71 75 65 72 79 uery);.........$this->last_query
397c0 20 3d 20 24 71 75 65 72 79 3b 0a 20 20 20 20 20 20 20 20 24 71 75 65 72 79 20 3d 20 24 74 68 69 .=.$query;.........$query.=.$thi
397e0 73 2d 3e 6d 6f 64 69 66 79 51 75 65 72 79 28 24 71 75 65 72 79 29 3b 0a 20 20 20 20 20 20 20 20 s->modifyQuery($query);.........
39800 69 66 20 28 21 24 74 68 69 73 2d 3e 61 75 74 6f 63 6f 6d 6d 69 74 20 26 26 20 24 69 73 6d 61 6e if.(!$this->autocommit.&&.$isman
39820 69 70 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 24 74 68 69 73 2d 3e 74 72 61 ip).{.............if.($this->tra
39840 6e 73 61 63 74 69 6f 6e 5f 6f 70 63 6f 75 6e 74 20 3d 3d 20 30 29 20 7b 0a 20 20 20 20 20 20 20 nsaction_opcount.==.0).{........
39860 20 20 20 20 20 20 20 20 20 24 72 65 73 75 6c 74 20 3d 20 40 70 67 5f 65 78 65 63 28 24 74 68 69 .........$result.=.@pg_exec($thi
39880 73 2d 3e 63 6f 6e 6e 65 63 74 69 6f 6e 2c 20 22 62 65 67 69 6e 3b 22 29 3b 0a 20 20 20 20 20 20 s->connection,."begin;");.......
398a0 20 20 20 20 20 20 20 20 20 20 69 66 20 28 21 24 72 65 73 75 6c 74 29 20 7b 0a 20 20 20 20 20 20 ..........if.(!$result).{.......
398c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 67 73 71 ..............return.$this->pgsq
398e0 6c 52 61 69 73 65 45 72 72 6f 72 28 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d lRaiseError();.................}
39900 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 74 68 69 73 .............}.............$this
39920 2d 3e 74 72 61 6e 73 61 63 74 69 6f 6e 5f 6f 70 63 6f 75 6e 74 2b 2b 3b 0a 20 20 20 20 20 20 20 ->transaction_opcount++;........
39940 20 7d 0a 20 20 20 20 20 20 20 20 24 72 65 73 75 6c 74 20 3d 20 40 70 67 5f 65 78 65 63 28 24 74 .}.........$result.=.@pg_exec($t
39960 68 69 73 2d 3e 63 6f 6e 6e 65 63 74 69 6f 6e 2c 20 24 71 75 65 72 79 29 3b 0a 20 20 20 20 20 20 his->connection,.$query);.......
39980 20 20 69 66 20 28 21 24 72 65 73 75 6c 74 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 ..if.(!$result).{.............re
399a0 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 67 73 71 6c 52 61 69 73 65 45 72 72 6f 72 28 29 3b 0a 20 turn.$this->pgsqlRaiseError();..
399c0 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 2f 2f 20 44 65 74 65 72 6d 69 6e 65 20 77 68 .......}.........//.Determine.wh
399e0 69 63 68 20 71 75 65 72 69 65 73 20 74 68 61 74 20 73 68 6f 75 6c 64 20 72 65 74 75 72 6e 20 64 ich.queries.that.should.return.d
39a00 61 74 61 2c 20 61 6e 64 20 77 68 69 63 68 0a 20 20 20 20 20 20 20 20 2f 2f 20 73 68 6f 75 6c 64 ata,.and.which.........//.should
39a20 20 72 65 74 75 72 6e 20 61 6e 20 65 72 72 6f 72 20 63 6f 64 65 20 6f 6e 6c 79 2e 0a 20 20 20 20 .return.an.error.code.only......
39a40 20 20 20 20 69 66 20 28 24 69 73 6d 61 6e 69 70 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 ....if.($ismanip).{.............
39a60 24 74 68 69 73 2d 3e 61 66 66 65 63 74 65 64 20 3d 20 40 70 67 5f 63 6d 64 74 75 70 6c 65 73 28 $this->affected.=.@pg_cmdtuples(
39a80 24 72 65 73 75 6c 74 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 44 42 5f $result);.............return.DB_
39aa0 4f 4b 3b 0a 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 OK;.........}.elseif.(preg_match
39ac0 28 27 2f 5e 5c 73 2a 5c 28 3f 5c 73 2a 53 45 4c 45 43 54 5c 73 2b 2f 73 69 27 2c 20 24 71 75 65 ('/^\s*\(?\s*SELECT\s+/si',.$que
39ae0 72 79 29 20 26 26 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 21 70 72 65 67 5f 6d ry).&&...................!preg_m
39b00 61 74 63 68 28 27 2f 5e 5c 73 2a 5c 28 3f 5c 73 2a 53 45 4c 45 43 54 5c 73 2b 49 4e 54 4f 5c 73 atch('/^\s*\(?\s*SELECT\s+INTO\s
39b20 2f 73 69 27 2c 20 24 71 75 65 72 79 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2a 20 /si',.$query)).{............./*.
39b40 50 6f 73 74 67 72 65 53 51 4c 20 63 6f 6d 6d 61 6e 64 73 3a 0a 20 20 20 20 20 20 20 20 20 20 20 PostgreSQL.commands:............
39b60 20 20 20 20 41 42 4f 52 54 2c 20 41 4c 54 45 52 2c 20 42 45 47 49 4e 2c 20 43 4c 4f 53 45 2c 20 ....ABORT,.ALTER,.BEGIN,.CLOSE,.
39b80 43 4c 55 53 54 45 52 2c 20 43 4f 4d 4d 49 54 2c 20 43 4f 50 59 2c 0a 20 20 20 20 20 20 20 20 20 CLUSTER,.COMMIT,.COPY,..........
39ba0 20 20 20 20 20 20 43 52 45 41 54 45 2c 20 44 45 43 4c 41 52 45 2c 20 44 45 4c 45 54 45 2c 20 44 ......CREATE,.DECLARE,.DELETE,.D
39bc0 52 4f 50 20 54 41 42 4c 45 2c 20 45 58 50 4c 41 49 4e 2c 20 46 45 54 43 48 2c 0a 20 20 20 20 20 ROP.TABLE,.EXPLAIN,.FETCH,......
39be0 20 20 20 20 20 20 20 20 20 20 47 52 41 4e 54 2c 20 49 4e 53 45 52 54 2c 20 4c 49 53 54 45 4e 2c ..........GRANT,.INSERT,.LISTEN,
39c00 20 4c 4f 41 44 2c 20 4c 4f 43 4b 2c 20 4d 4f 56 45 2c 20 4e 4f 54 49 46 59 2c 20 52 45 53 45 54 .LOAD,.LOCK,.MOVE,.NOTIFY,.RESET
39c20 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 52 45 56 4f 4b 45 2c 20 52 4f 4c 4c 42 41 43 ,................REVOKE,.ROLLBAC
39c40 4b 2c 20 53 45 4c 45 43 54 2c 20 53 45 4c 45 43 54 20 49 4e 54 4f 2c 20 53 45 54 2c 20 53 48 4f K,.SELECT,.SELECT.INTO,.SET,.SHO
39c60 57 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 55 4e 4c 49 53 54 45 4e 2c 20 55 50 44 41 W,................UNLISTEN,.UPDA
39c80 54 45 2c 20 56 41 43 55 55 4d 0a 20 20 20 20 20 20 20 20 20 20 20 20 2a 2f 0a 20 20 20 20 20 20 TE,.VACUUM.............*/.......
39ca0 20 20 20 20 20 20 24 74 68 69 73 2d 3e 72 6f 77 5b 24 72 65 73 75 6c 74 5d 20 3d 20 30 3b 20 2f ......$this->row[$result].=.0;./
39cc0 2f 20 72 65 73 65 74 20 74 68 65 20 72 6f 77 20 63 6f 75 6e 74 65 72 2e 0a 20 20 20 20 20 20 20 /.reset.the.row.counter.........
39ce0 20 20 20 20 20 24 6e 75 6d 72 6f 77 73 20 3d 20 24 74 68 69 73 2d 3e 6e 75 6d 72 6f 77 73 28 24 .....$numrows.=.$this->numrows($
39d00 72 65 73 75 6c 74 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 69 73 5f 6f 62 6a 65 result);.............if.(is_obje
39d20 63 74 28 24 6e 75 6d 72 6f 77 73 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ct($numrows)).{.................
39d40 72 65 74 75 72 6e 20 24 6e 75 6d 72 6f 77 73 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 return.$numrows;.............}..
39d60 20 20 20 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 6e 75 6d 5f 72 6f 77 73 5b 24 72 65 73 75 ...........$this->num_rows[$resu
39d80 6c 74 5d 20 3d 20 24 6e 75 6d 72 6f 77 73 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 74 68 69 lt].=.$numrows;.............$thi
39da0 73 2d 3e 61 66 66 65 63 74 65 64 20 3d 20 30 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 s->affected.=.0;.............ret
39dc0 75 72 6e 20 24 72 65 73 75 6c 74 3b 0a 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20 urn.$result;.........}.else.{...
39de0 20 20 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 61 66 66 65 63 74 65 64 20 3d 20 30 3b 0a 20 ..........$this->affected.=.0;..
39e00 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 44 42 5f 4f 4b 3b 0a 20 20 20 20 20 20 20 ...........return.DB_OK;........
39e20 20 7d 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 .}.....}......//.}}}.....//.{{{.
39e40 6e 65 78 74 52 65 73 75 6c 74 28 29 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 4d 6f 76 nextResult()....../**......*.Mov
39e60 65 20 74 68 65 20 69 6e 74 65 72 6e 61 6c 20 70 67 73 71 6c 20 72 65 73 75 6c 74 20 70 6f 69 6e e.the.internal.pgsql.result.poin
39e80 74 65 72 20 74 6f 20 74 68 65 20 6e 65 78 74 20 61 76 61 69 6c 61 62 6c 65 20 72 65 73 75 6c 74 ter.to.the.next.available.result
39ea0 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 61 20 76 61 6c 69 64 20 66 62 ......*......*.@param.a.valid.fb
39ec0 73 71 6c 20 72 65 73 75 6c 74 20 72 65 73 6f 75 72 63 65 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 sql.result.resource......*......
39ee0 2a 20 40 61 63 63 65 73 73 20 70 75 62 6c 69 63 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 *.@access.public......*......*.@
39f00 72 65 74 75 72 6e 20 74 72 75 65 20 69 66 20 61 20 72 65 73 75 6c 74 20 69 73 20 61 76 61 69 6c return.true.if.a.result.is.avail
39f20 61 62 6c 65 20 6f 74 68 65 72 77 69 73 65 20 72 65 74 75 72 6e 20 66 61 6c 73 65 0a 20 20 20 20 able.otherwise.return.false.....
39f40 20 2a 2f 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 6e 65 78 74 52 65 73 75 6c 74 28 24 72 65 73 .*/.....function.nextResult($res
39f60 75 6c 74 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 66 61 6c 73 65 3b ult).....{.........return.false;
39f80 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 65 72 .....}......//.}}}.....//.{{{.er
39fa0 72 6f 72 43 6f 64 65 28 29 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 4d 61 70 20 6e 61 rorCode()....../**......*.Map.na
39fc0 74 69 76 65 20 65 72 72 6f 72 20 63 6f 64 65 73 20 74 6f 20 44 42 27 73 20 70 6f 72 74 61 62 6c tive.error.codes.to.DB's.portabl
39fe0 65 20 6f 6e 65 73 2e 20 20 52 65 71 75 69 72 65 73 20 74 68 61 74 0a 20 20 20 20 20 2a 20 74 68 e.ones...Requires.that......*.th
3a000 65 20 44 42 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 27 73 20 63 6f 6e 73 74 72 75 63 74 6f e.DB.implementation's.constructo
3a020 72 20 66 69 6c 6c 73 20 69 6e 20 74 68 65 20 24 65 72 72 6f 72 63 6f 64 65 5f 6d 61 70 0a 20 20 r.fills.in.the.$errorcode_map...
3a040 20 20 20 2a 20 70 72 6f 70 65 72 74 79 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 70 61 ...*.property.......*......*.@pa
3a060 72 61 6d 20 24 6e 61 74 69 76 65 63 6f 64 65 20 74 68 65 20 6e 61 74 69 76 65 20 65 72 72 6f 72 ram.$nativecode.the.native.error
3a080 20 63 6f 64 65 2c 20 61 73 20 72 65 74 75 72 6e 65 64 20 62 79 20 74 68 65 20 62 61 63 6b 65 6e .code,.as.returned.by.the.backen
3a0a0 64 0a 20 20 20 20 20 2a 20 64 61 74 61 62 61 73 65 20 65 78 74 65 6e 73 69 6f 6e 20 28 73 74 72 d......*.database.extension.(str
3a0c0 69 6e 67 20 6f 72 20 69 6e 74 65 67 65 72 29 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 72 ing.or.integer)......*......*.@r
3a0e0 65 74 75 72 6e 20 69 6e 74 20 61 20 70 6f 72 74 61 62 6c 65 20 44 42 20 65 72 72 6f 72 20 63 6f eturn.int.a.portable.DB.error.co
3a100 64 65 2c 20 6f 72 20 46 41 4c 53 45 20 69 66 20 74 68 69 73 20 44 42 0a 20 20 20 20 20 2a 20 69 de,.or.FALSE.if.this.DB......*.i
3a120 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 20 68 61 73 20 6e 6f 20 6d 61 70 70 69 6e 67 20 66 6f 72 mplementation.has.no.mapping.for
3a140 20 74 68 65 20 67 69 76 65 6e 20 65 72 72 6f 72 20 63 6f 64 65 2e 0a 20 20 20 20 20 2a 2f 0a 0a .the.given.error.code.......*/..
3a160 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 65 72 72 6f 72 43 6f 64 65 28 24 65 72 72 6f 72 6d 73 67 ....function.errorCode($errormsg
3a180 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 73 74 61 74 69 63 20 24 65 72 72 6f 72 5f 72 65 ).....{.........static.$error_re
3a1a0 67 65 78 70 73 3b 0a 20 20 20 20 20 20 20 20 69 66 20 28 65 6d 70 74 79 28 24 65 72 72 6f 72 5f gexps;.........if.(empty($error_
3a1c0 72 65 67 65 78 70 73 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 65 72 72 6f 72 5f 72 regexps)).{.............$error_r
3a1e0 65 67 65 78 70 73 20 3d 20 61 72 72 61 79 28 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 egexps.=.array(.................
3a200 27 2f 28 54 61 62 6c 65 20 64 6f 65 73 20 6e 6f 74 20 65 78 69 73 74 5c 2e 7c 52 65 6c 61 74 69 '/(Table.does.not.exist\.|Relati
3a220 6f 6e 20 5b 5c 22 5c 27 5d 2e 2a 5b 5c 22 5c 27 5d 20 64 6f 65 73 20 6e 6f 74 20 65 78 69 73 74 on.[\"\'].*[\"\'].does.not.exist
3a240 7c 73 65 71 75 65 6e 63 65 20 64 6f 65 73 20 6e 6f 74 20 65 78 69 73 74 7c 63 6c 61 73 73 20 22 |sequence.does.not.exist|class."
3a260 2e 2b 22 20 6e 6f 74 20 66 6f 75 6e 64 29 24 2f 27 20 3d 3e 20 44 42 5f 45 52 52 4f 52 5f 4e 4f .+".not.found)$/'.=>.DB_ERROR_NO
3a280 53 55 43 48 54 41 42 4c 45 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 2f 74 61 62 SUCHTABLE,.................'/tab
3a2a0 6c 65 20 5b 5c 22 5c 27 5d 2e 2a 5b 5c 22 5c 27 5d 20 64 6f 65 73 20 6e 6f 74 20 65 78 69 73 74 le.[\"\'].*[\"\'].does.not.exist
3a2c0 2f 27 20 3d 3e 20 44 42 5f 45 52 52 4f 52 5f 4e 4f 53 55 43 48 54 41 42 4c 45 2c 0a 20 20 20 20 /'.=>.DB_ERROR_NOSUCHTABLE,.....
3a2e0 20 20 20 20 20 20 20 20 20 20 20 20 27 2f 52 65 6c 61 74 69 6f 6e 20 5b 5c 22 5c 27 5d 2e 2a 5b ............'/Relation.[\"\'].*[
3a300 5c 22 5c 27 5d 20 61 6c 72 65 61 64 79 20 65 78 69 73 74 73 7c 43 61 6e 6e 6f 74 20 69 6e 73 65 \"\'].already.exists|Cannot.inse
3a320 72 74 20 61 20 64 75 70 6c 69 63 61 74 65 20 6b 65 79 20 69 6e 74 6f 20 28 61 20 29 3f 75 6e 69 rt.a.duplicate.key.into.(a.)?uni
3a340 71 75 65 20 69 6e 64 65 78 2e 2a 2f 27 20 20 20 20 20 20 3d 3e 20 44 42 5f 45 52 52 4f 52 5f 41 que.index.*/'......=>.DB_ERROR_A
3a360 4c 52 45 41 44 59 5f 45 58 49 53 54 53 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 LREADY_EXISTS,.................'
3a380 2f 64 69 76 69 64 65 20 62 79 20 7a 65 72 6f 24 2f 27 20 20 20 20 20 20 20 20 20 20 20 20 20 20 /divide.by.zero$/'..............
3a3a0 20 20 20 20 20 20 20 3d 3e 20 44 42 5f 45 52 52 4f 52 5f 44 49 56 5a 45 52 4f 2c 0a 20 20 20 20 .......=>.DB_ERROR_DIVZERO,.....
3a3c0 20 20 20 20 20 20 20 20 20 20 20 20 27 2f 70 67 5f 61 74 6f 69 3a 20 65 72 72 6f 72 20 69 6e 20 ............'/pg_atoi:.error.in.
3a3e0 2e 2a 3a 20 63 61 6e 5c 27 74 20 70 61 72 73 65 20 2f 27 20 3d 3e 20 44 42 5f 45 52 52 4f 52 5f .*:.can\'t.parse./'.=>.DB_ERROR_
3a400 49 4e 56 41 4c 49 44 5f 4e 55 4d 42 45 52 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 INVALID_NUMBER,.................
3a420 27 2f 74 74 72 69 62 75 74 65 20 5b 5c 22 5c 27 5d 2e 2a 5b 5c 22 5c 27 5d 20 6e 6f 74 20 66 6f '/ttribute.[\"\'].*[\"\'].not.fo
3a440 75 6e 64 24 7c 52 65 6c 61 74 69 6f 6e 20 5b 5c 22 5c 27 5d 2e 2a 5b 5c 22 5c 27 5d 20 64 6f 65 und$|Relation.[\"\'].*[\"\'].doe
3a460 73 20 6e 6f 74 20 68 61 76 65 20 61 74 74 72 69 62 75 74 65 20 5b 5c 22 5c 27 5d 2e 2a 5b 5c 22 s.not.have.attribute.[\"\'].*[\"
3a480 5c 27 5d 2f 27 20 3d 3e 20 44 42 5f 45 52 52 4f 52 5f 4e 4f 53 55 43 48 46 49 45 4c 44 2c 0a 20 \']/'.=>.DB_ERROR_NOSUCHFIELD,..
3a4a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 2f 70 61 72 73 65 72 3a 20 70 61 72 73 65 20 65 ...............'/parser:.parse.e
3a4c0 72 72 6f 72 20 61 74 20 6f 72 20 6e 65 61 72 20 5c 22 2f 27 20 20 20 3d 3e 20 44 42 5f 45 52 52 rror.at.or.near.\"/'...=>.DB_ERR
3a4e0 4f 52 5f 53 59 4e 54 41 58 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 2f 72 65 66 OR_SYNTAX,.................'/ref
3a500 65 72 65 6e 74 69 61 6c 20 69 6e 74 65 67 72 69 74 79 20 76 69 6f 6c 61 74 69 6f 6e 2f 27 20 20 erential.integrity.violation/'..
3a520 20 20 20 3d 3e 20 44 42 5f 45 52 52 4f 52 5f 43 4f 4e 53 54 52 41 49 4e 54 0a 20 20 20 20 20 20 ...=>.DB_ERROR_CONSTRAINT.......
3a540 20 20 20 20 20 20 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 66 6f 72 65 61 ......);.........}.........forea
3a560 63 68 20 28 24 65 72 72 6f 72 5f 72 65 67 65 78 70 73 20 61 73 20 24 72 65 67 65 78 70 20 3d 3e ch.($error_regexps.as.$regexp.=>
3a580 20 24 63 6f 64 65 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 70 72 65 67 5f 6d .$code).{.............if.(preg_m
3a5a0 61 74 63 68 28 24 72 65 67 65 78 70 2c 20 24 65 72 72 6f 72 6d 73 67 29 29 20 7b 0a 20 20 20 20 atch($regexp,.$errormsg)).{.....
3a5c0 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 63 6f 64 65 3b 0a 20 20 20 20 20 20 ............return.$code;.......
3a5e0 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 2f 2f 20 46 61 6c ......}.........}.........//.Fal
3a600 6c 20 62 61 63 6b 20 74 6f 20 44 42 5f 45 52 52 4f 52 20 69 66 20 74 68 65 72 65 20 77 61 73 20 l.back.to.DB_ERROR.if.there.was.
3a620 6e 6f 20 6d 61 70 70 69 6e 67 2e 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 44 42 5f 45 52 no.mapping..........return.DB_ER
3a640 52 4f 52 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b ROR;.....}......//.}}}.....//.{{
3a660 7b 20 66 65 74 63 68 49 6e 74 6f 28 29 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 46 65 {.fetchInto()....../**......*.Fe
3a680 74 63 68 20 61 20 72 6f 77 20 61 6e 64 20 69 6e 73 65 72 74 20 74 68 65 20 64 61 74 61 20 69 6e tch.a.row.and.insert.the.data.in
3a6a0 74 6f 20 61 6e 20 65 78 69 73 74 69 6e 67 20 61 72 72 61 79 2e 0a 20 20 20 20 20 2a 0a 20 20 20 to.an.existing.array.......*....
3a6c0 20 20 2a 20 40 70 61 72 61 6d 20 24 72 65 73 75 6c 74 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 ..*.@param.$result.PostgreSQL.re
3a6e0 73 75 6c 74 20 69 64 65 6e 74 69 66 69 65 72 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 24 72 sult.identifier......*.@param.$r
3a700 6f 77 20 28 72 65 66 65 72 65 6e 63 65 29 20 61 72 72 61 79 20 77 68 65 72 65 20 64 61 74 61 20 ow.(reference).array.where.data.
3a720 66 72 6f 6d 20 74 68 65 20 72 6f 77 20 69 73 20 73 74 6f 72 65 64 0a 20 20 20 20 20 2a 20 40 70 from.the.row.is.stored......*.@p
3a740 61 72 61 6d 20 24 66 65 74 63 68 6d 6f 64 65 20 68 6f 77 20 74 68 65 20 61 72 72 61 79 20 64 61 aram.$fetchmode.how.the.array.da
3a760 74 61 20 73 68 6f 75 6c 64 20 62 65 20 69 6e 64 65 78 65 64 0a 20 20 20 20 20 2a 20 40 70 61 72 ta.should.be.indexed......*.@par
3a780 61 6d 20 24 72 6f 77 6e 75 6d 20 74 68 65 20 72 6f 77 20 6e 75 6d 62 65 72 20 74 6f 20 66 65 74 am.$rownum.the.row.number.to.fet
3a7a0 63 68 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 72 65 74 75 72 6e 20 69 6e 74 20 44 42 5f ch......*......*.@return.int.DB_
3a7c0 4f 4b 20 6f 6e 20 73 75 63 63 65 73 73 2c 20 61 20 44 42 20 65 72 72 6f 72 20 63 6f 64 65 20 6f OK.on.success,.a.DB.error.code.o
3a7e0 6e 20 66 61 69 6c 75 72 65 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 66 n.failure......*/.....function.f
3a800 65 74 63 68 49 6e 74 6f 28 24 72 65 73 75 6c 74 2c 20 26 24 72 6f 77 2c 20 24 66 65 74 63 68 6d etchInto($result,.&$row,.$fetchm
3a820 6f 64 65 2c 20 24 72 6f 77 6e 75 6d 3d 6e 75 6c 6c 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 ode,.$rownum=null).....{........
3a840 20 24 72 6f 77 6e 75 6d 20 3d 20 28 24 72 6f 77 6e 75 6d 20 21 3d 3d 20 6e 75 6c 6c 29 20 3f 20 .$rownum.=.($rownum.!==.null).?.
3a860 24 72 6f 77 6e 75 6d 20 3a 20 24 74 68 69 73 2d 3e 72 6f 77 5b 24 72 65 73 75 6c 74 5d 3b 0a 20 $rownum.:.$this->row[$result];..
3a880 20 20 20 20 20 20 20 69 66 20 28 24 72 6f 77 6e 75 6d 20 3e 3d 20 24 74 68 69 73 2d 3e 6e 75 6d .......if.($rownum.>=.$this->num
3a8a0 5f 72 6f 77 73 5b 24 72 65 73 75 6c 74 5d 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 _rows[$result]).{.............re
3a8c0 74 75 72 6e 20 6e 75 6c 6c 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 69 66 20 turn.null;.........}.........if.
3a8e0 28 24 66 65 74 63 68 6d 6f 64 65 20 26 20 44 42 5f 46 45 54 43 48 4d 4f 44 45 5f 41 53 53 4f 43 ($fetchmode.&.DB_FETCHMODE_ASSOC
3a900 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 72 6f 77 20 3d 20 40 70 67 5f 66 65 74 63 68 ).{.............$row.=.@pg_fetch
3a920 5f 61 72 72 61 79 28 24 72 65 73 75 6c 74 2c 20 24 72 6f 77 6e 75 6d 2c 20 50 47 53 51 4c 5f 41 _array($result,.$rownum,.PGSQL_A
3a940 53 53 4f 43 29 3b 0a 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 20 SSOC);.........}.else.{.........
3a960 20 20 20 20 24 72 6f 77 20 3d 20 40 70 67 5f 66 65 74 63 68 5f 72 6f 77 28 24 72 65 73 75 6c 74 ....$row.=.@pg_fetch_row($result
3a980 2c 20 24 72 6f 77 6e 75 6d 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 69 66 ,.$rownum);.........}.........if
3a9a0 20 28 21 24 72 6f 77 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 65 72 72 20 3d 20 70 67 .(!$row).{.............$err.=.pg
3a9c0 5f 65 72 72 6f 72 6d 65 73 73 61 67 65 28 24 74 68 69 73 2d 3e 63 6f 6e 6e 65 63 74 69 6f 6e 29 _errormessage($this->connection)
3a9e0 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 21 24 65 72 72 29 20 7b 0a 20 20 20 20 20 ;.............if.(!$err).{......
3aa00 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 6e 75 6c 6c 3b 0a 20 20 20 20 20 20 20 20 ...........return.null;.........
3aa20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e ....}.............return.$this->
3aa40 70 67 73 71 6c 52 61 69 73 65 45 72 72 6f 72 28 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 pgsqlRaiseError();.........}....
3aa60 20 20 20 20 20 24 74 68 69 73 2d 3e 72 6f 77 5b 24 72 65 73 75 6c 74 5d 20 3d 20 2b 2b 24 72 6f .....$this->row[$result].=.++$ro
3aa80 77 6e 75 6d 3b 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 44 42 5f 4f 4b 3b 0a 20 20 20 20 wnum;.........return.DB_OK;.....
3aaa0 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 66 72 65 65 52 65 73 }......//.}}}.....//.{{{.freeRes
3aac0 75 6c 74 28 29 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 46 72 65 65 20 74 68 65 20 69 ult()....../**......*.Free.the.i
3aae0 6e 74 65 72 6e 61 6c 20 72 65 73 6f 75 72 63 65 73 20 61 73 73 6f 63 69 61 74 65 64 20 77 69 74 nternal.resources.associated.wit
3ab00 68 20 24 72 65 73 75 6c 74 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 h.$result.......*......*.@param.
3ab20 24 72 65 73 75 6c 74 20 69 6e 74 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 73 75 6c 74 20 69 64 $result.int.PostgreSQL.result.id
3ab40 65 6e 74 69 66 69 65 72 20 6f 72 20 44 42 20 73 74 61 74 65 6d 65 6e 74 20 69 64 65 6e 74 69 66 entifier.or.DB.statement.identif
3ab60 69 65 72 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 72 65 74 75 72 6e 20 62 6f 6f 6c 20 54 ier......*......*.@return.bool.T
3ab80 52 55 45 20 6f 6e 20 73 75 63 63 65 73 73 2c 20 46 41 4c 53 45 20 69 66 20 24 72 65 73 75 6c 74 RUE.on.success,.FALSE.if.$result
3aba0 20 69 73 20 69 6e 76 61 6c 69 64 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e .is.invalid......*/.....function
3abc0 20 66 72 65 65 52 65 73 75 6c 74 28 24 72 65 73 75 6c 74 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 .freeResult($result).....{......
3abe0 20 20 20 69 66 20 28 69 73 5f 72 65 73 6f 75 72 63 65 28 24 72 65 73 75 6c 74 29 29 20 7b 0a 20 ...if.(is_resource($result)).{..
3ac00 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 40 70 67 5f 66 72 65 65 72 65 73 75 6c 74 ...........return.@pg_freeresult
3ac20 28 24 72 65 73 75 6c 74 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 69 66 20 ($result);.........}.........if.
3ac40 28 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 70 72 65 70 61 72 65 5f 74 6f 6b 65 6e 73 5b 28 69 (!isset($this->prepare_tokens[(i
3ac60 6e 74 29 24 72 65 73 75 6c 74 5d 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 nt)$result])).{.............retu
3ac80 72 6e 20 66 61 6c 73 65 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 75 6e 73 65 rn.false;.........}.........unse
3aca0 74 28 24 74 68 69 73 2d 3e 70 72 65 70 61 72 65 5f 74 6f 6b 65 6e 73 5b 28 69 6e 74 29 24 72 65 t($this->prepare_tokens[(int)$re
3acc0 73 75 6c 74 5d 29 3b 0a 20 20 20 20 20 20 20 20 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 70 72 65 sult]);.........unset($this->pre
3ace0 70 61 72 65 5f 74 79 70 65 73 5b 28 69 6e 74 29 24 72 65 73 75 6c 74 5d 29 3b 0a 20 20 20 20 20 pare_types[(int)$result]);......
3ad00 20 20 20 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 72 6f 77 5b 28 69 6e 74 29 24 72 65 73 75 6c 74 ...unset($this->row[(int)$result
3ad20 5d 29 3b 0a 20 20 20 20 20 20 20 20 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 6e 75 6d 5f 72 6f 77 ]);.........unset($this->num_row
3ad40 73 5b 28 69 6e 74 29 24 72 65 73 75 6c 74 5d 29 3b 0a 20 20 20 20 20 20 20 20 24 74 68 69 73 2d s[(int)$result]);.........$this-
3ad60 3e 61 66 66 65 63 74 65 64 20 3d 20 30 3b 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 74 72 >affected.=.0;.........return.tr
3ad80 75 65 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b ue;.....}......//.}}}.....//.{{{
3ada0 20 71 75 6f 74 65 28 29 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 2a 20 51 75 6f 74 65 20 74 68 65 .quote()...../**.....*.Quote.the
3adc0 20 67 69 76 65 6e 20 73 74 72 69 6e 67 20 73 6f 20 69 74 20 63 61 6e 20 62 65 20 73 61 66 65 6c .given.string.so.it.can.be.safel
3ade0 79 20 75 73 65 64 20 77 69 74 68 69 6e 20 73 74 72 69 6e 67 20 64 65 6c 69 6d 69 74 65 72 73 0a y.used.within.string.delimiters.
3ae00 20 20 20 20 2a 20 69 6e 20 61 20 71 75 65 72 79 2e 0a 20 20 20 20 2a 20 40 70 61 72 61 6d 20 24 ....*.in.a.query......*.@param.$
3ae20 73 74 72 69 6e 67 20 6d 69 78 65 64 20 44 61 74 61 20 74 6f 20 62 65 20 71 75 6f 74 65 64 0a 20 string.mixed.Data.to.be.quoted..
3ae40 20 20 20 2a 20 40 72 65 74 75 72 6e 20 6d 69 78 65 64 20 22 4e 55 4c 4c 22 20 73 74 72 69 6e 67 ...*.@return.mixed."NULL".string
3ae60 2c 20 71 75 6f 74 65 64 20 73 74 72 69 6e 67 20 6f 72 20 6f 72 69 67 69 6e 61 6c 20 64 61 74 61 ,.quoted.string.or.original.data
3ae80 0a 20 20 20 20 2a 2f 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 71 75 6f 74 65 28 24 73 74 72 20 .....*/.....function.quote($str.
3aea0 3d 20 6e 75 6c 6c 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 73 77 69 74 63 68 20 28 73 74 =.null).....{.........switch.(st
3aec0 72 74 6f 6c 6f 77 65 72 28 67 65 74 74 79 70 65 28 24 73 74 72 29 29 29 20 7b 0a 20 20 20 20 20 rtolower(gettype($str))).{......
3aee0 20 20 20 20 20 20 20 63 61 73 65 20 27 6e 75 6c 6c 27 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 .......case.'null':.............
3af00 20 20 20 20 72 65 74 75 72 6e 20 27 4e 55 4c 4c 27 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 63 ....return.'NULL';.............c
3af20 61 73 65 20 27 69 6e 74 65 67 65 72 27 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 63 61 73 65 20 ase.'integer':.............case.
3af40 27 64 6f 75 62 6c 65 27 20 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 'double'.:.................retur
3af60 6e 20 24 73 74 72 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 63 61 73 65 20 27 62 6f 6f 6c 65 61 n.$str;.............case.'boolea
3af80 6e 27 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 73 74 72 20 n':.................return.$str.
3afa0 3f 20 27 54 52 55 45 27 20 3a 20 27 46 41 4c 53 45 27 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 ?.'TRUE'.:.'FALSE';.............
3afc0 63 61 73 65 20 27 73 74 72 69 6e 67 27 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 64 65 66 61 75 case.'string':.............defau
3afe0 6c 74 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 73 74 72 20 3d 20 73 74 72 5f 72 lt:.................$str.=.str_r
3b000 65 70 6c 61 63 65 28 22 27 22 2c 20 22 27 27 22 2c 20 24 73 74 72 29 3b 0a 20 20 20 20 20 20 20 eplace("'",."''",.$str);........
3b020 20 20 20 20 20 20 20 20 20 2f 2f 50 6f 73 74 67 72 65 53 51 4c 20 74 72 65 61 74 73 20 61 20 62 .........//PostgreSQL.treats.a.b
3b040 61 63 6b 73 6c 61 73 68 20 61 73 20 61 6e 20 65 73 63 61 70 65 20 63 68 61 72 61 63 74 65 72 2e ackslash.as.an.escape.character.
3b060 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 73 74 72 20 3d 20 73 74 72 5f 72 65 70 6c .................$str.=.str_repl
3b080 61 63 65 28 27 5c 5c 27 2c 20 27 5c 5c 5c 5c 27 2c 20 24 73 74 72 29 3b 0a 20 20 20 20 20 20 20 ace('\\',.'\\\\',.$str);........
3b0a0 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 22 27 24 73 74 72 27 22 3b 0a 20 20 20 20 20 20 .........return."'$str'";.......
3b0c0 20 20 7d 0a 20 20 20 20 7d 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 ..}.....}.....//.}}}.....//.{{{.
3b0e0 6e 75 6d 43 6f 6c 73 28 29 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 47 65 74 20 74 68 numCols()....../**......*.Get.th
3b100 65 20 6e 75 6d 62 65 72 20 6f 66 20 63 6f 6c 75 6d 6e 73 20 69 6e 20 61 20 72 65 73 75 6c 74 20 e.number.of.columns.in.a.result.
3b120 73 65 74 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 24 72 65 73 75 6c set.......*......*.@param.$resul
3b140 74 20 72 65 73 6f 75 72 63 65 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 73 75 6c 74 20 69 64 65 t.resource.PostgreSQL.result.ide
3b160 6e 74 69 66 69 65 72 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 72 65 74 75 72 6e 20 69 6e ntifier......*......*.@return.in
3b180 74 20 74 68 65 20 6e 75 6d 62 65 72 20 6f 66 20 63 6f 6c 75 6d 6e 73 20 70 65 72 20 72 6f 77 20 t.the.number.of.columns.per.row.
3b1a0 69 6e 20 24 72 65 73 75 6c 74 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 in.$result......*/.....function.
3b1c0 6e 75 6d 43 6f 6c 73 28 24 72 65 73 75 6c 74 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 24 numCols($result).....{.........$
3b1e0 63 6f 6c 73 20 3d 20 40 70 67 5f 6e 75 6d 66 69 65 6c 64 73 28 24 72 65 73 75 6c 74 29 3b 0a 20 cols.=.@pg_numfields($result);..
3b200 20 20 20 20 20 20 20 69 66 20 28 21 24 63 6f 6c 73 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 .......if.(!$cols).{............
3b220 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 67 73 71 6c 52 61 69 73 65 45 72 72 6f 72 28 29 .return.$this->pgsqlRaiseError()
3b240 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 63 6f 6c 73 ;.........}.........return.$cols
3b260 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 6e ;.....}......//.}}}.....//.{{{.n
3b280 75 6d 52 6f 77 73 28 29 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 47 65 74 20 74 68 65 umRows()....../**......*.Get.the
3b2a0 20 6e 75 6d 62 65 72 20 6f 66 20 72 6f 77 73 20 69 6e 20 61 20 72 65 73 75 6c 74 20 73 65 74 2e .number.of.rows.in.a.result.set.
3b2c0 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 24 72 65 73 75 6c 74 20 72 65 ......*......*.@param.$result.re
3b2e0 73 6f 75 72 63 65 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 73 75 6c 74 20 69 64 65 6e 74 69 66 source.PostgreSQL.result.identif
3b300 69 65 72 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 72 65 74 75 72 6e 20 69 6e 74 20 74 68 ier......*......*.@return.int.th
3b320 65 20 6e 75 6d 62 65 72 20 6f 66 20 72 6f 77 73 20 69 6e 20 24 72 65 73 75 6c 74 0a 20 20 20 20 e.number.of.rows.in.$result.....
3b340 20 2a 2f 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 6e 75 6d 52 6f 77 73 28 24 72 65 73 75 6c 74 .*/.....function.numRows($result
3b360 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 24 72 6f 77 73 20 3d 20 40 70 67 5f 6e 75 6d 72 ).....{.........$rows.=.@pg_numr
3b380 6f 77 73 28 24 72 65 73 75 6c 74 29 3b 0a 20 20 20 20 20 20 20 20 69 66 20 28 24 72 6f 77 73 20 ows($result);.........if.($rows.
3b3a0 3d 3d 3d 20 6e 75 6c 6c 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 ===.null).{.............return.$
3b3c0 74 68 69 73 2d 3e 70 67 73 71 6c 52 61 69 73 65 45 72 72 6f 72 28 29 3b 0a 20 20 20 20 20 20 20 this->pgsqlRaiseError();........
3b3e0 20 7d 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 72 6f 77 73 3b 0a 20 20 20 20 7d 0a 0a .}.........return.$rows;.....}..
3b400 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 65 72 72 6f 72 4e 61 74 69 76 ....//.}}}.....//.{{{.errorNativ
3b420 65 28 29 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 47 65 74 20 74 68 65 20 6e 61 74 69 e()....../**......*.Get.the.nati
3b440 76 65 20 65 72 72 6f 72 20 63 6f 64 65 20 6f 66 20 74 68 65 20 6c 61 73 74 20 65 72 72 6f 72 20 ve.error.code.of.the.last.error.
3b460 28 69 66 20 61 6e 79 29 20 74 68 61 74 0a 20 20 20 20 20 2a 20 6f 63 63 75 72 65 64 20 6f 6e 20 (if.any).that......*.occured.on.
3b480 74 68 65 20 63 75 72 72 65 6e 74 20 63 6f 6e 6e 65 63 74 69 6f 6e 2e 0a 20 20 20 20 20 2a 0a 20 the.current.connection.......*..
3b4a0 20 20 20 20 2a 20 40 72 65 74 75 72 6e 20 69 6e 74 20 6e 61 74 69 76 65 20 50 6f 73 74 67 72 65 ....*.@return.int.native.Postgre
3b4c0 53 51 4c 20 65 72 72 6f 72 20 63 6f 64 65 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 66 75 6e 63 74 SQL.error.code......*/.....funct
3b4e0 69 6f 6e 20 65 72 72 6f 72 4e 61 74 69 76 65 28 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 ion.errorNative().....{.........
3b500 72 65 74 75 72 6e 20 70 67 5f 65 72 72 6f 72 6d 65 73 73 61 67 65 28 24 74 68 69 73 2d 3e 63 6f return.pg_errormessage($this->co
3b520 6e 6e 65 63 74 69 6f 6e 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 nnection);.....}......//.}}}....
3b540 20 2f 2f 20 7b 7b 7b 20 61 75 74 6f 43 6f 6d 6d 69 74 28 29 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 .//.{{{.autoCommit()....../**...
3b560 20 20 20 2a 20 45 6e 61 62 6c 65 2f 64 69 73 61 62 6c 65 20 61 75 74 6f 6d 61 74 69 63 20 63 6f ...*.Enable/disable.automatic.co
3b580 6d 6d 69 74 73 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 61 75 74 6f 43 mmits......*/.....function.autoC
3b5a0 6f 6d 6d 69 74 28 24 6f 6e 6f 66 66 20 3d 20 66 61 6c 73 65 29 0a 20 20 20 20 7b 0a 20 20 20 20 ommit($onoff.=.false).....{.....
3b5c0 20 20 20 20 2f 2f 20 58 58 58 20 69 66 20 24 74 68 69 73 2d 3e 74 72 61 6e 73 61 63 74 69 6f 6e ....//.XXX.if.$this->transaction
3b5e0 5f 6f 70 63 6f 75 6e 74 20 3e 20 30 2c 20 77 65 20 73 68 6f 75 6c 64 20 70 72 6f 62 61 62 6c 79 _opcount.>.0,.we.should.probably
3b600 0a 20 20 20 20 20 20 20 20 2f 2f 20 69 73 73 75 65 20 61 20 77 61 72 6e 69 6e 67 20 68 65 72 65 .........//.issue.a.warning.here
3b620 2e 0a 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 61 75 74 6f 63 6f 6d 6d 69 74 20 3d 20 24 6f ..........$this->autocommit.=.$o
3b640 6e 6f 66 66 20 3f 20 74 72 75 65 20 3a 20 66 61 6c 73 65 3b 0a 20 20 20 20 20 20 20 20 72 65 74 noff.?.true.:.false;.........ret
3b660 75 72 6e 20 44 42 5f 4f 4b 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 urn.DB_OK;.....}......//.}}}....
3b680 20 2f 2f 20 7b 7b 7b 20 63 6f 6d 6d 69 74 28 29 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a .//.{{{.commit()....../**......*
3b6a0 20 43 6f 6d 6d 69 74 20 74 68 65 20 63 75 72 72 65 6e 74 20 74 72 61 6e 73 61 63 74 69 6f 6e 2e .Commit.the.current.transaction.
3b6c0 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6d 6d 69 74 28 29 0a 20 ......*/.....function.commit()..
3b6e0 20 20 20 7b 0a 20 20 20 20 20 20 20 20 69 66 20 28 24 74 68 69 73 2d 3e 74 72 61 6e 73 61 63 74 ...{.........if.($this->transact
3b700 69 6f 6e 5f 6f 70 63 6f 75 6e 74 20 3e 20 30 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f ion_opcount.>.0).{............./
3b720 2f 20 28 64 69 73 61 62 6c 65 64 29 20 68 61 63 6b 20 74 6f 20 73 68 75 74 20 75 70 20 65 72 72 /.(disabled).hack.to.shut.up.err
3b740 6f 72 20 6d 65 73 73 61 67 65 73 20 66 72 6f 6d 20 6c 69 62 70 71 2e 61 0a 20 20 20 20 20 20 20 or.messages.from.libpq.a........
3b760 20 20 20 20 20 2f 2f 40 66 63 6c 6f 73 65 28 40 66 6f 70 65 6e 28 22 70 68 70 3a 2f 2f 73 74 64 .....//@fclose(@fopen("php://std
3b780 65 72 72 22 2c 20 22 77 22 29 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 72 65 73 75 6c 74 err",."w"));.............$result
3b7a0 20 3d 20 40 70 67 5f 65 78 65 63 28 24 74 68 69 73 2d 3e 63 6f 6e 6e 65 63 74 69 6f 6e 2c 20 22 .=.@pg_exec($this->connection,."
3b7c0 65 6e 64 3b 22 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 74 72 61 6e 73 end;");.............$this->trans
3b7e0 61 63 74 69 6f 6e 5f 6f 70 63 6f 75 6e 74 20 3d 20 30 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 action_opcount.=.0;.............
3b800 69 66 20 28 21 24 72 65 73 75 6c 74 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 if.(!$result).{.................
3b820 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 67 73 71 6c 52 61 69 73 65 45 72 72 6f 72 28 29 3b return.$this->pgsqlRaiseError();
3b840 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 .............}.........}........
3b860 20 72 65 74 75 72 6e 20 44 42 5f 4f 4b 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d .return.DB_OK;.....}......//.}}}
3b880 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 72 6f 6c 6c 62 61 63 6b 28 29 0a 0a 20 20 20 20 2f 2a 2a 0a .....//.{{{.rollback()....../**.
3b8a0 20 20 20 20 20 2a 20 52 6f 6c 6c 20 62 61 63 6b 20 28 75 6e 64 6f 29 20 74 68 65 20 63 75 72 72 .....*.Roll.back.(undo).the.curr
3b8c0 65 6e 74 20 74 72 61 6e 73 61 63 74 69 6f 6e 2e 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 66 75 6e ent.transaction.......*/.....fun
3b8e0 63 74 69 6f 6e 20 72 6f 6c 6c 62 61 63 6b 28 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 69 ction.rollback().....{.........i
3b900 66 20 28 24 74 68 69 73 2d 3e 74 72 61 6e 73 61 63 74 69 6f 6e 5f 6f 70 63 6f 75 6e 74 20 3e 20 f.($this->transaction_opcount.>.
3b920 30 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 72 65 73 75 6c 74 20 3d 20 40 70 67 5f 65 0).{.............$result.=.@pg_e
3b940 78 65 63 28 24 74 68 69 73 2d 3e 63 6f 6e 6e 65 63 74 69 6f 6e 2c 20 22 61 62 6f 72 74 3b 22 29 xec($this->connection,."abort;")
3b960 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 74 72 61 6e 73 61 63 74 69 6f 6e ;.............$this->transaction
3b980 5f 6f 70 63 6f 75 6e 74 20 3d 20 30 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 21 24 _opcount.=.0;.............if.(!$
3b9a0 72 65 73 75 6c 74 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e result).{.................return
3b9c0 20 24 74 68 69 73 2d 3e 70 67 73 71 6c 52 61 69 73 65 45 72 72 6f 72 28 29 3b 0a 20 20 20 20 20 .$this->pgsqlRaiseError();......
3b9e0 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 .......}.........}.........retur
3ba00 6e 20 44 42 5f 4f 4b 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f n.DB_OK;.....}......//.}}}...../
3ba20 2f 20 7b 7b 7b 20 61 66 66 65 63 74 65 64 52 6f 77 73 28 29 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 /.{{{.affectedRows()....../**...
3ba40 20 20 20 2a 20 47 65 74 73 20 74 68 65 20 6e 75 6d 62 65 72 20 6f 66 20 72 6f 77 73 20 61 66 66 ...*.Gets.the.number.of.rows.aff
3ba60 65 63 74 65 64 20 62 79 20 74 68 65 20 6c 61 73 74 20 71 75 65 72 79 2e 0a 20 20 20 20 20 2a 20 ected.by.the.last.query.......*.
3ba80 69 66 20 74 68 65 20 6c 61 73 74 20 71 75 65 72 79 20 77 61 73 20 61 20 73 65 6c 65 63 74 2c 20 if.the.last.query.was.a.select,.
3baa0 72 65 74 75 72 6e 73 20 30 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 72 65 74 75 72 6e returns.0.......*......*.@return
3bac0 20 69 6e 74 20 6e 75 6d 62 65 72 20 6f 66 20 72 6f 77 73 20 61 66 66 65 63 74 65 64 20 62 79 20 .int.number.of.rows.affected.by.
3bae0 74 68 65 20 6c 61 73 74 20 71 75 65 72 79 20 6f 72 20 44 42 5f 45 52 52 4f 52 0a 20 20 20 20 20 the.last.query.or.DB_ERROR......
3bb00 2a 2f 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 61 66 66 65 63 74 65 64 52 6f 77 73 28 29 0a 20 */.....function.affectedRows()..
3bb20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 66 66 65 63 ...{.........return.$this->affec
3bb40 74 65 64 3b 0a 20 20 20 20 7d 0a 20 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b ted;.....}......//.}}}.....//.{{
3bb60 7b 20 6e 65 78 74 49 64 28 29 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 47 65 74 20 74 {.nextId()....../**......*.Get.t
3bb80 68 65 20 6e 65 78 74 20 76 61 6c 75 65 20 69 6e 20 61 20 73 65 71 75 65 6e 63 65 2e 0a 20 20 20 he.next.value.in.a.sequence.....
3bba0 20 20 2a 0a 20 20 20 20 20 2a 20 57 65 20 61 72 65 20 75 73 69 6e 67 20 6e 61 74 69 76 65 20 50 ..*......*.We.are.using.native.P
3bbc0 6f 73 74 67 72 65 53 51 4c 20 73 65 71 75 65 6e 63 65 73 2e 20 49 66 20 61 20 73 65 71 75 65 6e ostgreSQL.sequences..If.a.sequen
3bbe0 63 65 20 64 6f 65 73 0a 20 20 20 20 20 2a 20 6e 6f 74 20 65 78 69 73 74 2c 20 69 74 20 77 69 6c ce.does......*.not.exist,.it.wil
3bc00 6c 20 62 65 20 63 72 65 61 74 65 64 2c 20 75 6e 6c 65 73 73 20 24 6f 6e 64 65 6d 61 6e 64 20 69 l.be.created,.unless.$ondemand.i
3bc20 73 20 66 61 6c 73 65 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 61 63 63 65 73 73 20 70 s.false.......*......*.@access.p
3bc40 75 62 6c 69 63 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 73 74 72 69 6e 67 20 24 73 65 71 5f ublic......*.@param.string.$seq_
3bc60 6e 61 6d 65 20 74 68 65 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 73 65 71 75 65 6e 63 65 0a 20 20 name.the.name.of.the.sequence...
3bc80 20 20 20 2a 20 40 70 61 72 61 6d 20 62 6f 6f 6c 20 24 6f 6e 64 65 6d 61 6e 64 20 77 68 65 74 68 ...*.@param.bool.$ondemand.wheth
3bca0 65 72 20 74 6f 20 63 72 65 61 74 65 20 74 68 65 20 73 65 71 75 65 6e 63 65 20 6f 6e 20 64 65 6d er.to.create.the.sequence.on.dem
3bcc0 61 6e 64 0a 20 20 20 20 20 2a 20 40 72 65 74 75 72 6e 20 61 20 73 65 71 75 65 6e 63 65 20 69 6e and......*.@return.a.sequence.in
3bce0 74 65 67 65 72 2c 20 6f 72 20 61 20 44 42 20 65 72 72 6f 72 0a 20 20 20 20 20 2a 2f 0a 20 20 20 teger,.or.a.DB.error......*/....
3bd00 20 66 75 6e 63 74 69 6f 6e 20 6e 65 78 74 49 64 28 24 73 65 71 5f 6e 61 6d 65 2c 20 24 6f 6e 64 .function.nextId($seq_name,.$ond
3bd20 65 6d 61 6e 64 20 3d 20 74 72 75 65 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 24 73 65 71 emand.=.true).....{.........$seq
3bd40 6e 61 6d 65 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 53 65 71 75 65 6e 63 65 4e 61 6d 65 28 24 73 name.=.$this->getSequenceName($s
3bd60 65 71 5f 6e 61 6d 65 29 3b 0a 20 20 20 20 20 20 20 20 24 72 65 70 65 61 74 20 3d 20 66 61 6c 73 eq_name);.........$repeat.=.fals
3bd80 65 3b 0a 20 20 20 20 20 20 20 20 64 6f 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 74 68 69 e;.........do.{.............$thi
3bda0 73 2d 3e 70 75 73 68 45 72 72 6f 72 48 61 6e 64 6c 69 6e 67 28 50 45 41 52 5f 45 52 52 4f 52 5f s->pushErrorHandling(PEAR_ERROR_
3bdc0 52 45 54 55 52 4e 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 72 65 73 75 6c 74 20 3d 20 24 RETURN);.............$result.=.$
3bde0 74 68 69 73 2d 3e 71 75 65 72 79 28 22 53 45 4c 45 43 54 20 4e 45 58 54 56 41 4c 28 27 24 7b 73 this->query("SELECT.NEXTVAL('${s
3be00 65 71 6e 61 6d 65 7d 27 29 22 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e eqname}')");.............$this->
3be20 70 6f 70 45 72 72 6f 72 48 61 6e 64 6c 69 6e 67 28 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 popErrorHandling();.............
3be40 69 66 20 28 24 6f 6e 64 65 6d 61 6e 64 20 26 26 20 44 42 3a 3a 69 73 45 72 72 6f 72 28 24 72 65 if.($ondemand.&&.DB::isError($re
3be60 73 75 6c 74 29 20 26 26 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 72 65 73 75 6c 74 sult).&&.................$result
3be80 2d 3e 67 65 74 43 6f 64 65 28 29 20 3d 3d 20 44 42 5f 45 52 52 4f 52 5f 4e 4f 53 55 43 48 54 41 ->getCode().==.DB_ERROR_NOSUCHTA
3bea0 42 4c 45 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 72 65 70 65 61 74 20 3d BLE).{.................$repeat.=
3bec0 20 74 72 75 65 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 70 75 .true;.................$this->pu
3bee0 73 68 45 72 72 6f 72 48 61 6e 64 6c 69 6e 67 28 50 45 41 52 5f 45 52 52 4f 52 5f 52 45 54 55 52 shErrorHandling(PEAR_ERROR_RETUR
3bf00 4e 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 72 65 73 75 6c 74 20 3d 20 24 74 N);.................$result.=.$t
3bf20 68 69 73 2d 3e 63 72 65 61 74 65 53 65 71 75 65 6e 63 65 28 24 73 65 71 5f 6e 61 6d 65 29 3b 0a his->createSequence($seq_name);.
3bf40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 70 6f 70 45 72 72 6f 72 48 ................$this->popErrorH
3bf60 61 6e 64 6c 69 6e 67 28 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 44 andling();.................if.(D
3bf80 42 3a 3a 69 73 45 72 72 6f 72 28 24 72 65 73 75 6c 74 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 B::isError($result)).{..........
3bfa0 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 61 69 73 65 45 72 ...........return.$this->raiseEr
3bfc0 72 6f 72 28 24 72 65 73 75 6c 74 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a ror($result);.................}.
3bfe0 20 20 20 20 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 ............}.else.{............
3c000 20 20 20 20 20 24 72 65 70 65 61 74 20 3d 20 66 61 6c 73 65 3b 0a 20 20 20 20 20 20 20 20 20 20 .....$repeat.=.false;...........
3c020 20 20 7d 0a 20 20 20 20 20 20 20 20 7d 20 77 68 69 6c 65 20 28 24 72 65 70 65 61 74 29 3b 0a 20 ..}.........}.while.($repeat);..
3c040 20 20 20 20 20 20 20 69 66 20 28 44 42 3a 3a 69 73 45 72 72 6f 72 28 24 72 65 73 75 6c 74 29 29 .......if.(DB::isError($result))
3c060 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 61 69 .{.............return.$this->rai
3c080 73 65 45 72 72 6f 72 28 24 72 65 73 75 6c 74 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 seError($result);.........}.....
3c0a0 20 20 20 20 24 61 72 72 20 3d 20 24 72 65 73 75 6c 74 2d 3e 66 65 74 63 68 52 6f 77 28 44 42 5f ....$arr.=.$result->fetchRow(DB_
3c0c0 46 45 54 43 48 4d 4f 44 45 5f 4f 52 44 45 52 45 44 29 3b 0a 20 20 20 20 20 20 20 20 24 72 65 73 FETCHMODE_ORDERED);.........$res
3c0e0 75 6c 74 2d 3e 66 72 65 65 28 29 3b 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 61 72 72 ult->free();.........return.$arr
3c100 5b 30 5d 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b [0];.....}......//.}}}.....//.{{
3c120 7b 20 63 72 65 61 74 65 53 65 71 75 65 6e 63 65 28 29 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 {.createSequence()....../**.....
3c140 20 2a 20 43 72 65 61 74 65 20 74 68 65 20 73 65 71 75 65 6e 63 65 0a 20 20 20 20 20 2a 0a 20 20 .*.Create.the.sequence......*...
3c160 20 20 20 2a 20 40 70 61 72 61 6d 20 73 74 72 69 6e 67 20 24 73 65 71 5f 6e 61 6d 65 20 74 68 65 ...*.@param.string.$seq_name.the
3c180 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 73 65 71 75 65 6e 63 65 0a 20 20 20 20 20 2a 20 40 72 65 .name.of.the.sequence......*.@re
3c1a0 74 75 72 6e 20 6d 69 78 65 64 20 44 42 5f 4f 4b 20 6f 6e 20 73 75 63 63 65 73 73 20 6f 72 20 44 turn.mixed.DB_OK.on.success.or.D
3c1c0 42 20 65 72 72 6f 72 20 6f 6e 20 65 72 72 6f 72 0a 20 20 20 20 20 2a 20 40 61 63 63 65 73 73 20 B.error.on.error......*.@access.
3c1e0 70 75 62 6c 69 63 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 63 72 65 61 public......*/.....function.crea
3c200 74 65 53 65 71 75 65 6e 63 65 28 24 73 65 71 5f 6e 61 6d 65 29 0a 20 20 20 20 7b 0a 20 20 20 20 teSequence($seq_name).....{.....
3c220 20 20 20 20 24 73 65 71 6e 61 6d 65 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 53 65 71 75 65 6e 63 ....$seqname.=.$this->getSequenc
3c240 65 4e 61 6d 65 28 24 73 65 71 5f 6e 61 6d 65 29 3b 0a 20 20 20 20 20 20 20 20 24 72 65 73 75 6c eName($seq_name);.........$resul
3c260 74 20 3d 20 24 74 68 69 73 2d 3e 71 75 65 72 79 28 22 43 52 45 41 54 45 20 53 45 51 55 45 4e 43 t.=.$this->query("CREATE.SEQUENC
3c280 45 20 24 7b 73 65 71 6e 61 6d 65 7d 22 29 3b 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 E.${seqname}");.........return.$
3c2a0 72 65 73 75 6c 74 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f result;.....}......//.}}}.....//
3c2c0 20 7b 7b 7b 20 64 72 6f 70 53 65 71 75 65 6e 63 65 28 29 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 .{{{.dropSequence()....../**....
3c2e0 20 20 2a 20 44 72 6f 70 20 61 20 73 65 71 75 65 6e 63 65 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 ..*.Drop.a.sequence......*......
3c300 2a 20 40 70 61 72 61 6d 20 73 74 72 69 6e 67 20 24 73 65 71 5f 6e 61 6d 65 20 74 68 65 20 6e 61 *.@param.string.$seq_name.the.na
3c320 6d 65 20 6f 66 20 74 68 65 20 73 65 71 75 65 6e 63 65 0a 20 20 20 20 20 2a 20 40 72 65 74 75 72 me.of.the.sequence......*.@retur
3c340 6e 20 6d 69 78 65 64 20 44 42 5f 4f 4b 20 6f 6e 20 73 75 63 63 65 73 73 20 6f 72 20 44 42 20 65 n.mixed.DB_OK.on.success.or.DB.e
3c360 72 72 6f 72 20 6f 6e 20 65 72 72 6f 72 0a 20 20 20 20 20 2a 20 40 61 63 63 65 73 73 20 70 75 62 rror.on.error......*.@access.pub
3c380 6c 69 63 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 64 72 6f 70 53 65 71 lic......*/.....function.dropSeq
3c3a0 75 65 6e 63 65 28 24 73 65 71 5f 6e 61 6d 65 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 24 uence($seq_name).....{.........$
3c3c0 73 65 71 6e 61 6d 65 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 53 65 71 75 65 6e 63 65 4e 61 6d 65 seqname.=.$this->getSequenceName
3c3e0 28 24 73 65 71 5f 6e 61 6d 65 29 3b 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 ($seq_name);.........return.$thi
3c400 73 2d 3e 71 75 65 72 79 28 22 44 52 4f 50 20 53 45 51 55 45 4e 43 45 20 24 7b 73 65 71 6e 61 6d s->query("DROP.SEQUENCE.${seqnam
3c420 65 7d 22 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b e}");.....}......//.}}}.....//.{
3c440 7b 7b 20 6d 6f 64 69 66 79 4c 69 6d 69 74 51 75 65 72 79 28 29 0a 0a 20 20 20 20 66 75 6e 63 74 {{.modifyLimitQuery()......funct
3c460 69 6f 6e 20 6d 6f 64 69 66 79 4c 69 6d 69 74 51 75 65 72 79 28 24 71 75 65 72 79 2c 20 24 66 72 ion.modifyLimitQuery($query,.$fr
3c480 6f 6d 2c 20 24 63 6f 75 6e 74 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 24 71 75 65 72 79 om,.$count).....{.........$query
3c4a0 20 3d 20 24 71 75 65 72 79 20 2e 20 22 20 4c 49 4d 49 54 20 24 63 6f 75 6e 74 20 4f 46 46 53 45 .=.$query...".LIMIT.$count.OFFSE
3c4c0 54 20 24 66 72 6f 6d 22 3b 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 71 75 65 72 79 3b T.$from";.........return.$query;
3c4e0 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 70 67 .....}......//.}}}.....//.{{{.pg
3c500 73 71 6c 52 61 69 73 65 45 72 72 6f 72 28 29 0a 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 70 67 sqlRaiseError()......function.pg
3c520 73 71 6c 52 61 69 73 65 45 72 72 6f 72 28 24 65 72 72 6e 6f 20 3d 20 6e 75 6c 6c 29 0a 20 20 20 sqlRaiseError($errno.=.null)....
3c540 20 7b 0a 20 20 20 20 20 20 20 20 24 6e 61 74 69 76 65 20 3d 20 24 74 68 69 73 2d 3e 65 72 72 6f .{.........$native.=.$this->erro
3c560 72 4e 61 74 69 76 65 28 29 3b 0a 20 20 20 20 20 20 20 20 69 66 20 28 24 65 72 72 6e 6f 20 3d 3d rNative();.........if.($errno.==
3c580 3d 20 6e 75 6c 6c 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 65 72 72 20 3d 20 24 74 68 =.null).{.............$err.=.$th
3c5a0 69 73 2d 3e 65 72 72 6f 72 43 6f 64 65 28 24 6e 61 74 69 76 65 29 3b 0a 20 20 20 20 20 20 20 20 is->errorCode($native);.........
3c5c0 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 65 72 72 20 3d 20 24 65 72 72 }.else.{.............$err.=.$err
3c5e0 6e 6f 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 no;.........}.........return.$th
3c600 69 73 2d 3e 72 61 69 73 65 45 72 72 6f 72 28 24 65 72 72 2c 20 6e 75 6c 6c 2c 20 6e 75 6c 6c 2c is->raiseError($err,.null,.null,
3c620 20 6e 75 6c 6c 2c 20 24 6e 61 74 69 76 65 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d .null,.$native);.....}......//.}
3c640 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 5f 70 67 46 69 65 6c 64 46 6c 61 67 73 28 29 0a 0a 20 }}.....//.{{{._pgFieldFlags()...
3c660 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 46 6c 61 67 73 20 6f 66 20 61 20 46 69 65 6c 64 0a 20 .../**......*.Flags.of.a.Field..
3c680 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 69 6e 74 20 24 72 65 73 6f 75 72 63 ....*......*.@param.int.$resourc
3c6a0 65 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 73 75 6c 74 20 69 64 65 6e 74 69 66 69 65 72 0a 20 e.PostgreSQL.result.identifier..
3c6c0 20 20 20 20 2a 20 40 70 61 72 61 6d 20 69 6e 74 20 24 6e 75 6d 5f 66 69 65 6c 64 20 74 68 65 20 ....*.@param.int.$num_field.the.
3c6e0 66 69 65 6c 64 20 6e 75 6d 62 65 72 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 72 65 74 75 field.number......*......*.@retu
3c700 72 6e 20 73 74 72 69 6e 67 20 54 68 65 20 66 6c 61 67 73 20 6f 66 20 74 68 65 20 66 69 65 6c 64 rn.string.The.flags.of.the.field
3c720 20 28 22 6e 6f 74 5f 6e 75 6c 6c 22 2c 20 22 64 65 66 61 75 6c 74 5f 78 78 22 2c 20 22 70 72 69 .("not_null",."default_xx",."pri
3c740 6d 61 72 79 5f 6b 65 79 22 2c 0a 20 20 20 20 20 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 mary_key",......*...............
3c760 20 22 75 6e 69 71 75 65 22 20 61 6e 64 20 22 6d 75 6c 74 69 70 6c 65 5f 6b 65 79 22 20 61 72 65 ."unique".and."multiple_key".are
3c780 20 73 75 70 70 6f 72 74 65 64 29 0a 20 20 20 20 20 2a 20 40 61 63 63 65 73 73 20 70 72 69 76 61 .supported)......*.@access.priva
3c7a0 74 65 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 5f 70 67 46 69 65 6c 64 te......*/.....function._pgField
3c7c0 46 6c 61 67 73 28 24 72 65 73 6f 75 72 63 65 2c 20 24 6e 75 6d 5f 66 69 65 6c 64 2c 20 24 74 61 Flags($resource,.$num_field,.$ta
3c7e0 62 6c 65 5f 6e 61 6d 65 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 24 66 69 65 6c 64 5f 6e ble_name).....{.........$field_n
3c800 61 6d 65 20 3d 20 40 70 67 5f 66 69 65 6c 64 6e 61 6d 65 28 24 72 65 73 6f 75 72 63 65 2c 20 24 ame.=.@pg_fieldname($resource,.$
3c820 6e 75 6d 5f 66 69 65 6c 64 29 3b 0a 0a 20 20 20 20 20 20 20 20 24 72 65 73 75 6c 74 20 3d 20 40 num_field);..........$result.=.@
3c840 70 67 5f 65 78 65 63 28 24 74 68 69 73 2d 3e 63 6f 6e 6e 65 63 74 69 6f 6e 2c 20 22 53 45 4c 45 pg_exec($this->connection,."SELE
3c860 43 54 20 66 2e 61 74 74 6e 6f 74 6e 75 6c 6c 2c 20 66 2e 61 74 74 68 61 73 64 65 66 0a 20 20 20 CT.f.attnotnull,.f.atthasdef....
3c880 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 46 52 4f .............................FRO
3c8a0 4d 20 70 67 5f 61 74 74 72 69 62 75 74 65 20 66 2c 20 70 67 5f 63 6c 61 73 73 20 74 61 62 2c 20 M.pg_attribute.f,.pg_class.tab,.
3c8c0 70 67 5f 74 79 70 65 20 74 79 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 pg_type.typ.....................
3c8e0 20 20 20 20 20 20 20 20 20 20 20 20 57 48 45 52 45 20 74 61 62 2e 72 65 6c 6e 61 6d 65 20 3d 20 ............WHERE.tab.relname.=.
3c900 74 79 70 2e 74 79 70 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 typ.typname.....................
3c920 20 20 20 20 20 20 20 20 20 20 20 20 41 4e 44 20 74 79 70 2e 74 79 70 72 65 6c 69 64 20 3d 20 66 ............AND.typ.typrelid.=.f
3c940 2e 61 74 74 72 65 6c 69 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .attrelid.......................
3c960 20 20 20 20 20 20 20 20 20 20 41 4e 44 20 66 2e 61 74 74 6e 61 6d 65 20 3d 20 27 24 66 69 65 6c ..........AND.f.attname.=.'$fiel
3c980 64 5f 6e 61 6d 65 27 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 d_name'.........................
3c9a0 20 20 20 20 20 20 20 20 41 4e 44 20 74 61 62 2e 72 65 6c 6e 61 6d 65 20 3d 20 27 24 74 61 62 6c ........AND.tab.relname.=.'$tabl
3c9c0 65 5f 6e 61 6d 65 27 22 29 3b 0a 20 20 20 20 20 20 20 20 69 66 20 28 40 70 67 5f 6e 75 6d 72 6f e_name'");.........if.(@pg_numro
3c9e0 77 73 28 24 72 65 73 75 6c 74 29 20 3e 20 30 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 ws($result).>.0).{.............$
3ca00 72 6f 77 20 3d 20 40 70 67 5f 66 65 74 63 68 5f 72 6f 77 28 24 72 65 73 75 6c 74 2c 20 30 29 3b row.=.@pg_fetch_row($result,.0);
3ca20 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 66 6c 61 67 73 20 20 3d 20 28 24 72 6f 77 5b 30 5d 20 .............$flags..=.($row[0].
3ca40 3d 3d 20 27 74 27 29 20 3f 20 27 6e 6f 74 5f 6e 75 6c 6c 20 27 20 3a 20 27 27 3b 0a 0a 20 20 20 ==.'t').?.'not_null.'.:.'';.....
3ca60 20 20 20 20 20 20 20 20 20 69 66 20 28 24 72 6f 77 5b 31 5d 20 3d 3d 20 27 74 27 29 20 7b 0a 20 .........if.($row[1].==.'t').{..
3ca80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 72 65 73 75 6c 74 20 3d 20 40 70 67 5f 65 78 65 ...............$result.=.@pg_exe
3caa0 63 28 24 74 68 69 73 2d 3e 63 6f 6e 6e 65 63 74 69 6f 6e 2c 20 22 53 45 4c 45 43 54 20 61 2e 61 c($this->connection,."SELECT.a.a
3cac0 64 73 72 63 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 dsrc............................
3cae0 20 20 20 20 20 20 20 20 20 46 52 4f 4d 20 70 67 5f 61 74 74 72 69 62 75 74 65 20 66 2c 20 70 67 .........FROM.pg_attribute.f,.pg
3cb00 5f 63 6c 61 73 73 20 74 61 62 2c 20 70 67 5f 74 79 70 65 20 74 79 70 2c 20 70 67 5f 61 74 74 72 _class.tab,.pg_type.typ,.pg_attr
3cb20 64 65 66 20 61 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 def.a...........................
3cb40 20 20 20 20 20 20 20 20 20 20 57 48 45 52 45 20 74 61 62 2e 72 65 6c 6e 61 6d 65 20 3d 20 74 79 ..........WHERE.tab.relname.=.ty
3cb60 70 2e 74 79 70 6e 61 6d 65 20 41 4e 44 20 74 79 70 2e 74 79 70 72 65 6c 69 64 20 3d 20 66 2e 61 p.typname.AND.typ.typrelid.=.f.a
3cb80 74 74 72 65 6c 69 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ttrelid.........................
3cba0 20 20 20 20 20 20 20 20 20 20 20 20 41 4e 44 20 66 2e 61 74 74 72 65 6c 69 64 20 3d 20 61 2e 61 ............AND.f.attrelid.=.a.a
3cbc0 64 72 65 6c 69 64 20 41 4e 44 20 66 2e 61 74 74 6e 61 6d 65 20 3d 20 27 24 66 69 65 6c 64 5f 6e drelid.AND.f.attname.=.'$field_n
3cbe0 61 6d 65 27 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ame'............................
3cc00 20 20 20 20 20 20 20 20 20 41 4e 44 20 74 61 62 2e 72 65 6c 6e 61 6d 65 20 3d 20 27 24 74 61 62 .........AND.tab.relname.=.'$tab
3cc20 6c 65 5f 6e 61 6d 65 27 20 41 4e 44 20 66 2e 61 74 74 6e 75 6d 20 3d 20 61 2e 61 64 6e 75 6d 22 le_name'.AND.f.attnum.=.a.adnum"
3cc40 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 72 6f 77 20 3d 20 40 70 67 5f 66 65 );.................$row.=.@pg_fe
3cc60 74 63 68 5f 72 6f 77 28 24 72 65 73 75 6c 74 2c 20 30 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 tch_row($result,.0);............
3cc80 20 20 20 20 20 24 6e 75 6d 20 3d 20 73 74 72 5f 72 65 70 6c 61 63 65 28 27 5c 27 27 2c 20 27 27 .....$num.=.str_replace('\'',.''
3cca0 2c 20 24 72 6f 77 5b 30 5d 29 3b 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 66 6c ,.$row[0]);..................$fl
3ccc0 61 67 73 20 2e 3d 20 22 64 65 66 61 75 6c 74 5f 24 6e 75 6d 20 22 3b 0a 20 20 20 20 20 20 20 20 ags..=."default_$num.";.........
3cce0 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 24 72 65 73 75 6c 74 20 ....}.........}.........$result.
3cd00 3d 20 40 70 67 5f 65 78 65 63 28 24 74 68 69 73 2d 3e 63 6f 6e 6e 65 63 74 69 6f 6e 2c 20 22 53 =.@pg_exec($this->connection,."S
3cd20 45 4c 45 43 54 20 69 2e 69 6e 64 69 73 75 6e 69 71 75 65 2c 20 69 2e 69 6e 64 69 73 70 72 69 6d ELECT.i.indisunique,.i.indisprim
3cd40 61 72 79 2c 20 69 2e 69 6e 64 6b 65 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ary,.i.indkey...................
3cd60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 46 52 4f 4d 20 70 67 5f 61 74 74 72 69 62 75 74 65 20 ..............FROM.pg_attribute.
3cd80 66 2c 20 70 67 5f 63 6c 61 73 73 20 74 61 62 2c 20 70 67 5f 74 79 70 65 20 74 79 70 2c 20 70 67 f,.pg_class.tab,.pg_type.typ,.pg
3cda0 5f 69 6e 64 65 78 20 69 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 _index.i........................
3cdc0 20 20 20 20 20 20 20 20 20 57 48 45 52 45 20 74 61 62 2e 72 65 6c 6e 61 6d 65 20 3d 20 74 79 70 .........WHERE.tab.relname.=.typ
3cde0 2e 74 79 70 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .typname........................
3ce00 20 20 20 20 20 20 20 20 20 41 4e 44 20 74 79 70 2e 74 79 70 72 65 6c 69 64 20 3d 20 66 2e 61 74 .........AND.typ.typrelid.=.f.at
3ce20 74 72 65 6c 69 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 trelid..........................
3ce40 20 20 20 20 20 20 20 41 4e 44 20 66 2e 61 74 74 72 65 6c 69 64 20 3d 20 69 2e 69 6e 64 72 65 6c .......AND.f.attrelid.=.i.indrel
3ce60 69 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 id..............................
3ce80 20 20 20 41 4e 44 20 66 2e 61 74 74 6e 61 6d 65 20 3d 20 27 24 66 69 65 6c 64 5f 6e 61 6d 65 27 ...AND.f.attname.=.'$field_name'
3cea0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
3cec0 20 41 4e 44 20 74 61 62 2e 72 65 6c 6e 61 6d 65 20 3d 20 27 24 74 61 62 6c 65 5f 6e 61 6d 65 27 .AND.tab.relname.=.'$table_name'
3cee0 22 29 3b 0a 20 20 20 20 20 20 20 20 24 63 6f 75 6e 74 20 3d 20 40 70 67 5f 6e 75 6d 72 6f 77 73 ");.........$count.=.@pg_numrows
3cf00 28 24 72 65 73 75 6c 74 29 3b 0a 0a 20 20 20 20 20 20 20 20 66 6f 72 20 28 24 69 20 3d 20 30 3b ($result);..........for.($i.=.0;
3cf20 20 24 69 20 3c 20 24 63 6f 75 6e 74 20 3b 20 24 69 2b 2b 29 20 7b 0a 20 20 20 20 20 20 20 20 20 .$i.<.$count.;.$i++).{..........
3cf40 20 20 20 24 72 6f 77 20 3d 20 40 70 67 5f 66 65 74 63 68 5f 72 6f 77 28 24 72 65 73 75 6c 74 2c ...$row.=.@pg_fetch_row($result,
3cf60 20 24 69 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 6b 65 79 73 20 3d 20 65 78 70 6c 6f 64 .$i);.............$keys.=.explod
3cf80 65 28 22 20 22 2c 20 24 72 6f 77 5b 32 5d 29 3b 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 e(".",.$row[2]);..............if
3cfa0 20 28 69 6e 5f 61 72 72 61 79 28 24 6e 75 6d 5f 66 69 65 6c 64 20 2b 20 31 2c 20 24 6b 65 79 73 .(in_array($num_field.+.1,.$keys
3cfc0 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 66 6c 61 67 73 20 2e 3d 20 28 )).{.................$flags..=.(
3cfe0 24 72 6f 77 5b 30 5d 20 3d 3d 20 27 74 27 29 20 3f 20 27 75 6e 69 71 75 65 20 27 20 3a 20 27 27 $row[0].==.'t').?.'unique.'.:.''
3d000 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 66 6c 61 67 73 20 2e 3d 20 28 24 72 6f ;.................$flags..=.($ro
3d020 77 5b 31 5d 20 3d 3d 20 27 74 27 29 20 3f 20 27 70 72 69 6d 61 72 79 20 27 20 3a 20 27 27 3b 0a w[1].==.'t').?.'primary.'.:.'';.
3d040 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 63 6f 75 6e 74 28 24 6b 65 79 73 29 ................if.(count($keys)
3d060 20 3e 20 31 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 66 6c 61 67 73 .>.1).....................$flags
3d080 20 2e 3d 20 27 6d 75 6c 74 69 70 6c 65 5f 6b 65 79 20 27 3b 0a 20 20 20 20 20 20 20 20 20 20 20 ..=.'multiple_key.';............
3d0a0 20 7d 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 74 72 69 .}.........}..........return.tri
3d0c0 6d 28 24 66 6c 61 67 73 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 m($flags);.....}......//.}}}....
3d0e0 20 2f 2f 20 7b 7b 7b 20 74 61 62 6c 65 49 6e 66 6f 28 29 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 .//.{{{.tableInfo()....../**....
3d100 20 20 2a 20 52 65 74 75 72 6e 73 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 61 62 6f 75 74 20 61 20 ..*.Returns.information.about.a.
3d120 74 61 62 6c 65 20 6f 72 20 61 20 72 65 73 75 6c 74 20 73 65 74 0a 20 20 20 20 20 2a 0a 20 20 20 table.or.a.result.set......*....
3d140 20 20 2a 20 4e 4f 54 45 3a 20 64 6f 65 73 6e 27 74 20 73 75 70 70 6f 72 74 20 74 61 62 6c 65 20 ..*.NOTE:.doesn't.support.table.
3d160 6e 61 6d 65 20 61 6e 64 20 66 6c 61 67 73 20 69 66 20 63 61 6c 6c 65 64 20 66 72 6f 6d 20 61 20 name.and.flags.if.called.from.a.
3d180 64 62 5f 72 65 73 75 6c 74 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 20 db_result......*......*.@param..
3d1a0 6d 69 78 65 64 20 24 72 65 73 6f 75 72 63 65 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 73 75 6c mixed.$resource.PostgreSQL.resul
3d1c0 74 20 69 64 65 6e 74 69 66 69 65 72 20 6f 72 20 74 61 62 6c 65 20 6e 61 6d 65 0a 20 20 20 20 20 t.identifier.or.table.name......
3d1e0 2a 20 40 70 61 72 61 6d 20 20 69 6e 74 20 24 6d 6f 64 65 20 41 20 76 61 6c 69 64 20 74 61 62 6c *.@param..int.$mode.A.valid.tabl
3d200 65 49 6e 66 6f 20 6d 6f 64 65 20 28 44 42 5f 54 41 42 4c 45 49 4e 46 4f 5f 4f 52 44 45 52 54 41 eInfo.mode.(DB_TABLEINFO_ORDERTA
3d220 42 4c 45 20 6f 72 0a 20 20 20 20 20 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 BLE.or......*...................
3d240 44 42 5f 54 41 42 4c 45 49 4e 46 4f 5f 4f 52 44 45 52 29 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 DB_TABLEINFO_ORDER)......*......
3d260 2a 20 40 72 65 74 75 72 6e 20 61 72 72 61 79 20 41 6e 20 61 72 72 61 79 20 77 69 74 68 20 61 6c *.@return.array.An.array.with.al
3d280 6c 20 74 68 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 66 75 l.the.information......*/.....fu
3d2a0 6e 63 74 69 6f 6e 20 74 61 62 6c 65 49 6e 66 6f 28 24 72 65 73 75 6c 74 2c 20 24 6d 6f 64 65 20 nction.tableInfo($result,.$mode.
3d2c0 3d 20 6e 75 6c 6c 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 24 63 6f 75 6e 74 20 3d 20 30 =.null).....{.........$count.=.0
3d2e0 3b 0a 20 20 20 20 20 20 20 20 24 69 64 20 20 20 20 3d 20 30 3b 0a 20 20 20 20 20 20 20 20 24 72 ;.........$id....=.0;.........$r
3d300 65 73 20 20 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 20 20 20 20 20 20 20 20 2f 2a 0a 20 20 20 20 es...=.array();........../*.....
3d320 20 20 20 20 20 2a 20 64 65 70 65 6e 64 69 6e 67 20 6f 6e 20 24 6d 6f 64 65 2c 20 6d 65 74 61 64 .....*.depending.on.$mode,.metad
3d340 61 74 61 20 72 65 74 75 72 6e 73 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 76 61 6c 75 65 73 ata.returns.the.following.values
3d360 3a 0a 20 20 20 20 20 20 20 20 20 2a 0a 20 20 20 20 20 20 20 20 20 2a 20 2d 20 6d 6f 64 65 20 69 :..........*..........*.-.mode.i
3d380 73 20 66 61 6c 73 65 20 28 64 65 66 61 75 6c 74 29 3a 0a 20 20 20 20 20 20 20 20 20 2a 20 24 72 s.false.(default):..........*.$r
3d3a0 65 73 75 6c 74 5b 5d 3a 0a 20 20 20 20 20 20 20 20 20 2a 20 20 20 5b 30 5d 5b 22 74 61 62 6c 65 esult[]:..........*...[0]["table
3d3c0 22 5d 20 20 74 61 62 6c 65 20 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 2a 20 20 20 5b 30 5d 5b "]..table.name..........*...[0][
3d3e0 22 6e 61 6d 65 22 5d 20 20 20 66 69 65 6c 64 20 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 2a 20 "name"]...field.name..........*.
3d400 20 20 5b 30 5d 5b 22 74 79 70 65 22 5d 20 20 20 66 69 65 6c 64 20 74 79 70 65 0a 20 20 20 20 20 ..[0]["type"]...field.type......
3d420 20 20 20 20 2a 20 20 20 5b 30 5d 5b 22 6c 65 6e 22 5d 20 20 20 20 66 69 65 6c 64 20 6c 65 6e 67 ....*...[0]["len"]....field.leng
3d440 74 68 0a 20 20 20 20 20 20 20 20 20 2a 20 20 20 5b 30 5d 5b 22 66 6c 61 67 73 22 5d 20 20 66 69 th..........*...[0]["flags"]..fi
3d460 65 6c 64 20 66 6c 61 67 73 0a 20 20 20 20 20 20 20 20 20 2a 0a 20 20 20 20 20 20 20 20 20 2a 20 eld.flags..........*..........*.
3d480 2d 20 6d 6f 64 65 20 69 73 20 44 42 5f 54 41 42 4c 45 49 4e 46 4f 5f 4f 52 44 45 52 0a 20 20 20 -.mode.is.DB_TABLEINFO_ORDER....
3d4a0 20 20 20 20 20 20 2a 20 24 72 65 73 75 6c 74 5b 5d 3a 0a 20 20 20 20 20 20 20 20 20 2a 20 20 20 ......*.$result[]:..........*...
3d4c0 5b 22 6e 75 6d 5f 66 69 65 6c 64 73 22 5d 20 6e 75 6d 62 65 72 20 6f 66 20 6d 65 74 61 64 61 74 ["num_fields"].number.of.metadat
3d4e0 61 20 72 65 63 6f 72 64 73 0a 20 20 20 20 20 20 20 20 20 2a 20 20 20 5b 30 5d 5b 22 74 61 62 6c a.records..........*...[0]["tabl
3d500 65 22 5d 20 20 74 61 62 6c 65 20 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 2a 20 20 20 5b 30 5d e"]..table.name..........*...[0]
3d520 5b 22 6e 61 6d 65 22 5d 20 20 20 66 69 65 6c 64 20 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 2a ["name"]...field.name..........*
3d540 20 20 20 5b 30 5d 5b 22 74 79 70 65 22 5d 20 20 20 66 69 65 6c 64 20 74 79 70 65 0a 20 20 20 20 ...[0]["type"]...field.type.....
3d560 20 20 20 20 20 2a 20 20 20 5b 30 5d 5b 22 6c 65 6e 22 5d 20 20 20 20 66 69 65 6c 64 20 6c 65 6e .....*...[0]["len"]....field.len
3d580 67 74 68 0a 20 20 20 20 20 20 20 20 20 2a 20 20 20 5b 30 5d 5b 22 66 6c 61 67 73 22 5d 20 20 66 gth..........*...[0]["flags"]..f
3d5a0 69 65 6c 64 20 66 6c 61 67 73 0a 20 20 20 20 20 20 20 20 20 2a 20 20 20 5b 22 6f 72 64 65 72 22 ield.flags..........*...["order"
3d5c0 5d 5b 66 69 65 6c 64 20 6e 61 6d 65 5d 20 20 69 6e 64 65 78 20 6f 66 20 66 69 65 6c 64 20 6e 61 ][field.name]..index.of.field.na
3d5e0 6d 65 64 20 22 66 69 65 6c 64 20 6e 61 6d 65 22 0a 20 20 20 20 20 20 20 20 20 2a 20 20 20 54 68 med."field.name"..........*...Th
3d600 65 20 6c 61 73 74 20 6f 6e 65 20 69 73 20 75 73 65 64 2c 20 69 66 20 79 6f 75 20 68 61 76 65 20 e.last.one.is.used,.if.you.have.
3d620 61 20 66 69 65 6c 64 20 6e 61 6d 65 2c 20 62 75 74 20 6e 6f 20 69 6e 64 65 78 2e 0a 20 20 20 20 a.field.name,.but.no.index......
3d640 20 20 20 20 20 2a 20 20 20 54 65 73 74 3a 20 20 69 66 20 28 69 73 73 65 74 28 24 72 65 73 75 6c .....*...Test:..if.(isset($resul
3d660 74 5b 27 6d 65 74 61 27 5d 5b 27 6d 79 66 69 65 6c 64 27 5d 29 29 20 7b 20 2e 2e 2e 0a 20 20 20 t['meta']['myfield'])).{........
3d680 20 20 20 20 20 20 2a 0a 20 20 20 20 20 20 20 20 20 2a 20 2d 20 6d 6f 64 65 20 69 73 20 44 42 5f ......*..........*.-.mode.is.DB_
3d6a0 54 41 42 4c 45 49 4e 46 4f 5f 4f 52 44 45 52 54 41 42 4c 45 0a 20 20 20 20 20 20 20 20 20 2a 20 TABLEINFO_ORDERTABLE..........*.
3d6c0 20 20 20 74 68 65 20 73 61 6d 65 20 61 73 20 61 62 6f 76 65 2e 20 62 75 74 20 61 64 64 69 74 69 ...the.same.as.above..but.additi
3d6e0 6f 6e 61 6c 6c 79 0a 20 20 20 20 20 20 20 20 20 2a 20 20 20 5b 22 6f 72 64 65 72 74 61 62 6c 65 onally..........*...["ordertable
3d700 22 5d 5b 74 61 62 6c 65 20 6e 61 6d 65 5d 5b 66 69 65 6c 64 20 6e 61 6d 65 5d 20 69 6e 64 65 78 "][table.name][field.name].index
3d720 20 6f 66 20 66 69 65 6c 64 0a 20 20 20 20 20 20 20 20 20 2a 20 20 20 20 20 20 6e 61 6d 65 64 20 .of.field..........*......named.
3d740 22 66 69 65 6c 64 20 6e 61 6d 65 22 0a 20 20 20 20 20 20 20 20 20 2a 0a 20 20 20 20 20 20 20 20 "field.name"..........*.........
3d760 20 2a 20 20 20 20 20 20 74 68 69 73 20 69 73 2c 20 62 65 63 61 75 73 65 20 69 66 20 79 6f 75 20 .*......this.is,.because.if.you.
3d780 68 61 76 65 20 66 69 65 6c 64 73 20 66 72 6f 6d 20 64 69 66 66 65 72 65 6e 74 0a 20 20 20 20 20 have.fields.from.different......
3d7a0 20 20 20 20 2a 20 20 20 20 20 20 74 61 62 6c 65 73 20 77 69 74 68 20 74 68 65 20 73 61 6d 65 20 ....*......tables.with.the.same.
3d7c0 66 69 65 6c 64 20 6e 61 6d 65 20 2a 20 74 68 65 79 20 6f 76 65 72 72 69 64 65 20 65 61 63 68 0a field.name.*.they.override.each.
3d7e0 20 20 20 20 20 20 20 20 20 2a 20 20 20 20 20 20 6f 74 68 65 72 20 77 69 74 68 20 44 42 5f 54 41 .........*......other.with.DB_TA
3d800 42 4c 45 49 4e 46 4f 5f 4f 52 44 45 52 0a 20 20 20 20 20 20 20 20 20 2a 0a 20 20 20 20 20 20 20 BLEINFO_ORDER..........*........
3d820 20 20 2a 20 20 20 20 20 20 79 6f 75 20 63 61 6e 20 63 6f 6d 62 69 6e 65 20 44 42 5f 54 41 42 4c ..*......you.can.combine.DB_TABL
3d840 45 49 4e 46 4f 5f 4f 52 44 45 52 20 61 6e 64 0a 20 20 20 20 20 20 20 20 20 2a 20 20 20 20 20 20 EINFO_ORDER.and..........*......
3d860 44 42 5f 54 41 42 4c 45 49 4e 46 4f 5f 4f 52 44 45 52 54 41 42 4c 45 20 77 69 74 68 20 44 42 5f DB_TABLEINFO_ORDERTABLE.with.DB_
3d880 54 41 42 4c 45 49 4e 46 4f 5f 4f 52 44 45 52 20 7c 0a 20 20 20 20 20 20 20 20 20 2a 20 20 20 20 TABLEINFO_ORDER.|..........*....
3d8a0 20 20 44 42 5f 54 41 42 4c 45 49 4e 46 4f 5f 4f 52 44 45 52 54 41 42 4c 45 20 2a 20 6f 72 20 77 ..DB_TABLEINFO_ORDERTABLE.*.or.w
3d8c0 69 74 68 20 44 42 5f 54 41 42 4c 45 49 4e 46 4f 5f 46 55 4c 4c 0a 20 20 20 20 20 20 20 20 20 2a ith.DB_TABLEINFO_FULL..........*
3d8e0 2f 0a 0a 20 20 20 20 20 20 20 20 2f 2f 20 69 66 20 24 72 65 73 75 6c 74 20 69 73 20 61 20 73 74 /..........//.if.$result.is.a.st
3d900 72 69 6e 67 2c 20 74 68 65 6e 20 77 65 20 77 61 6e 74 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 61 ring,.then.we.want.information.a
3d920 62 6f 75 74 20 61 0a 20 20 20 20 20 20 20 20 2f 2f 20 74 61 62 6c 65 20 77 69 74 68 6f 75 74 20 bout.a.........//.table.without.
3d940 61 20 72 65 73 75 6c 74 73 65 74 0a 0a 20 20 20 20 20 20 20 20 69 66 20 28 69 73 5f 73 74 72 69 a.resultset..........if.(is_stri
3d960 6e 67 28 24 72 65 73 75 6c 74 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 69 64 20 3d ng($result)).{.............$id.=
3d980 20 40 70 67 5f 65 78 65 63 28 24 74 68 69 73 2d 3e 63 6f 6e 6e 65 63 74 69 6f 6e 2c 22 53 45 4c .@pg_exec($this->connection,"SEL
3d9a0 45 43 54 20 2a 20 46 52 4f 4d 20 24 72 65 73 75 6c 74 20 4c 49 4d 49 54 20 30 22 29 3b 0a 20 20 ECT.*.FROM.$result.LIMIT.0");...
3d9c0 20 20 20 20 20 20 20 20 20 20 69 66 20 28 65 6d 70 74 79 28 24 69 64 29 29 20 7b 0a 20 20 20 20 ..........if.(empty($id)).{.....
3d9e0 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 67 73 71 6c 52 ............return.$this->pgsqlR
3da00 61 69 73 65 45 72 72 6f 72 28 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 aiseError();.............}......
3da20 20 20 20 7d 20 65 6c 73 65 20 7b 20 2f 2f 20 65 6c 73 65 20 77 65 20 77 61 6e 74 20 69 6e 66 6f ...}.else.{.//.else.we.want.info
3da40 72 6d 61 74 69 6f 6e 20 61 62 6f 75 74 20 61 20 72 65 73 75 6c 74 73 65 74 0a 20 20 20 20 20 20 rmation.about.a.resultset.......
3da60 20 20 20 20 20 20 24 69 64 20 3d 20 24 72 65 73 75 6c 74 3b 0a 20 20 20 20 20 20 20 20 20 20 20 ......$id.=.$result;............
3da80 20 69 66 20 28 65 6d 70 74 79 28 24 69 64 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 .if.(empty($id)).{..............
3daa0 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 67 73 71 6c 52 61 69 73 65 45 72 72 6f 72 ...return.$this->pgsqlRaiseError
3dac0 28 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 ();.............}.........}.....
3dae0 20 20 20 20 20 24 63 6f 75 6e 74 20 3d 20 40 70 67 5f 6e 75 6d 66 69 65 6c 64 73 28 24 69 64 29 .....$count.=.@pg_numfields($id)
3db00 3b 0a 0a 20 20 20 20 20 20 20 20 2f 2f 20 6d 61 64 65 20 74 68 69 73 20 49 46 20 64 75 65 20 74 ;..........//.made.this.IF.due.t
3db20 6f 20 70 65 72 66 6f 72 6d 61 6e 63 65 20 28 6f 6e 65 20 69 66 20 69 73 20 66 61 73 74 65 72 20 o.performance.(one.if.is.faster.
3db40 74 68 61 6e 20 24 63 6f 75 6e 74 20 69 66 27 73 29 0a 20 20 20 20 20 20 20 20 69 66 20 28 65 6d than.$count.if's).........if.(em
3db60 70 74 79 28 24 6d 6f 64 65 29 29 20 7b 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 20 28 pty($mode)).{..............for.(
3db80 24 69 3d 30 3b 20 24 69 3c 24 63 6f 75 6e 74 3b 20 24 69 2b 2b 29 20 7b 0a 20 20 20 20 20 20 20 $i=0;.$i<$count;.$i++).{........
3dba0 20 20 20 20 20 20 20 20 20 24 72 65 73 5b 24 69 5d 5b 27 74 61 62 6c 65 27 5d 20 3d 20 28 69 73 .........$res[$i]['table'].=.(is
3dbc0 5f 73 74 72 69 6e 67 28 24 72 65 73 75 6c 74 29 29 20 3f 20 24 72 65 73 75 6c 74 20 3a 20 27 27 _string($result)).?.$result.:.''
3dbe0 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 72 65 73 5b 24 69 5d 5b 27 6e 61 6d 65 ;.................$res[$i]['name
3dc00 27 5d 20 20 3d 20 40 70 67 5f 66 69 65 6c 64 6e 61 6d 65 20 28 24 69 64 2c 20 24 69 29 3b 0a 20 ']..=.@pg_fieldname.($id,.$i);..
3dc20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 72 65 73 5b 24 69 5d 5b 27 74 79 70 65 27 5d 20 ...............$res[$i]['type'].
3dc40 20 3d 20 40 70 67 5f 66 69 65 6c 64 74 79 70 65 20 28 24 69 64 2c 20 24 69 29 3b 0a 20 20 20 20 .=.@pg_fieldtype.($id,.$i);.....
3dc60 20 20 20 20 20 20 20 20 20 20 20 20 24 72 65 73 5b 24 69 5d 5b 27 6c 65 6e 27 5d 20 20 20 3d 20 ............$res[$i]['len']...=.
3dc80 40 70 67 5f 66 69 65 6c 64 73 69 7a 65 20 28 24 69 64 2c 20 24 69 29 3b 0a 20 20 20 20 20 20 20 @pg_fieldsize.($id,.$i);........
3dca0 20 20 20 20 20 20 20 20 20 24 72 65 73 5b 24 69 5d 5b 27 66 6c 61 67 73 27 5d 20 3d 20 28 69 73 .........$res[$i]['flags'].=.(is
3dcc0 5f 73 74 72 69 6e 67 28 24 72 65 73 75 6c 74 29 29 20 3f 20 24 74 68 69 73 2d 3e 5f 70 67 46 69 _string($result)).?.$this->_pgFi
3dce0 65 6c 64 66 6c 61 67 73 28 24 69 64 2c 20 24 69 2c 20 24 72 65 73 75 6c 74 29 20 3a 20 27 27 3b eldflags($id,.$i,.$result).:.'';
3dd00 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b .............}..........}.else.{
3dd20 20 2f 2f 20 66 75 6c 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 72 65 73 5b 22 6e 75 6d 5f 66 .//.full.............$res["num_f
3dd40 69 65 6c 64 73 22 5d 3d 20 24 63 6f 75 6e 74 3b 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 66 6f ields"]=.$count;..............fo
3dd60 72 20 28 24 69 3d 30 3b 20 24 69 3c 24 63 6f 75 6e 74 3b 20 24 69 2b 2b 29 20 7b 0a 20 20 20 20 r.($i=0;.$i<$count;.$i++).{.....
3dd80 20 20 20 20 20 20 20 20 20 20 20 20 24 72 65 73 5b 24 69 5d 5b 27 74 61 62 6c 65 27 5d 20 3d 20 ............$res[$i]['table'].=.
3dda0 28 69 73 5f 73 74 72 69 6e 67 28 24 72 65 73 75 6c 74 29 29 20 3f 20 24 72 65 73 75 6c 74 20 3a (is_string($result)).?.$result.:
3ddc0 20 27 27 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 72 65 73 5b 24 69 5d 5b 27 6e .'';.................$res[$i]['n
3dde0 61 6d 65 27 5d 20 20 3d 20 40 70 67 5f 66 69 65 6c 64 6e 61 6d 65 20 28 24 69 64 2c 20 24 69 29 ame']..=.@pg_fieldname.($id,.$i)
3de00 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 72 65 73 5b 24 69 5d 5b 27 74 79 70 65 ;.................$res[$i]['type
3de20 27 5d 20 20 3d 20 40 70 67 5f 66 69 65 6c 64 74 79 70 65 20 28 24 69 64 2c 20 24 69 29 3b 0a 20 ']..=.@pg_fieldtype.($id,.$i);..
3de40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 72 65 73 5b 24 69 5d 5b 27 6c 65 6e 27 5d 20 20 ...............$res[$i]['len']..
3de60 20 3d 20 40 70 67 5f 66 69 65 6c 64 73 69 7a 65 20 28 24 69 64 2c 20 24 69 29 3b 0a 20 20 20 20 .=.@pg_fieldsize.($id,.$i);.....
3de80 20 20 20 20 20 20 20 20 20 20 20 20 24 72 65 73 5b 24 69 5d 5b 27 66 6c 61 67 73 27 5d 20 3d 20 ............$res[$i]['flags'].=.
3dea0 28 69 73 5f 73 74 72 69 6e 67 28 24 72 65 73 75 6c 74 29 29 20 3f 20 24 74 68 69 73 2d 3e 5f 70 (is_string($result)).?.$this->_p
3dec0 67 46 69 65 6c 64 46 6c 61 67 73 28 24 69 64 2c 20 24 69 2c 20 24 72 65 73 75 6c 74 29 20 3a 20 gFieldFlags($id,.$i,.$result).:.
3dee0 27 27 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 24 6d 6f 64 65 20 26 20 '';.................if.($mode.&.
3df00 44 42 5f 54 41 42 4c 45 49 4e 46 4f 5f 4f 52 44 45 52 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 DB_TABLEINFO_ORDER).{...........
3df20 20 20 20 20 20 20 20 20 20 20 24 72 65 73 5b 27 6f 72 64 65 72 27 5d 5b 24 72 65 73 5b 24 69 5d ..........$res['order'][$res[$i]
3df40 5b 27 6e 61 6d 65 27 5d 5d 20 3d 20 24 69 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ['name']].=.$i;.................
3df60 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 24 6d 6f 64 65 20 26 20 44 42 }.................if.($mode.&.DB
3df80 5f 54 41 42 4c 45 49 4e 46 4f 5f 4f 52 44 45 52 54 41 42 4c 45 29 20 7b 0a 20 20 20 20 20 20 20 _TABLEINFO_ORDERTABLE).{........
3dfa0 20 20 20 20 20 20 20 20 20 20 20 20 20 24 72 65 73 5b 27 6f 72 64 65 72 74 61 62 6c 65 27 5d 5b .............$res['ordertable'][
3dfc0 24 72 65 73 5b 24 69 5d 5b 27 74 61 62 6c 65 27 5d 5d 5b 24 72 65 73 5b 24 69 5d 5b 27 6e 61 6d $res[$i]['table']][$res[$i]['nam
3dfe0 65 27 5d 5d 20 3d 20 24 69 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 e']].=.$i;.................}....
3e000 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 2f 2f .........}.........}..........//
3e020 20 66 72 65 65 20 74 68 65 20 72 65 73 75 6c 74 20 6f 6e 6c 79 20 69 66 20 77 65 20 77 65 72 65 .free.the.result.only.if.we.were
3e040 20 63 61 6c 6c 65 64 20 6f 6e 20 61 20 74 61 62 6c 65 0a 20 20 20 20 20 20 20 20 69 66 20 28 69 .called.on.a.table.........if.(i
3e060 73 5f 73 74 72 69 6e 67 28 24 72 65 73 75 6c 74 29 20 26 26 20 69 73 5f 72 65 73 6f 75 72 63 65 s_string($result).&&.is_resource
3e080 28 24 69 64 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 40 70 67 5f 66 72 65 65 72 65 73 ($id)).{.............@pg_freeres
3e0a0 75 6c 74 28 24 69 64 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 72 65 74 75 ult($id);.........}.........retu
3e0c0 72 6e 20 24 72 65 73 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f rn.$res;.....}......//.}}}...../
3e0e0 2f 20 7b 7b 7b 20 67 65 74 54 61 62 6c 65 73 51 75 65 72 79 28 29 0a 0a 20 20 20 20 2f 2a 2a 0a /.{{{.getTablesQuery()....../**.
3e100 20 20 20 20 2a 20 52 65 74 75 72 6e 73 20 74 68 65 20 71 75 65 72 79 20 6e 65 65 64 65 64 20 74 ....*.Returns.the.query.needed.t
3e120 6f 20 67 65 74 20 73 6f 6d 65 20 62 61 63 6b 65 6e 64 20 69 6e 66 6f 0a 20 20 20 20 2a 20 40 70 o.get.some.backend.info.....*.@p
3e140 61 72 61 6d 20 73 74 72 69 6e 67 20 24 74 79 70 65 20 57 68 61 74 20 6b 69 6e 64 20 6f 66 20 69 aram.string.$type.What.kind.of.i
3e160 6e 66 6f 20 79 6f 75 20 77 61 6e 74 20 74 6f 20 72 65 74 72 69 65 76 65 0a 20 20 20 20 2a 20 40 nfo.you.want.to.retrieve.....*.@
3e180 72 65 74 75 72 6e 20 73 74 72 69 6e 67 20 54 68 65 20 53 51 4c 20 71 75 65 72 79 20 73 74 72 69 return.string.The.SQL.query.stri
3e1a0 6e 67 0a 20 20 20 20 2a 2f 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 70 65 63 69 61 ng.....*/.....function.getSpecia
3e1c0 6c 51 75 65 72 79 28 24 74 79 70 65 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 73 77 69 74 lQuery($type).....{.........swit
3e1e0 63 68 20 28 24 74 79 70 65 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 63 61 73 65 20 27 74 ch.($type).{.............case.'t
3e200 61 62 6c 65 73 27 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 73 71 6c 20 3d ables':.{.................$sql.=
3e220 20 22 53 45 4c 45 43 54 20 63 2e 72 65 6c 6e 61 6d 65 20 61 73 20 5c 22 4e 61 6d 65 5c 22 0a 20 ."SELECT.c.relname.as.\"Name\"..
3e240 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 46 52 4f 4d 20 70 67 5f 63 .......................FROM.pg_c
3e260 6c 61 73 73 20 63 2c 20 70 67 5f 75 73 65 72 20 75 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 lass.c,.pg_user.u...............
3e280 20 20 20 20 20 20 20 20 20 20 57 48 45 52 45 20 63 2e 72 65 6c 6f 77 6e 65 72 20 3d 20 75 2e 75 ..........WHERE.c.relowner.=.u.u
3e2a0 73 65 73 79 73 69 64 20 41 4e 44 20 63 2e 72 65 6c 6b 69 6e 64 20 3d 20 27 72 27 0a 20 20 20 20 sesysid.AND.c.relkind.=.'r'.....
3e2c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 41 4e 44 20 6e 6f 74 20 65 78 69 73 ....................AND.not.exis
3e2e0 74 73 20 28 73 65 6c 65 63 74 20 31 20 66 72 6f 6d 20 70 67 5f 76 69 65 77 73 20 77 68 65 72 65 ts.(select.1.from.pg_views.where
3e300 20 76 69 65 77 6e 61 6d 65 20 3d 20 63 2e 72 65 6c 6e 61 6d 65 29 0a 20 20 20 20 20 20 20 20 20 .viewname.=.c.relname)..........
3e320 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 41 4e 44 20 63 2e 72 65 6c 6e 61 6d 65 20 21 7e 20 ...............AND.c.relname.!~.
3e340 27 5e 70 67 5f 27 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 55 '^pg_'.........................U
3e360 4e 49 4f 4e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 53 45 4c NION.........................SEL
3e380 45 43 54 20 63 2e 72 65 6c 6e 61 6d 65 20 61 73 20 5c 22 4e 61 6d 65 5c 22 0a 20 20 20 20 20 20 ECT.c.relname.as.\"Name\".......
3e3a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 46 52 4f 4d 20 70 67 5f 63 6c 61 73 73 20 ..................FROM.pg_class.
3e3c0 63 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 57 48 45 52 45 20 c.........................WHERE.
3e3e0 63 2e 72 65 6c 6b 69 6e 64 20 3d 20 27 72 27 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 c.relkind.=.'r'.................
3e400 20 20 20 20 20 20 20 20 41 4e 44 20 6e 6f 74 20 65 78 69 73 74 73 20 28 73 65 6c 65 63 74 20 31 ........AND.not.exists.(select.1
3e420 20 66 72 6f 6d 20 70 67 5f 76 69 65 77 73 20 77 68 65 72 65 20 76 69 65 77 6e 61 6d 65 20 3d 20 .from.pg_views.where.viewname.=.
3e440 63 2e 72 65 6c 6e 61 6d 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 c.relname)......................
3e460 20 20 20 41 4e 44 20 6e 6f 74 20 65 78 69 73 74 73 20 28 73 65 6c 65 63 74 20 31 20 66 72 6f 6d ...AND.not.exists.(select.1.from
3e480 20 70 67 5f 75 73 65 72 20 77 68 65 72 65 20 75 73 65 73 79 73 69 64 20 3d 20 63 2e 72 65 6c 6f .pg_user.where.usesysid.=.c.relo
3e4a0 77 6e 65 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 41 4e wner).........................AN
3e4c0 44 20 63 2e 72 65 6c 6e 61 6d 65 20 21 7e 20 27 5e 70 67 5f 27 22 3b 0a 20 20 20 20 20 20 20 20 D.c.relname.!~.'^pg_'";.........
3e4e0 20 20 20 20 20 20 20 20 62 72 65 61 6b 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 ........break;.............}....
3e500 20 20 20 20 20 20 20 20 20 63 61 73 65 20 27 76 69 65 77 73 27 3a 20 7b 0a 20 20 20 20 20 20 20 .........case.'views':.{........
3e520 20 20 20 20 20 20 20 20 20 2f 2f 20 54 61 62 6c 65 20 63 6f 6c 73 3a 20 76 69 65 77 6e 61 6d 65 .........//.Table.cols:.viewname
3e540 20 7c 20 76 69 65 77 6f 77 6e 65 72 20 7c 20 64 65 66 69 6e 69 74 69 6f 6e 0a 20 20 20 20 20 20 .|.viewowner.|.definition.......
3e560 20 20 20 20 20 20 20 20 20 20 24 73 71 6c 20 3d 20 22 53 45 4c 45 43 54 20 76 69 65 77 6e 61 6d ..........$sql.=."SELECT.viewnam
3e580 65 20 46 52 4f 4d 20 70 67 5f 76 69 65 77 73 22 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e.FROM.pg_views";...............
3e5a0 20 20 62 72 65 61 6b 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 ..break;.............}..........
3e5c0 20 20 20 63 61 73 65 20 27 75 73 65 72 73 27 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ...case.'users':.{..............
3e5e0 20 20 20 2f 2f 20 63 6f 6c 73 3a 20 75 73 65 6e 61 6d 65 20 7c 75 73 65 73 79 73 69 64 7c 75 73 ...//.cols:.usename.|usesysid|us
3e600 65 63 72 65 61 74 65 64 62 7c 75 73 65 74 72 61 63 65 7c 75 73 65 73 75 70 65 72 7c 75 73 65 63 ecreatedb|usetrace|usesuper|usec
3e620 61 74 75 70 64 7c 70 61 73 73 77 64 20 20 7c 76 61 6c 75 6e 74 69 6c 0a 20 20 20 20 20 20 20 20 atupd|passwd..|valuntil.........
3e640 20 20 20 20 20 20 20 20 24 73 71 6c 20 3d 20 27 53 45 4c 45 43 54 20 75 73 65 6e 61 6d 65 20 46 ........$sql.=.'SELECT.usename.F
3e660 52 4f 4d 20 70 67 5f 75 73 65 72 27 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 72 ROM.pg_user';.................br
3e680 65 61 6b 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 63 eak;.............}.............c
3e6a0 61 73 65 20 27 64 61 74 61 62 61 73 65 73 27 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ase.'databases':.{..............
3e6c0 20 20 20 24 73 71 6c 20 3d 20 27 53 45 4c 45 43 54 20 64 61 74 6e 61 6d 65 20 46 52 4f 4d 20 70 ...$sql.=.'SELECT.datname.FROM.p
3e6e0 67 5f 64 61 74 61 62 61 73 65 27 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 72 65 g_database';.................bre
3e700 61 6b 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 63 61 ak;.............}.............ca
3e720 73 65 20 27 66 75 6e 63 74 69 6f 6e 73 27 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 se.'functions':.{...............
3e740 20 20 24 73 71 6c 20 3d 20 27 53 45 4c 45 43 54 20 70 72 6f 6e 61 6d 65 20 46 52 4f 4d 20 70 67 ..$sql.=.'SELECT.proname.FROM.pg
3e760 5f 70 72 6f 63 27 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 72 65 61 6b 3b 0a 20 _proc';.................break;..
3e780 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 64 65 66 61 75 6c 74 ...........}.............default
3e7a0 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 6e 75 6c 6c 3b 0a 20 :.................return.null;..
3e7c0 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 73 71 6c 3b 0a 20 20 .......}.........return.$sql;...
3e7e0 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 0a 7d 0a 0a 2f 2f 20 4c 6f 63 61 6c 20 76 61 72 ..}......//.}}}..}..//.Local.var
3e800 69 61 62 6c 65 73 3a 0a 2f 2f 20 74 61 62 2d 77 69 64 74 68 3a 20 34 0a 2f 2f 20 63 2d 62 61 73 iables:.//.tab-width:.4.//.c-bas
3e820 69 63 2d 6f 66 66 73 65 74 3a 20 34 0a 2f 2f 20 45 6e 64 3a 0a 3f 3e 0a 00 00 00 00 00 00 00 00 ic-offset:.4.//.End:.?>.........
3e840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3e860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3e880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3e8a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3e8c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3e8e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3e900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3e920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3e940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3e960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3e980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3e9a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3e9c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3e9e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3ea00 44 42 2d 31 2e 35 2e 30 52 43 31 2f 44 42 2f 73 79 62 61 73 65 2e 70 68 70 00 00 00 00 00 00 00 DB-1.5.0RC1/DB/sybase.php.......
3ea20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3ea40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3ea60 00 00 00 00 31 30 30 36 34 34 20 00 20 20 20 37 36 34 20 00 20 20 20 31 34 34 20 00 20 20 20 20 ....100644.....764.....144......
3ea80 20 20 32 36 32 36 37 20 20 37 36 37 35 31 31 31 37 35 30 20 20 31 30 30 30 34 20 00 00 00 00 00 ..26267..7675111750..10004......
3eaa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3eac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3eae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3eb00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3eb20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3eb40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3eb60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3eb80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3eba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3ebc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3ebe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3ec00 3c 3f 70 68 70 0a 2f 2a 20 76 69 6d 3a 20 73 65 74 20 65 78 70 61 6e 64 74 61 62 20 74 61 62 73 <?php./*.vim:.set.expandtab.tabs
3ec20 74 6f 70 3d 34 20 73 68 69 66 74 77 69 64 74 68 3d 34 20 66 6f 6c 64 6d 65 74 68 6f 64 3d 6d 61 top=4.shiftwidth=4.foldmethod=ma
3ec40 72 6b 65 72 3a 20 2a 2f 0a 2f 2f 20 2b 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d rker:.*/.//.+-------------------
3ec60 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
3ec80 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2b 0a 2f 2f 20 7c 20 50 48 50 20 56 65 -------------------+.//.|.PHP.Ve
3eca0 72 73 69 6f 6e 20 34 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 rsion.4.........................
3ecc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c ...............................|
3ece0 0a 2f 2f 20 2b 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d .//.+---------------------------
3ed00 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
3ed20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2b 0a 2f 2f 20 7c 20 43 6f 70 79 72 69 67 68 74 20 28 63 29 20 -----------+.//.|.Copyright.(c).
3ed40 31 39 39 37 2d 32 30 30 33 20 54 68 65 20 50 48 50 20 47 72 6f 75 70 20 20 20 20 20 20 20 20 20 1997-2003.The.PHP.Group.........
3ed60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 2f 2f 20 2b 2d 2d 2d .......................|.//.+---
3ed80 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
3eda0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
3edc0 2d 2d 2d 2b 0a 2f 2f 20 7c 20 54 68 69 73 20 73 6f 75 72 63 65 20 66 69 6c 65 20 69 73 20 73 75 ---+.//.|.This.source.file.is.su
3ede0 62 6a 65 63 74 20 74 6f 20 76 65 72 73 69 6f 6e 20 32 2e 30 32 20 6f 66 20 74 68 65 20 50 48 50 bject.to.version.2.02.of.the.PHP
3ee00 20 6c 69 63 65 6e 73 65 2c 20 20 20 20 20 20 7c 0a 2f 2f 20 7c 20 74 68 61 74 20 69 73 20 62 75 .license,......|.//.|.that.is.bu
3ee20 6e 64 6c 65 64 20 77 69 74 68 20 74 68 69 73 20 70 61 63 6b 61 67 65 20 69 6e 20 74 68 65 20 66 ndled.with.this.package.in.the.f
3ee40 69 6c 65 20 4c 49 43 45 4e 53 45 2c 20 61 6e 64 20 69 73 20 20 20 20 20 20 20 20 7c 0a 2f 2f 20 ile.LICENSE,.and.is........|.//.
3ee60 7c 20 61 76 61 69 6c 61 62 6c 65 20 61 74 20 74 68 72 6f 75 67 68 20 74 68 65 20 77 6f 72 6c 64 |.available.at.through.the.world
3ee80 2d 77 69 64 65 2d 77 65 62 20 61 74 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -wide-web.at....................
3eea0 20 20 20 20 20 20 20 7c 0a 2f 2f 20 7c 20 68 74 74 70 3a 2f 2f 77 77 77 2e 70 68 70 2e 6e 65 74 .......|.//.|.http://www.php.net
3eec0 2f 6c 69 63 65 6e 73 65 2f 32 5f 30 32 2e 74 78 74 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 /license/2_02.txt...............
3eee0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 2f 2f 20 7c 20 49 66 20 79 6f 75 ...................|.//.|.If.you
3ef00 20 64 69 64 20 6e 6f 74 20 72 65 63 65 69 76 65 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 50 .did.not.receive.a.copy.of.the.P
3ef20 48 50 20 6c 69 63 65 6e 73 65 20 61 6e 64 20 61 72 65 20 75 6e 61 62 6c 65 20 74 6f 20 20 20 7c HP.license.and.are.unable.to...|
3ef40 0a 2f 2f 20 7c 20 6f 62 74 61 69 6e 20 69 74 20 74 68 72 6f 75 67 68 20 74 68 65 20 77 6f 72 6c .//.|.obtain.it.through.the.worl
3ef60 64 2d 77 69 64 65 2d 77 65 62 2c 20 70 6c 65 61 73 65 20 73 65 6e 64 20 61 20 6e 6f 74 65 20 74 d-wide-web,.please.send.a.note.t
3ef80 6f 20 20 20 20 20 20 20 20 20 20 7c 0a 2f 2f 20 7c 20 6c 69 63 65 6e 73 65 40 70 68 70 2e 6e 65 o..........|.//.|.license@php.ne
3efa0 74 20 73 6f 20 77 65 20 63 61 6e 20 6d 61 69 6c 20 79 6f 75 20 61 20 63 6f 70 79 20 69 6d 6d 65 t.so.we.can.mail.you.a.copy.imme
3efc0 64 69 61 74 65 6c 79 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 2f 2f 20 2b 2d 2d 2d diately................|.//.+---
3efe0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
3f000 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
3f020 2d 2d 2d 2b 0a 2f 2f 20 7c 20 41 75 74 68 6f 72 73 3a 20 53 74 65 72 6c 69 6e 67 20 48 75 67 68 ---+.//.|.Authors:.Sterling.Hugh
3f040 65 73 20 3c 73 74 65 72 6c 69 6e 67 40 70 68 70 2e 6e 65 74 3e 20 20 20 20 20 20 20 20 20 20 20 es.<sterling@php.net>...........
3f060 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 2f 2f 20 7c 20 20 20 20 20 20 20 20 20 20 41 ...............|.//.|..........A
3f080 6e 74 f4 6e 69 6f 20 43 61 72 6c 6f 73 20 56 65 6e e2 6e 63 69 6f 20 4a fa 6e 69 6f 72 20 3c 66 nt.nio.Carlos.Ven.ncio.J.nior.<f
3f0a0 6c 6f 72 69 70 61 40 70 68 70 2e 6e 65 74 3e 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 2f 2f 20 loripa@php.net>............|.//.
3f0c0 2b 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d +-------------------------------
3f0e0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
3f100 2d 2d 2d 2d 2d 2d 2d 2b 0a 2f 2f 0a 2f 2f 20 24 49 64 3a 20 73 79 62 61 73 65 2e 70 68 70 2c 76 -------+.//.//.$Id:.sybase.php,v
3f120 20 31 2e 31 30 20 32 30 30 33 2f 30 36 2f 32 31 20 31 37 3a 32 30 3a 34 30 20 63 6f 78 20 45 78 .1.10.2003/06/21.17:20:40.cox.Ex
3f140 70 20 24 0a 2f 2f 0a 2f 2f 20 44 61 74 61 62 61 73 65 20 69 6e 64 65 70 65 6e 64 65 6e 74 20 71 p.$.//.//.Database.independent.q
3f160 75 65 72 79 20 69 6e 74 65 72 66 61 63 65 20 64 65 66 69 6e 69 74 69 6f 6e 20 66 6f 72 20 50 48 uery.interface.definition.for.PH
3f180 50 27 73 20 53 79 62 61 73 65 0a 2f 2f 20 65 78 74 65 6e 73 69 6f 6e 2e 0a 2f 2f 0a 0a 72 65 71 P's.Sybase.//.extension..//..req
3f1a0 75 69 72 65 5f 6f 6e 63 65 20 27 44 42 2f 63 6f 6d 6d 6f 6e 2e 70 68 70 27 3b 0a 0a 63 6c 61 73 uire_once.'DB/common.php';..clas
3f1c0 73 20 44 42 5f 73 79 62 61 73 65 20 65 78 74 65 6e 64 73 20 44 42 5f 63 6f 6d 6d 6f 6e 0a 7b 0a s.DB_sybase.extends.DB_common.{.
3f1e0 20 20 20 20 2f 2f 20 7b 7b 7b 20 70 72 6f 70 65 72 74 69 65 73 0a 0a 20 20 20 20 76 61 72 20 24 ....//.{{{.properties......var.$
3f200 63 6f 6e 6e 65 63 74 69 6f 6e 3b 0a 20 20 20 20 76 61 72 20 24 70 68 70 74 79 70 65 2c 20 24 64 connection;.....var.$phptype,.$d
3f220 62 73 79 6e 74 61 78 3b 0a 20 20 20 20 76 61 72 20 24 70 72 65 70 61 72 65 5f 74 6f 6b 65 6e 73 bsyntax;.....var.$prepare_tokens
3f240 20 3d 20 61 72 72 61 79 28 29 3b 0a 20 20 20 20 76 61 72 20 24 70 72 65 70 61 72 65 5f 74 79 70 .=.array();.....var.$prepare_typ
3f260 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f es.=.array();......//.}}}.....//
3f280 20 7b 7b 7b 20 63 6f 6e 73 74 72 75 63 74 6f 72 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a .{{{.constructor....../**......*
3f2a0 20 44 42 5f 73 79 62 61 73 65 20 63 6f 6e 73 74 72 75 63 74 6f 72 2e 0a 20 20 20 20 20 2a 0a 20 .DB_sybase.constructor.......*..
3f2c0 20 20 20 20 2a 20 40 61 63 63 65 73 73 20 70 75 62 6c 69 63 0a 20 20 20 20 20 2a 2f 0a 20 20 20 ....*.@access.public......*/....
3f2e0 20 66 75 6e 63 74 69 6f 6e 20 44 42 5f 73 79 62 61 73 65 28 29 0a 20 20 20 20 7b 0a 20 20 20 20 .function.DB_sybase().....{.....
3f300 20 20 20 20 24 74 68 69 73 2d 3e 44 42 5f 63 6f 6d 6d 6f 6e 28 29 3b 0a 20 20 20 20 20 20 20 20 ....$this->DB_common();.........
3f320 24 74 68 69 73 2d 3e 70 68 70 74 79 70 65 20 3d 20 27 73 79 62 61 73 65 27 3b 0a 20 20 20 20 20 $this->phptype.=.'sybase';......
3f340 20 20 20 24 74 68 69 73 2d 3e 64 62 73 79 6e 74 61 78 20 3d 20 27 73 79 62 61 73 65 27 3b 0a 20 ...$this->dbsyntax.=.'sybase';..
3f360 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 66 65 61 74 75 72 65 73 20 3d 20 61 72 72 61 79 28 0a .......$this->features.=.array(.
3f380 20 20 20 20 20 20 20 20 20 20 20 20 27 70 72 65 70 61 72 65 27 20 3d 3e 20 66 61 6c 73 65 2c 0a ............'prepare'.=>.false,.
3f3a0 20 20 20 20 20 20 20 20 20 20 20 20 27 70 63 6f 6e 6e 65 63 74 27 20 3d 3e 20 74 72 75 65 2c 0a ............'pconnect'.=>.true,.
3f3c0 20 20 20 20 20 20 20 20 20 20 20 20 27 74 72 61 6e 73 61 63 74 69 6f 6e 73 27 20 3d 3e 20 66 61 ............'transactions'.=>.fa
3f3e0 6c 73 65 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 27 6c 69 6d 69 74 27 20 3d 3e 20 27 65 6d 75 lse,.............'limit'.=>.'emu
3f400 6c 61 74 65 27 0a 20 20 20 20 20 20 20 20 29 3b 0a 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e late'.........);.........$this->
3f420 65 72 72 6f 72 63 6f 64 65 5f 6d 61 70 20 3d 20 61 72 72 61 79 28 0a 20 20 20 20 20 20 20 20 20 errorcode_map.=.array(..........
3f440 20 20 20 31 30 32 20 20 20 3d 3e 20 44 42 5f 45 52 52 4f 52 5f 53 59 4e 54 41 58 2c 0a 20 20 20 ...102...=>.DB_ERROR_SYNTAX,....
3f460 20 20 20 20 20 20 20 20 20 31 30 35 20 20 20 3d 3e 20 44 42 5f 45 52 52 4f 52 5f 53 59 4e 54 41 .........105...=>.DB_ERROR_SYNTA
3f480 58 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 31 35 36 20 20 20 3d 3e 20 44 42 5f 45 52 52 4f 52 X,.............156...=>.DB_ERROR
3f4a0 5f 53 59 4e 54 41 58 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 32 30 38 20 20 20 3d 3e 20 44 42 _SYNTAX,.............208...=>.DB
3f4c0 5f 45 52 52 4f 52 5f 4e 4f 53 55 43 48 54 41 42 4c 45 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 _ERROR_NOSUCHTABLE,.............
3f4e0 32 35 37 20 20 20 3d 3e 20 44 42 5f 45 52 52 4f 52 5f 49 4e 56 41 4c 49 44 5f 4e 55 4d 42 45 52 257...=>.DB_ERROR_INVALID_NUMBER
3f500 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 33 37 30 31 20 20 3d 3e 20 44 42 5f 45 52 52 4f 52 5f ,.............3701..=>.DB_ERROR_
3f520 4e 4f 53 55 43 48 54 41 42 4c 45 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 31 30 33 30 34 20 3d NOSUCHTABLE,.............10304.=
3f540 3e 20 44 42 5f 45 52 52 4f 52 5f 41 43 43 45 53 53 5f 56 49 4f 4c 41 54 49 4f 4e 2c 0a 20 20 20 >.DB_ERROR_ACCESS_VIOLATION,....
3f560 20 20 20 20 20 20 20 20 20 31 30 33 33 30 20 3d 3e 20 44 42 5f 45 52 52 4f 52 5f 41 43 43 45 53 .........10330.=>.DB_ERROR_ACCES
3f580 53 5f 56 49 4f 4c 41 54 49 4f 4e 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 31 30 33 33 31 20 3d S_VIOLATION,.............10331.=
3f5a0 3e 20 44 42 5f 45 52 52 4f 52 5f 41 43 43 45 53 53 5f 56 49 4f 4c 41 54 49 4f 4e 0a 20 20 20 20 >.DB_ERROR_ACCESS_VIOLATION.....
3f5c0 20 20 20 20 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 ....);.....}......//.}}}.....//.
3f5e0 7b 7b 7b 20 63 6f 6e 6e 65 63 74 28 29 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 43 6f {{{.connect()....../**......*.Co
3f600 6e 6e 65 63 74 20 74 6f 20 61 20 64 61 74 61 62 61 73 65 20 61 6e 64 20 6c 6f 67 20 69 6e 20 61 nnect.to.a.database.and.log.in.a
3f620 73 20 74 68 65 20 73 70 65 63 69 66 69 65 64 20 75 73 65 72 2e 0a 20 20 20 20 20 2a 0a 20 20 20 s.the.specified.user.......*....
3f640 20 20 2a 20 40 70 61 72 61 6d 20 24 64 73 6e 20 74 68 65 20 64 61 74 61 20 73 6f 75 72 63 65 20 ..*.@param.$dsn.the.data.source.
3f660 6e 61 6d 65 20 28 73 65 65 20 44 42 3a 3a 70 61 72 73 65 44 53 4e 20 66 6f 72 20 73 79 6e 74 61 name.(see.DB::parseDSN.for.synta
3f680 78 29 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 24 70 65 72 73 69 73 74 65 6e 74 20 28 6f 70 x)......*.@param.$persistent.(op
3f6a0 74 69 6f 6e 61 6c 29 20 77 68 65 74 68 65 72 20 74 68 65 20 63 6f 6e 6e 65 63 74 69 6f 6e 20 73 tional).whether.the.connection.s
3f6c0 68 6f 75 6c 64 0a 20 20 20 20 20 2a 20 20 20 20 20 20 20 20 62 65 20 70 65 72 73 69 73 74 65 6e hould......*........be.persisten
3f6e0 74 0a 20 20 20 20 20 2a 20 40 61 63 63 65 73 73 20 70 75 62 6c 69 63 0a 20 20 20 20 20 2a 20 40 t......*.@access.public......*.@
3f700 72 65 74 75 72 6e 20 69 6e 74 20 44 42 5f 4f 4b 20 6f 6e 20 73 75 63 63 65 73 73 2c 20 61 20 44 return.int.DB_OK.on.success,.a.D
3f720 42 20 65 72 72 6f 72 20 6f 6e 20 66 61 69 6c 75 72 65 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 66 B.error.on.failure......*/.....f
3f740 75 6e 63 74 69 6f 6e 20 63 6f 6e 6e 65 63 74 28 24 64 73 6e 69 6e 66 6f 2c 20 24 70 65 72 73 69 unction.connect($dsninfo,.$persi
3f760 73 74 65 6e 74 20 3d 20 66 61 6c 73 65 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 69 66 20 stent.=.false).....{.........if.
3f780 28 21 44 42 3a 3a 61 73 73 65 72 74 45 78 74 65 6e 73 69 6f 6e 28 27 73 79 62 61 73 65 27 29 20 (!DB::assertExtension('sybase').
3f7a0 26 26 20 21 44 42 3a 3a 61 73 73 65 72 74 45 78 74 65 6e 73 69 6f 6e 28 27 73 79 62 61 73 65 5f &&.!DB::assertExtension('sybase_
3f7c0 63 74 27 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e ct')).............return.$this->
3f7e0 72 61 69 73 65 45 72 72 6f 72 28 44 42 5f 45 52 52 4f 52 5f 45 58 54 45 4e 53 49 4f 4e 5f 4e 4f raiseError(DB_ERROR_EXTENSION_NO
3f800 54 5f 46 4f 55 4e 44 29 3b 0a 0a 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 64 73 6e 20 3d 20 T_FOUND);..........$this->dsn.=.
3f820 24 64 73 6e 69 6e 66 6f 3b 0a 20 20 20 20 20 20 20 20 24 75 73 65 72 20 3d 20 24 64 73 6e 69 6e $dsninfo;.........$user.=.$dsnin
3f840 66 6f 5b 27 75 73 65 72 6e 61 6d 65 27 5d 3b 0a 20 20 20 20 20 20 20 20 24 70 77 20 20 20 3d 20 fo['username'];.........$pw...=.
3f860 24 64 73 6e 69 6e 66 6f 5b 27 70 61 73 73 77 6f 72 64 27 5d 3b 0a 0a 20 20 20 20 20 20 20 20 24 $dsninfo['password'];..........$
3f880 69 6e 74 65 72 66 61 63 65 20 3d 20 24 64 73 6e 69 6e 66 6f 5b 27 68 6f 73 74 73 70 65 63 27 5d interface.=.$dsninfo['hostspec']
3f8a0 20 3f 20 24 64 73 6e 69 6e 66 6f 5b 27 68 6f 73 74 73 70 65 63 27 5d 20 3a 20 27 6c 6f 63 61 6c .?.$dsninfo['hostspec'].:.'local
3f8c0 68 6f 73 74 27 3b 0a 20 20 20 20 20 20 20 20 24 63 6f 6e 6e 65 63 74 5f 66 75 6e 63 74 69 6f 6e host';.........$connect_function
3f8e0 20 3d 20 24 70 65 72 73 69 73 74 65 6e 74 20 3f 20 27 73 79 62 61 73 65 5f 70 63 6f 6e 6e 65 63 .=.$persistent.?.'sybase_pconnec
3f900 74 27 20 3a 20 27 73 79 62 61 73 65 5f 63 6f 6e 6e 65 63 74 27 3b 0a 0a 20 20 20 20 20 20 20 20 t'.:.'sybase_connect';..........
3f920 69 66 20 28 24 69 6e 74 65 72 66 61 63 65 20 26 26 20 24 75 73 65 72 20 26 26 20 24 70 77 29 20 if.($interface.&&.$user.&&.$pw).
3f940 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 63 6f 6e 6e 20 3d 20 24 63 6f 6e 6e 65 63 74 5f 66 {.............$conn.=.$connect_f
3f960 75 6e 63 74 69 6f 6e 28 24 69 6e 74 65 72 66 61 63 65 2c 20 24 75 73 65 72 2c 20 24 70 77 29 3b unction($interface,.$user,.$pw);
3f980 0a 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 63 .........}.else.{.............$c
3f9a0 6f 6e 6e 20 3d 20 46 41 4c 53 45 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 onn.=.FALSE;.........}..........
3f9c0 69 66 20 28 21 24 63 6f 6e 6e 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e if.(!$conn).{.............return
3f9e0 20 24 74 68 69 73 2d 3e 72 61 69 73 65 45 72 72 6f 72 28 44 42 5f 45 52 52 4f 52 5f 43 4f 4e 4e .$this->raiseError(DB_ERROR_CONN
3fa00 45 43 54 5f 46 41 49 4c 45 44 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 ECT_FAILED);.........}..........
3fa20 24 74 68 69 73 2d 3e 63 6f 6e 6e 65 63 74 69 6f 6e 20 3d 20 24 63 6f 6e 6e 3b 0a 20 20 20 20 20 $this->connection.=.$conn;......
3fa40 20 20 20 72 65 74 75 72 6e 20 44 42 5f 4f 4b 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d ...return.DB_OK;.....}......//.}
3fa60 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 64 69 73 63 6f 6e 6e 65 63 74 28 29 0a 0a 20 20 20 20 }}.....//.{{{.disconnect()......
3fa80 2f 2a 2a 0a 20 20 20 20 20 2a 20 4c 6f 67 20 6f 75 74 20 61 6e 64 20 64 69 73 63 6f 6e 6e 65 63 /**......*.Log.out.and.disconnec
3faa0 74 20 66 72 6f 6d 20 74 68 65 20 64 61 74 61 62 61 73 65 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 t.from.the.database.......*.....
3fac0 20 2a 20 40 61 63 63 65 73 73 20 70 75 62 6c 69 63 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 .*.@access.public......*......*.
3fae0 40 72 65 74 75 72 6e 20 62 6f 6f 6c 20 54 52 55 45 20 6f 6e 20 73 75 63 63 65 73 73 2c 20 46 41 @return.bool.TRUE.on.success,.FA
3fb00 4c 53 45 20 69 66 20 6e 6f 74 20 63 6f 6e 6e 65 63 74 65 64 2e 0a 20 20 20 20 20 2a 2f 0a 20 20 LSE.if.not.connected.......*/...
3fb20 20 20 66 75 6e 63 74 69 6f 6e 20 64 69 73 63 6f 6e 6e 65 63 74 28 29 0a 20 20 20 20 7b 0a 20 20 ..function.disconnect().....{...
3fb40 20 20 20 20 20 20 24 72 65 74 20 3d 20 40 73 79 62 61 73 65 5f 63 6c 6f 73 65 28 24 74 68 69 73 ......$ret.=.@sybase_close($this
3fb60 2d 3e 63 6f 6e 6e 65 63 74 69 6f 6e 29 3b 0a 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 63 6f ->connection);.........$this->co
3fb80 6e 6e 65 63 74 69 6f 6e 20 3d 20 6e 75 6c 6c 3b 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 nnection.=.null;.........return.
3fba0 24 72 65 74 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b $ret;.....}......//.}}}.....//.{
3fbc0 7b 7b 20 65 72 72 6f 72 4e 61 74 69 76 65 28 29 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a {{.errorNative()....../**......*
3fbe0 20 47 65 74 20 74 68 65 20 6c 61 73 74 20 73 65 72 76 65 72 20 65 72 72 6f 72 20 6d 65 73 73 67 .Get.the.last.server.error.messg
3fc00 65 20 28 69 66 20 61 6e 79 29 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 72 65 74 75 72 6e e.(if.any)......*......*.@return
3fc20 20 73 74 72 69 6e 67 20 73 79 62 61 73 65 20 6c 61 73 74 20 65 72 72 6f 72 20 6d 65 73 73 61 67 .string.sybase.last.error.messag
3fc40 65 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 65 72 72 6f 72 4e 61 74 69 e......*/.....function.errorNati
3fc60 76 65 28 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 73 79 62 61 73 65 ve().....{.........return.sybase
3fc80 5f 67 65 74 5f 6c 61 73 74 5f 6d 65 73 73 61 67 65 28 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 _get_last_message();.....}......
3fca0 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 65 72 72 6f 72 43 6f 64 65 28 29 0a 0a 20 //.}}}.....//.{{{.errorCode()...
3fcc0 20 20 20 66 75 6e 63 74 69 6f 6e 20 65 72 72 6f 72 43 6f 64 65 28 24 65 72 72 6f 72 6d 73 67 20 ...function.errorCode($errormsg.
3fce0 3d 20 27 27 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 73 74 61 74 69 63 20 24 65 72 72 6f =.'').....{.........static.$erro
3fd00 72 5f 72 65 67 65 78 70 73 3b 0a 20 20 20 20 20 20 20 20 69 66 20 28 65 6d 70 74 79 28 24 65 72 r_regexps;.........if.(empty($er
3fd20 72 6f 72 5f 72 65 67 65 78 70 73 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 65 72 72 ror_regexps)).{.............$err
3fd40 6f 72 5f 72 65 67 65 78 70 73 20 3d 20 61 72 72 61 79 28 0a 20 20 20 20 20 20 20 20 20 20 20 20 or_regexps.=.array(.............
3fd60 20 20 20 20 27 2f 49 6e 63 6f 72 72 65 63 74 20 73 79 6e 74 61 78 20 6e 65 61 72 20 5b 5c 22 5c ....'/Incorrect.syntax.near.[\"\
3fd80 27 5d 2e 2b 5b 5c 22 5c 27 5d 5c 2e 2f 27 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 '].+[\"\']\./'..................
3fda0 20 20 20 3d 3e 20 31 30 32 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 2f 5e 55 6e ...=>.102,.................'/^Un
3fdc0 63 6c 6f 73 65 64 20 71 75 6f 74 65 20 62 65 66 6f 72 65 20 74 68 65 20 63 68 61 72 61 63 74 65 closed.quote.before.the.characte
3fde0 72 20 73 74 72 69 6e 67 20 5b 5c 22 5c 27 5d 2e 2a 5b 5c 22 5c 27 5d 5c 2e 2f 27 0a 20 20 20 20 r.string.[\"\'].*[\"\']\./'.....
3fe00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3d 3e 20 31 30 35 2c 0a 20 20 20 20 20 20 20 20 ................=>.105,.........
3fe20 20 20 20 20 20 20 20 20 27 2f 49 6e 63 6f 72 72 65 63 74 20 73 79 6e 74 61 78 20 6e 65 61 72 20 ........'/Incorrect.syntax.near.
3fe40 74 68 65 20 6b 65 79 77 6f 72 64 20 5b 5c 22 5c 27 5d 2e 2b 5b 5c 22 5c 27 5d 5c 2e 2f 27 0a 20 the.keyword.[\"\'].+[\"\']\./'..
3fe60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3d 3e 20 31 35 36 2c 0a 20 20 20 20 20 ...................=>.156,......
3fe80 20 20 20 20 20 20 20 20 20 20 20 27 2f 49 6d 70 6c 69 63 69 74 20 63 6f 6e 76 65 72 73 69 6f 6e ...........'/Implicit.conversion
3fea0 20 66 72 6f 6d 20 64 61 74 61 74 79 70 65 20 5b 5c 22 5c 27 5d 2e 2b 5b 5c 22 5c 27 5d 20 74 6f .from.datatype.[\"\'].+[\"\'].to
3fec0 20 5b 5c 22 5c 27 5d 2e 2b 5b 5c 22 5c 27 5d 20 69 73 20 6e 6f 74 20 61 6c 6c 6f 77 65 64 5c 2e .[\"\'].+[\"\'].is.not.allowed\.
3fee0 2f 27 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3d 3e 20 32 35 37 2c 0a 20 /'.....................=>.257,..
3ff00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 2f 43 61 6e 6e 6f 74 20 64 72 6f 70 20 74 68 65 ...............'/Cannot.drop.the
3ff20 20 74 61 62 6c 65 20 5b 5c 22 5c 27 5d 2e 2b 5b 5c 22 5c 27 5d 2c 20 62 65 63 61 75 73 65 20 69 .table.[\"\'].+[\"\'],.because.i
3ff40 74 20 64 6f 65 73 6e 5c 27 74 20 65 78 69 73 74 20 69 6e 20 74 68 65 20 73 79 73 74 65 6d 20 63 t.doesn\'t.exist.in.the.system.c
3ff60 61 74 61 6c 6f 67 73 5c 2e 2f 27 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 atalogs\./'.....................
3ff80 3d 3e 20 33 37 30 31 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 2f 4f 6e 6c 79 20 =>.3701,.................'/Only.
3ffa0 74 68 65 20 6f 77 6e 65 72 20 6f 66 20 6f 62 6a 65 63 74 20 5b 5c 22 5c 27 5d 2e 2b 5b 5c 22 5c the.owner.of.object.[\"\'].+[\"\
3ffc0 27 5d 20 6f 72 20 61 20 75 73 65 72 20 77 69 74 68 20 53 79 73 74 65 6d 20 41 64 6d 69 6e 69 73 '].or.a.user.with.System.Adminis
3ffe0 74 72 61 74 6f 72 20 5c 28 53 41 5c 29 20 72 6f 6c 65 20 63 61 6e 20 72 75 6e 20 74 68 69 73 20 trator.\(SA\).role.can.run.this.
40000 63 6f 6d 6d 61 6e 64 5c 2e 2f 27 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 command\./'.....................
40020 3d 3e 20 31 30 33 30 34 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 2f 5e 2e 2b 20 =>.10304,.................'/^.+.
40040 70 65 72 6d 69 73 73 69 6f 6e 20 64 65 6e 69 65 64 20 6f 6e 20 6f 62 6a 65 63 74 20 2e 2b 2c 20 permission.denied.on.object..+,.
40060 64 61 74 61 62 61 73 65 20 2e 2b 2c 20 6f 77 6e 65 72 20 2e 2b 2f 27 0a 20 20 20 20 20 20 20 20 database..+,.owner..+/'.........
40080 20 20 20 20 20 20 20 20 20 20 20 20 3d 3e 20 31 30 33 33 30 2c 0a 20 20 20 20 20 20 20 20 20 20 ............=>.10330,...........
400a0 20 20 20 20 20 20 27 2f 5e 2e 2a 20 70 65 72 6d 69 73 73 69 6f 6e 20 64 65 6e 69 65 64 2c 20 64 ......'/^.*.permission.denied,.d
400c0 61 74 61 62 61 73 65 20 2e 2b 2c 20 6f 77 6e 65 72 20 2e 2b 2f 27 0a 20 20 20 20 20 20 20 20 20 atabase..+,.owner..+/'..........
400e0 20 20 20 20 20 20 20 20 20 20 20 3d 3e 20 31 30 33 33 31 2c 0a 20 20 20 20 20 20 20 20 20 20 20 ...........=>.10331,............
40100 20 20 20 20 20 27 2f 5b 5e 2e 2a 5d 20 6e 6f 74 20 66 6f 75 6e 64 5c 2e 2f 27 0a 20 20 20 20 20 .....'/[^.*].not.found\./'......
40120 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3d 3e 20 32 30 38 0a 20 20 20 20 20 20 20 20 20 20 ...............=>.208...........
40140 20 20 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 77 68 69 6c 65 20 28 6c 69 ..);.........}.........while.(li
40160 73 74 28 24 72 65 67 65 78 70 2c 20 24 63 6f 64 65 29 20 3d 20 65 61 63 68 28 24 65 72 72 6f 72 st($regexp,.$code).=.each($error
40180 5f 72 65 67 65 78 70 73 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 70 72 65 _regexps)).{.............if.(pre
401a0 67 5f 6d 61 74 63 68 28 24 72 65 67 65 78 70 2c 20 24 65 72 72 6f 72 6d 73 67 29 29 20 7b 0a 20 g_match($regexp,.$errormsg)).{..
401c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 65 72 72 6f 72 5b 27 63 6f 64 65 27 5d 20 3d 20 ...............$error['code'].=.
401e0 24 63 6f 64 65 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 7d 0a 20 $code;.............}.........}..
40200 20 20 20 20 20 20 20 24 65 72 72 6f 72 5b 27 75 73 65 72 69 6e 66 6f 27 5d 20 3d 20 24 65 72 72 .......$error['userinfo'].=.$err
40220 6f 72 6d 73 67 3b 0a 20 20 20 20 20 20 20 20 69 66 20 28 69 73 73 65 74 28 24 65 72 72 6f 72 5b ormsg;.........if.(isset($error[
40240 27 63 6f 64 65 27 5d 29 20 26 26 20 69 73 73 65 74 28 24 74 68 69 73 2d 3e 65 72 72 6f 72 63 6f 'code']).&&.isset($this->errorco
40260 64 65 5f 6d 61 70 5b 24 65 72 72 6f 72 5b 27 63 6f 64 65 27 5d 5d 29 29 20 7b 0a 20 20 20 20 20 de_map[$error['code']])).{......
40280 20 20 20 20 20 20 20 24 65 72 72 6f 72 5b 27 6d 65 73 73 61 67 65 27 5d 20 3d 20 24 74 68 69 73 .......$error['message'].=.$this
402a0 2d 3e 65 72 72 6f 72 63 6f 64 65 5f 6d 61 70 5b 24 65 72 72 6f 72 5b 27 63 6f 64 65 27 5d 5d 3b ->errorcode_map[$error['code']];
402c0 0a 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 .........}.else.{.............re
402e0 74 75 72 6e 20 44 42 5f 45 52 52 4f 52 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 turn.DB_ERROR;.........}........
40300 20 72 65 74 75 72 6e 20 24 65 72 72 6f 72 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d .return.$error;.....}......//.}}
40320 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 73 79 62 61 73 65 52 61 69 73 65 45 72 72 6f 72 28 29 0a }.....//.{{{.sybaseRaiseError().
40340 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 73 79 62 61 73 65 52 61 69 73 65 45 72 72 6f 72 28 24 .....function.sybaseRaiseError($
40360 65 72 72 6e 6f 20 3d 20 6e 75 6c 6c 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 24 6e 61 74 errno.=.null).....{.........$nat
40380 69 76 65 20 3d 20 24 74 68 69 73 2d 3e 65 72 72 6f 72 4e 61 74 69 76 65 28 29 3b 0a 20 20 20 20 ive.=.$this->errorNative();.....
403a0 20 20 20 20 24 65 72 72 6f 72 20 3d 20 24 74 68 69 73 2d 3e 65 72 72 6f 72 43 6f 64 65 28 24 6e ....$error.=.$this->errorCode($n
403c0 61 74 69 76 65 29 3b 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 61 ative);.........return.$this->ra
403e0 69 73 65 45 72 72 6f 72 28 24 65 72 72 6f 72 5b 27 63 6f 64 65 27 5d 2c 20 6e 75 6c 6c 2c 20 6e iseError($error['code'],.null,.n
40400 75 6c 6c 2c 20 24 65 72 72 6f 72 5b 27 75 73 65 72 69 6e 66 6f 27 5d 2c 20 24 65 72 72 6f 72 5b ull,.$error['userinfo'],.$error[
40420 27 6d 65 73 73 61 67 65 27 5d 29 3b 0a 20 20 20 20 7d 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 'message']);.....}.....//.}}}...
40440 20 20 2f 2f 20 7b 7b 7b 20 73 69 6d 70 6c 65 51 75 65 72 79 28 29 0a 0a 20 20 20 20 2f 2a 2a 0a ..//.{{{.simpleQuery()....../**.
40460 20 20 20 20 20 2a 20 53 65 6e 64 20 61 20 71 75 65 72 79 20 74 6f 20 53 79 62 61 73 65 20 61 6e .....*.Send.a.query.to.Sybase.an
40480 64 20 72 65 74 75 72 6e 20 74 68 65 20 72 65 73 75 6c 74 73 20 61 73 20 61 20 53 79 62 61 73 65 d.return.the.results.as.a.Sybase
404a0 20 72 65 73 6f 75 72 63 65 0a 20 20 20 20 20 2a 20 69 64 65 6e 74 69 66 69 65 72 2e 0a 20 20 20 .resource......*.identifier.....
404c0 20 20 2a 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 74 68 65 20 53 51 4c 20 71 75 65 72 79 0a ..*......*.@param.the.SQL.query.
404e0 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 61 63 63 65 73 73 20 70 75 62 6c 69 63 0a 20 20 20 .....*......*.@access.public....
40500 20 20 2a 0a 20 20 20 20 20 2a 20 40 72 65 74 75 72 6e 20 6d 69 78 65 64 20 72 65 74 75 72 6e 73 ..*......*.@return.mixed.returns
40520 20 61 20 76 61 6c 69 64 20 53 79 62 61 73 65 20 72 65 73 75 6c 74 20 66 6f 72 20 73 75 63 63 65 .a.valid.Sybase.result.for.succe
40540 73 73 66 75 6c 20 53 45 4c 45 43 54 0a 20 20 20 20 20 2a 20 71 75 65 72 69 65 73 2c 20 44 42 5f ssful.SELECT......*.queries,.DB_
40560 4f 4b 20 66 6f 72 20 6f 74 68 65 72 20 73 75 63 63 65 73 73 66 75 6c 20 71 75 65 72 69 65 73 2e OK.for.other.successful.queries.
40580 20 20 41 20 44 42 20 65 72 72 6f 72 20 69 73 0a 20 20 20 20 20 2a 20 72 65 74 75 72 6e 65 64 20 ..A.DB.error.is......*.returned.
405a0 6f 6e 20 66 61 69 6c 75 72 65 2e 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e on.failure.......*/.....function
405c0 20 73 69 6d 70 6c 65 51 75 65 72 79 28 24 71 75 65 72 79 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 .simpleQuery($query).....{......
405e0 20 20 20 24 74 68 69 73 2d 3e 6c 61 73 74 5f 71 75 65 72 79 20 3d 20 24 71 75 65 72 79 3b 0a 20 ...$this->last_query.=.$query;..
40600 20 20 20 20 20 20 20 24 71 75 65 72 79 20 3d 20 24 74 68 69 73 2d 3e 6d 6f 64 69 66 79 51 75 65 .......$query.=.$this->modifyQue
40620 72 79 28 24 71 75 65 72 79 29 3b 0a 20 20 20 20 20 20 20 20 24 72 65 73 75 6c 74 20 3d 20 40 73 ry($query);.........$result.=.@s
40640 79 62 61 73 65 5f 71 75 65 72 79 28 24 71 75 65 72 79 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 6e 65 ybase_query($query,.$this->conne
40660 63 74 69 6f 6e 29 3b 0a 20 20 20 20 20 20 20 20 69 66 20 28 21 24 72 65 73 75 6c 74 29 20 7b 0a ction);.........if.(!$result).{.
40680 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 79 62 61 73 65 ............return.$this->sybase
406a0 52 61 69 73 65 45 72 72 6f 72 28 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 RaiseError();.........}.........
406c0 69 66 20 28 69 73 5f 72 65 73 6f 75 72 63 65 28 24 72 65 73 75 6c 74 29 29 20 7b 0a 20 20 20 20 if.(is_resource($result)).{.....
406e0 20 20 20 20 20 20 20 20 24 6e 75 6d 72 6f 77 73 20 3d 20 24 74 68 69 73 2d 3e 6e 75 6d 52 6f 77 ........$numrows.=.$this->numRow
40700 73 28 24 72 65 73 75 6c 74 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 69 73 5f 6f s($result);.............if.(is_o
40720 62 6a 65 63 74 28 24 6e 75 6d 72 6f 77 73 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 bject($numrows)).{..............
40740 20 20 20 72 65 74 75 72 6e 20 24 6e 75 6d 72 6f 77 73 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 ...return.$numrows;.............
40760 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 6e 75 6d 5f 72 6f 77 73 5b 24 72 }.............$this->num_rows[$r
40780 65 73 75 6c 74 5d 20 3d 20 24 6e 75 6d 72 6f 77 73 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 esult].=.$numrows;.............r
407a0 65 74 75 72 6e 20 24 72 65 73 75 6c 74 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 eturn.$result;.........}........
407c0 20 2f 2f 20 44 65 74 65 72 6d 69 6e 65 20 77 68 69 63 68 20 71 75 65 72 69 65 73 20 74 68 61 74 .//.Determine.which.queries.that
407e0 20 73 68 6f 75 6c 64 20 72 65 74 75 72 6e 20 64 61 74 61 2c 20 61 6e 64 20 77 68 69 63 68 0a 20 .should.return.data,.and.which..
40800 20 20 20 20 20 20 20 2f 2f 20 73 68 6f 75 6c 64 20 72 65 74 75 72 6e 20 61 6e 20 65 72 72 6f 72 .......//.should.return.an.error
40820 20 63 6f 64 65 20 6f 6e 6c 79 2e 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 44 42 3a 3a 69 .code.only..........return.DB::i
40840 73 4d 61 6e 69 70 28 24 71 75 65 72 79 29 20 3f 20 44 42 5f 4f 4b 20 3a 20 24 72 65 73 75 6c 74 sManip($query).?.DB_OK.:.$result
40860 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 6e ;.....}......//.}}}.....//.{{{.n
40880 65 78 74 52 65 73 75 6c 74 28 29 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 4d 6f 76 65 extResult()....../**......*.Move
408a0 20 74 68 65 20 69 6e 74 65 72 6e 61 6c 20 73 79 62 61 73 65 20 72 65 73 75 6c 74 20 70 6f 69 6e .the.internal.sybase.result.poin
408c0 74 65 72 20 74 6f 20 74 68 65 20 6e 65 78 74 20 61 76 61 69 6c 61 62 6c 65 20 72 65 73 75 6c 74 ter.to.the.next.available.result
408e0 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 61 20 76 61 6c 69 64 20 73 79 ......*......*.@param.a.valid.sy
40900 62 61 73 65 20 72 65 73 75 6c 74 20 72 65 73 6f 75 72 63 65 0a 20 20 20 20 20 2a 0a 20 20 20 20 base.result.resource......*.....
40920 20 2a 20 40 61 63 63 65 73 73 20 70 75 62 6c 69 63 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 .*.@access.public......*......*.
40940 40 72 65 74 75 72 6e 20 74 72 75 65 20 69 66 20 61 20 72 65 73 75 6c 74 20 69 73 20 61 76 61 69 @return.true.if.a.result.is.avai
40960 6c 61 62 6c 65 20 6f 74 68 65 72 77 69 73 65 20 72 65 74 75 72 6e 20 66 61 6c 73 65 0a 20 20 20 lable.otherwise.return.false....
40980 20 20 2a 2f 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 6e 65 78 74 52 65 73 75 6c 74 28 24 72 65 ..*/.....function.nextResult($re
409a0 73 75 6c 74 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 66 61 6c 73 65 sult).....{.........return.false
409c0 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 66 ;.....}......//.}}}.....//.{{{.f
409e0 65 74 63 68 49 6e 74 6f 28 29 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 46 65 74 63 68 etchInto()....../**......*.Fetch
40a00 20 61 20 72 6f 77 20 61 6e 64 20 69 6e 73 65 72 74 20 74 68 65 20 64 61 74 61 20 69 6e 74 6f 20 .a.row.and.insert.the.data.into.
40a20 61 6e 20 65 78 69 73 74 69 6e 67 20 61 72 72 61 79 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a an.existing.array.......*......*
40a40 20 40 70 61 72 61 6d 20 24 72 65 73 75 6c 74 20 53 79 62 61 73 65 20 72 65 73 75 6c 74 20 69 64 .@param.$result.Sybase.result.id
40a60 65 6e 74 69 66 69 65 72 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 24 61 72 72 20 28 72 65 66 entifier......*.@param.$arr.(ref
40a80 65 72 65 6e 63 65 29 20 61 72 72 61 79 20 77 68 65 72 65 20 64 61 74 61 20 66 72 6f 6d 20 74 68 erence).array.where.data.from.th
40aa0 65 20 72 6f 77 20 69 73 20 73 74 6f 72 65 64 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 24 66 e.row.is.stored......*.@param.$f
40ac0 65 74 63 68 6d 6f 64 65 20 68 6f 77 20 74 68 65 20 61 72 72 61 79 20 64 61 74 61 20 73 68 6f 75 etchmode.how.the.array.data.shou
40ae0 6c 64 20 62 65 20 69 6e 64 65 78 65 64 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 20 20 24 72 ld.be.indexed......*.@param...$r
40b00 6f 77 6e 75 6d 20 74 68 65 20 72 6f 77 20 6e 75 6d 62 65 72 20 74 6f 20 66 65 74 63 68 0a 20 20 ownum.the.row.number.to.fetch...
40b20 20 20 20 2a 20 40 61 63 63 65 73 73 20 70 75 62 6c 69 63 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 ...*.@access.public......*......
40b40 2a 20 40 72 65 74 75 72 6e 20 69 6e 74 20 44 42 5f 4f 4b 20 6f 6e 20 73 75 63 63 65 73 73 2c 20 *.@return.int.DB_OK.on.success,.
40b60 61 20 6e 75 6c 6c 20 6f 6e 20 66 61 69 6c 75 72 65 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 66 75 a.null.on.failure......*/.....fu
40b80 6e 63 74 69 6f 6e 20 66 65 74 63 68 49 6e 74 6f 28 24 72 65 73 75 6c 74 2c 20 26 24 61 72 2c 20 nction.fetchInto($result,.&$ar,.
40ba0 24 66 65 74 63 68 6d 6f 64 65 2c 20 24 72 6f 77 6e 75 6d 3d 6e 75 6c 6c 29 0a 20 20 20 20 7b 0a $fetchmode,.$rownum=null).....{.
40bc0 20 20 20 20 20 20 20 20 69 66 20 28 24 72 6f 77 6e 75 6d 20 21 3d 3d 20 6e 75 6c 6c 29 20 7b 0a ........if.($rownum.!==.null).{.
40be0 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 21 40 73 79 62 61 73 65 5f 64 61 74 61 5f 73 65 ............if.(!@sybase_data_se
40c00 65 6b 28 24 72 65 73 75 6c 74 2c 20 24 72 6f 77 6e 75 6d 29 29 20 7b 0a 20 20 20 20 20 20 20 20 ek($result,.$rownum)).{.........
40c20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 6e 75 6c 6c 3b 0a 20 20 20 20 20 20 20 20 20 20 20 ........return.null;............
40c40 20 7d 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 24 61 72 20 3d 20 28 24 66 65 74 .}.........}.........$ar.=.($fet
40c60 63 68 6d 6f 64 65 20 26 20 44 42 5f 46 45 54 43 48 4d 4f 44 45 5f 41 53 53 4f 43 29 20 3f 20 40 chmode.&.DB_FETCHMODE_ASSOC).?.@
40c80 73 79 62 61 73 65 5f 66 65 74 63 68 5f 61 72 72 61 79 28 24 72 65 73 75 6c 74 29 20 3a 20 40 73 sybase_fetch_array($result).:.@s
40ca0 79 62 61 73 65 5f 66 65 74 63 68 5f 72 6f 77 28 24 72 65 73 75 6c 74 29 3b 0a 20 20 20 20 20 20 ybase_fetch_row($result);.......
40cc0 20 20 69 66 20 28 21 24 61 72 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 72 65 70 ..if.(!$ar).{.............//.rep
40ce0 6f 72 74 65 64 20 6e 6f 74 20 77 6f 72 6b 20 61 73 20 73 65 65 6d 73 20 74 68 61 74 20 73 79 62 orted.not.work.as.seems.that.syb
40d00 61 73 65 5f 67 65 74 5f 6c 61 73 74 5f 6d 65 73 73 61 67 65 28 29 0a 20 20 20 20 20 20 20 20 20 ase_get_last_message()..........
40d20 20 20 20 2f 2f 20 61 6c 77 61 79 73 20 72 65 74 75 72 6e 20 61 20 6d 65 73 73 61 67 65 20 68 65 ...//.always.return.a.message.he
40d40 72 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 69 66 20 28 24 65 72 72 6d 73 67 20 3d 20 73 re.............//if.($errmsg.=.s
40d60 79 62 61 73 65 5f 67 65 74 5f 6c 61 73 74 5f 6d 65 73 73 61 67 65 28 29 29 20 7b 0a 20 20 20 20 ybase_get_last_message()).{.....
40d80 20 20 20 20 20 20 20 20 2f 2f 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 79 62 61 ........//....return.$this->syba
40da0 73 65 52 61 69 73 65 45 72 72 6f 72 28 24 65 72 72 6d 73 67 29 3b 0a 20 20 20 20 20 20 20 20 20 seRaiseError($errmsg);..........
40dc0 20 20 20 2f 2f 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 ...//}.else.{.................re
40de0 74 75 72 6e 20 6e 75 6c 6c 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 7d 0a 20 20 20 20 20 turn.null;.............//}......
40e00 20 20 20 7d 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 44 42 5f 4f 4b 3b 0a 20 20 20 20 7d ...}.........return.DB_OK;.....}
40e20 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 66 72 65 65 52 65 73 75 ......//.}}}.....//.{{{.freeResu
40e40 6c 74 28 29 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 46 72 65 65 20 74 68 65 20 69 6e lt()....../**......*.Free.the.in
40e60 74 65 72 6e 61 6c 20 72 65 73 6f 75 72 63 65 73 20 61 73 73 6f 63 69 61 74 65 64 20 77 69 74 68 ternal.resources.associated.with
40e80 20 24 72 65 73 75 6c 74 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 24 .$result.......*......*.@param.$
40ea0 72 65 73 75 6c 74 20 53 79 62 61 73 65 20 72 65 73 75 6c 74 20 69 64 65 6e 74 69 66 69 65 72 20 result.Sybase.result.identifier.
40ec0 6f 72 20 44 42 20 73 74 61 74 65 6d 65 6e 74 20 69 64 65 6e 74 69 66 69 65 72 0a 20 20 20 20 20 or.DB.statement.identifier......
40ee0 2a 0a 20 20 20 20 20 2a 20 40 61 63 63 65 73 73 20 70 75 62 6c 69 63 0a 20 20 20 20 20 2a 0a 20 *......*.@access.public......*..
40f00 20 20 20 20 2a 20 40 72 65 74 75 72 6e 20 62 6f 6f 6c 20 54 52 55 45 20 6f 6e 20 73 75 63 63 65 ....*.@return.bool.TRUE.on.succe
40f20 73 73 2c 20 46 41 4c 53 45 20 69 66 20 24 72 65 73 75 6c 74 20 69 73 20 69 6e 76 61 6c 69 64 0a ss,.FALSE.if.$result.is.invalid.
40f40 20 20 20 20 20 2a 2f 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 66 72 65 65 52 65 73 75 6c 74 28 .....*/.....function.freeResult(
40f60 24 72 65 73 75 6c 74 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 69 66 20 28 69 73 5f 72 65 $result).....{.........if.(is_re
40f80 73 6f 75 72 63 65 28 24 72 65 73 75 6c 74 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 source($result)).{.............r
40fa0 65 74 75 72 6e 20 40 73 79 62 61 73 65 5f 66 72 65 65 5f 72 65 73 75 6c 74 28 24 72 65 73 75 6c eturn.@sybase_free_result($resul
40fc0 74 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 69 66 20 28 21 69 73 73 65 74 t);.........}.........if.(!isset
40fe0 28 24 74 68 69 73 2d 3e 70 72 65 70 61 72 65 5f 74 6f 6b 65 6e 73 5b 28 69 6e 74 29 24 72 65 73 ($this->prepare_tokens[(int)$res
41000 75 6c 74 5d 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 66 61 6c 73 ult])).{.............return.fals
41020 65 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 75 6e 73 65 74 28 24 74 68 69 73 e;.........}.........unset($this
41040 2d 3e 70 72 65 70 61 72 65 5f 74 6f 6b 65 6e 73 5b 28 69 6e 74 29 24 72 65 73 75 6c 74 5d 29 3b ->prepare_tokens[(int)$result]);
41060 0a 20 20 20 20 20 20 20 20 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 70 72 65 70 61 72 65 5f 74 79 .........unset($this->prepare_ty
41080 70 65 73 5b 28 69 6e 74 29 24 72 65 73 75 6c 74 5d 29 3b 0a 20 20 20 20 20 20 20 20 72 65 74 75 pes[(int)$result]);.........retu
410a0 72 6e 20 74 72 75 65 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f rn.true;.....}......//.}}}...../
410c0 2f 20 7b 7b 7b 20 6e 75 6d 43 6f 6c 73 28 29 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 /.{{{.numCols()....../**......*.
410e0 47 65 74 20 74 68 65 20 6e 75 6d 62 65 72 20 6f 66 20 63 6f 6c 75 6d 6e 73 20 69 6e 20 61 20 72 Get.the.number.of.columns.in.a.r
41100 65 73 75 6c 74 20 73 65 74 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 esult.set.......*......*.@param.
41120 24 72 65 73 75 6c 74 20 53 79 62 61 73 65 20 72 65 73 75 6c 74 20 69 64 65 6e 74 69 66 69 65 72 $result.Sybase.result.identifier
41140 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 61 63 63 65 73 73 20 70 75 62 6c 69 63 0a 20 20 ......*......*.@access.public...
41160 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 72 65 74 75 72 6e 20 69 6e 74 20 74 68 65 20 6e 75 6d 62 ...*......*.@return.int.the.numb
41180 65 72 20 6f 66 20 63 6f 6c 75 6d 6e 73 20 70 65 72 20 72 6f 77 20 69 6e 20 24 72 65 73 75 6c 74 er.of.columns.per.row.in.$result
411a0 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 6e 75 6d 43 6f 6c 73 28 24 72 ......*/.....function.numCols($r
411c0 65 73 75 6c 74 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 24 63 6f 6c 73 20 3d 20 40 73 79 esult).....{.........$cols.=.@sy
411e0 62 61 73 65 5f 6e 75 6d 5f 66 69 65 6c 64 73 28 24 72 65 73 75 6c 74 29 3b 0a 20 20 20 20 20 20 base_num_fields($result);.......
41200 20 20 69 66 20 28 21 24 63 6f 6c 73 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 ..if.(!$cols).{.............retu
41220 72 6e 20 24 74 68 69 73 2d 3e 73 79 62 61 73 65 52 61 69 73 65 45 72 72 6f 72 28 29 3b 0a 20 20 rn.$this->sybaseRaiseError();...
41240 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 63 6f 6c 73 3b 0a 20 20 ......}.........return.$cols;...
41260 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 6e 75 6d 52 6f ..}......//.}}}.....//.{{{.numRo
41280 77 73 28 29 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 47 65 74 20 74 68 65 20 6e 75 6d ws()....../**......*.Get.the.num
412a0 62 65 72 20 6f 66 20 72 6f 77 73 20 69 6e 20 61 20 72 65 73 75 6c 74 20 73 65 74 2e 0a 20 20 20 ber.of.rows.in.a.result.set.....
412c0 20 20 2a 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 24 72 65 73 75 6c 74 20 53 79 62 61 73 65 ..*......*.@param.$result.Sybase
412e0 20 72 65 73 75 6c 74 20 69 64 65 6e 74 69 66 69 65 72 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a .result.identifier......*......*
41300 20 40 61 63 63 65 73 73 20 70 75 62 6c 69 63 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 72 .@access.public......*......*.@r
41320 65 74 75 72 6e 20 69 6e 74 20 74 68 65 20 6e 75 6d 62 65 72 20 6f 66 20 72 6f 77 73 20 69 6e 20 eturn.int.the.number.of.rows.in.
41340 24 72 65 73 75 6c 74 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 6e 75 6d $result......*/.....function.num
41360 52 6f 77 73 28 24 72 65 73 75 6c 74 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 24 72 6f 77 Rows($result).....{.........$row
41380 73 20 3d 20 40 73 79 62 61 73 65 5f 6e 75 6d 5f 72 6f 77 73 28 24 72 65 73 75 6c 74 29 3b 0a 20 s.=.@sybase_num_rows($result);..
413a0 20 20 20 20 20 20 20 69 66 20 28 24 72 6f 77 73 20 3d 3d 3d 20 6e 75 6c 6c 29 20 7b 0a 20 20 20 .......if.($rows.===.null).{....
413c0 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 79 62 61 73 65 52 61 69 .........return.$this->sybaseRai
413e0 73 65 45 72 72 6f 72 28 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 72 65 74 seError();.........}.........ret
41400 75 72 6e 20 24 72 6f 77 73 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 urn.$rows;.....}......//.}}}....
41420 20 2f 2f 20 7b 7b 7b 20 61 66 66 65 63 74 65 64 52 6f 77 73 28 29 0a 0a 20 20 20 20 2f 2a 2a 0a .//.{{{.affectedRows()....../**.
41440 20 20 20 20 20 2a 20 47 65 74 73 20 74 68 65 20 6e 75 6d 62 65 72 20 6f 66 20 72 6f 77 73 20 61 .....*.Gets.the.number.of.rows.a
41460 66 66 65 63 74 65 64 20 62 79 20 74 68 65 20 64 61 74 61 20 6d 61 6e 69 70 75 6c 61 74 69 6f 6e ffected.by.the.data.manipulation
41480 0a 20 20 20 20 20 2a 20 71 75 65 72 79 2e 20 20 46 6f 72 20 6f 74 68 65 72 20 71 75 65 72 69 65 ......*.query...For.other.querie
414a0 73 2c 20 74 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 72 65 74 75 72 6e 73 20 30 2e 0a 20 20 20 20 s,.this.function.returns.0......
414c0 20 2a 0a 20 20 20 20 20 2a 20 40 72 65 74 75 72 6e 20 6e 75 6d 62 65 72 20 6f 66 20 72 6f 77 73 .*......*.@return.number.of.rows
414e0 20 61 66 66 65 63 74 65 64 20 62 79 20 74 68 65 20 6c 61 73 74 20 71 75 65 72 79 0a 20 20 20 20 .affected.by.the.last.query.....
41500 20 2a 2f 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 61 66 66 65 63 74 65 64 52 6f 77 73 28 29 0a .*/.....function.affectedRows().
41520 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 69 66 20 28 44 42 3a 3a 69 73 4d 61 6e 69 70 28 24 74 ....{.........if.(DB::isManip($t
41540 68 69 73 2d 3e 6c 61 73 74 5f 71 75 65 72 79 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 his->last_query)).{.............
41560 24 72 65 73 75 6c 74 20 3d 20 40 73 79 62 61 73 65 5f 61 66 66 65 63 74 65 64 5f 72 6f 77 73 28 $result.=.@sybase_affected_rows(
41580 24 74 68 69 73 2d 3e 63 6f 6e 6e 65 63 74 69 6f 6e 29 3b 0a 20 20 20 20 20 20 20 20 7d 20 65 6c $this->connection);.........}.el
415a0 73 65 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 72 65 73 75 6c 74 20 3d 20 30 3b 0a 20 20 se.{.............$result.=.0;...
415c0 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 72 65 73 75 6c 74 3b 0a ......}.........return.$result;.
415e0 20 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 67 65 .....}......//.}}}.....//.{{{.ge
41600 74 53 70 65 63 69 61 6c 51 75 65 72 79 28 29 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 2a 20 52 tSpecialQuery()....../**.....*.R
41620 65 74 75 72 6e 73 20 74 68 65 20 71 75 65 72 79 20 6e 65 65 64 65 64 20 74 6f 20 67 65 74 20 73 eturns.the.query.needed.to.get.s
41640 6f 6d 65 20 62 61 63 6b 65 6e 64 20 69 6e 66 6f 0a 20 20 20 20 2a 20 40 70 61 72 61 6d 20 73 74 ome.backend.info.....*.@param.st
41660 72 69 6e 67 20 24 74 79 70 65 20 57 68 61 74 20 6b 69 6e 64 20 6f 66 20 69 6e 66 6f 20 79 6f 75 ring.$type.What.kind.of.info.you
41680 20 77 61 6e 74 20 74 6f 20 72 65 74 72 69 65 76 65 0a 20 20 20 20 2a 20 40 72 65 74 75 72 6e 20 .want.to.retrieve.....*.@return.
416a0 73 74 72 69 6e 67 20 54 68 65 20 53 51 4c 20 71 75 65 72 79 20 73 74 72 69 6e 67 0a 20 20 20 20 string.The.SQL.query.string.....
416c0 2a 2f 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 70 65 63 69 61 6c 51 75 65 72 79 28 */.....function.getSpecialQuery(
416e0 24 74 79 70 65 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 73 77 69 74 63 68 20 28 24 74 79 $type).....{.........switch.($ty
41700 70 65 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 63 61 73 65 20 27 74 61 62 6c 65 73 27 3a pe).{.............case.'tables':
41720 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 73 71 6c 20 3d 20 22 73 65 6c 65 63 74 20 .................$sql.=."select.
41740 6e 61 6d 65 20 66 72 6f 6d 20 73 79 73 6f 62 6a 65 63 74 73 20 77 68 65 72 65 20 74 79 70 65 20 name.from.sysobjects.where.type.
41760 3d 20 27 55 27 20 6f 72 64 65 72 20 62 79 20 6e 61 6d 65 22 3b 0a 20 20 20 20 20 20 20 20 20 20 =.'U'.order.by.name";...........
41780 20 20 20 20 20 20 62 72 65 61 6b 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 63 61 73 65 20 27 76 ......break;.............case.'v
417a0 69 65 77 73 27 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 73 71 6c 20 3d 20 22 73 iews':.................$sql.=."s
417c0 65 6c 65 63 74 20 6e 61 6d 65 20 66 72 6f 6d 20 73 79 73 6f 62 6a 65 63 74 73 20 77 68 65 72 65 elect.name.from.sysobjects.where
417e0 20 74 79 70 65 20 3d 20 27 56 27 22 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 72 .type.=.'V'";.................br
41800 65 61 6b 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 64 65 66 61 75 6c 74 3a 0a 20 20 20 20 20 20 eak;.............default:.......
41820 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 6e 75 6c 6c 3b 0a 20 20 20 20 20 20 20 20 7d ..........return.null;.........}
41840 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 73 71 6c 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 .........return.$sql;.....}.....
41860 20 2f 2f 20 7d 7d 7d 0a 0a 7d 0a 0a 2f 2a 0a 20 2a 20 4c 6f 63 61 6c 20 76 61 72 69 61 62 6c 65 .//.}}}..}../*..*.Local.variable
41880 73 3a 0a 20 2a 20 74 61 62 2d 77 69 64 74 68 3a 20 34 0a 20 2a 20 63 2d 62 61 73 69 63 2d 6f 66 s:..*.tab-width:.4..*.c-basic-of
418a0 66 73 65 74 3a 20 34 0a 20 2a 20 45 6e 64 3a 0a 20 2a 2f 0a 3f 3e 0a 00 00 00 00 00 00 00 00 00 fset:.4..*.End:..*/.?>..........
418c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
418e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
41900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
41920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
41940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
41960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
41980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
419a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
419c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
419e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
41a00 44 42 2d 31 2e 35 2e 30 52 43 31 2f 44 42 2f 73 74 6f 72 61 67 65 2e 70 68 70 00 00 00 00 00 00 DB-1.5.0RC1/DB/storage.php......
41a20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
41a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
41a60 00 00 00 00 31 30 30 36 34 34 20 00 20 20 20 37 36 34 20 00 20 20 20 31 34 34 20 00 20 20 20 20 ....100644.....764.....144......
41a80 20 20 33 35 33 31 34 20 20 37 36 35 36 32 33 35 34 36 34 20 20 31 30 31 36 33 20 00 00 00 00 00 ..35314..7656235464..10163......
41aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
41ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
41ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
41b00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
41b20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
41b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
41b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
41b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
41ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
41bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
41be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
41c00 3c 3f 70 68 70 0a 2f 2a 20 76 69 6d 3a 20 73 65 74 20 65 78 70 61 6e 64 74 61 62 20 74 61 62 73 <?php./*.vim:.set.expandtab.tabs
41c20 74 6f 70 3d 34 20 73 68 69 66 74 77 69 64 74 68 3d 34 20 66 6f 6c 64 6d 65 74 68 6f 64 3d 6d 61 top=4.shiftwidth=4.foldmethod=ma
41c40 72 6b 65 72 3a 20 2a 2f 0a 2f 2f 20 2b 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d rker:.*/.//.+-------------------
41c60 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
41c80 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2b 0a 2f 2f 20 7c 20 50 48 50 20 56 65 -------------------+.//.|.PHP.Ve
41ca0 72 73 69 6f 6e 20 34 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 rsion.4.........................
41cc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c ...............................|
41ce0 0a 2f 2f 20 2b 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d .//.+---------------------------
41d00 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
41d20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2b 0a 2f 2f 20 7c 20 43 6f 70 79 72 69 67 68 74 20 28 63 29 20 -----------+.//.|.Copyright.(c).
41d40 31 39 39 37 2d 32 30 30 33 20 54 68 65 20 50 48 50 20 47 72 6f 75 70 20 20 20 20 20 20 20 20 20 1997-2003.The.PHP.Group.........
41d60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 2f 2f 20 2b 2d 2d 2d .......................|.//.+---
41d80 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
41da0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
41dc0 2d 2d 2d 2b 0a 2f 2f 20 7c 20 54 68 69 73 20 73 6f 75 72 63 65 20 66 69 6c 65 20 69 73 20 73 75 ---+.//.|.This.source.file.is.su
41de0 62 6a 65 63 74 20 74 6f 20 76 65 72 73 69 6f 6e 20 32 2e 30 32 20 6f 66 20 74 68 65 20 50 48 50 bject.to.version.2.02.of.the.PHP
41e00 20 6c 69 63 65 6e 73 65 2c 20 20 20 20 20 20 7c 0a 2f 2f 20 7c 20 74 68 61 74 20 69 73 20 62 75 .license,......|.//.|.that.is.bu
41e20 6e 64 6c 65 64 20 77 69 74 68 20 74 68 69 73 20 70 61 63 6b 61 67 65 20 69 6e 20 74 68 65 20 66 ndled.with.this.package.in.the.f
41e40 69 6c 65 20 4c 49 43 45 4e 53 45 2c 20 61 6e 64 20 69 73 20 20 20 20 20 20 20 20 7c 0a 2f 2f 20 ile.LICENSE,.and.is........|.//.
41e60 7c 20 61 76 61 69 6c 61 62 6c 65 20 61 74 20 74 68 72 6f 75 67 68 20 74 68 65 20 77 6f 72 6c 64 |.available.at.through.the.world
41e80 2d 77 69 64 65 2d 77 65 62 20 61 74 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -wide-web.at....................
41ea0 20 20 20 20 20 20 20 7c 0a 2f 2f 20 7c 20 68 74 74 70 3a 2f 2f 77 77 77 2e 70 68 70 2e 6e 65 74 .......|.//.|.http://www.php.net
41ec0 2f 6c 69 63 65 6e 73 65 2f 32 5f 30 32 2e 74 78 74 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 /license/2_02.txt...............
41ee0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 2f 2f 20 7c 20 49 66 20 79 6f 75 ...................|.//.|.If.you
41f00 20 64 69 64 20 6e 6f 74 20 72 65 63 65 69 76 65 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 50 .did.not.receive.a.copy.of.the.P
41f20 48 50 20 6c 69 63 65 6e 73 65 20 61 6e 64 20 61 72 65 20 75 6e 61 62 6c 65 20 74 6f 20 20 20 7c HP.license.and.are.unable.to...|
41f40 0a 2f 2f 20 7c 20 6f 62 74 61 69 6e 20 69 74 20 74 68 72 6f 75 67 68 20 74 68 65 20 77 6f 72 6c .//.|.obtain.it.through.the.worl
41f60 64 2d 77 69 64 65 2d 77 65 62 2c 20 70 6c 65 61 73 65 20 73 65 6e 64 20 61 20 6e 6f 74 65 20 74 d-wide-web,.please.send.a.note.t
41f80 6f 20 20 20 20 20 20 20 20 20 20 7c 0a 2f 2f 20 7c 20 6c 69 63 65 6e 73 65 40 70 68 70 2e 6e 65 o..........|.//.|.license@php.ne
41fa0 74 20 73 6f 20 77 65 20 63 61 6e 20 6d 61 69 6c 20 79 6f 75 20 61 20 63 6f 70 79 20 69 6d 6d 65 t.so.we.can.mail.you.a.copy.imme
41fc0 64 69 61 74 65 6c 79 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 2f 2f 20 2b 2d 2d 2d diately................|.//.+---
41fe0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
42000 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
42020 2d 2d 2d 2b 0a 2f 2f 20 7c 20 41 75 74 68 6f 72 3a 20 53 74 69 67 20 42 61 6b 6b 65 6e 20 3c 73 ---+.//.|.Author:.Stig.Bakken.<s
42040 74 69 67 40 70 68 70 2e 6e 65 74 3e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 tig@php.net>....................
42060 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 2f 2f 20 2b 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ...............|.//.+-----------
42080 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
420a0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2b 0a 2f 2f 0a ---------------------------+.//.
420c0 2f 2f 20 24 49 64 3a 20 73 74 6f 72 61 67 65 2e 70 68 70 2c 76 20 31 2e 36 20 32 30 30 33 2f 30 //.$Id:.storage.php,v.1.6.2003/0
420e0 35 2f 30 37 20 31 36 3a 35 38 3a 32 38 20 6d 6a 20 45 78 70 20 24 0a 2f 2f 0a 2f 2f 20 44 42 5f 5/07.16:58:28.mj.Exp.$.//.//.DB_
42100 73 74 6f 72 61 67 65 3a 20 61 20 63 6c 61 73 73 20 74 68 61 74 20 6c 65 74 73 20 79 6f 75 20 72 storage:.a.class.that.lets.you.r
42120 65 74 75 72 6e 20 53 51 4c 20 64 61 74 61 20 61 73 20 6f 62 6a 65 63 74 73 20 74 68 61 74 0a 2f eturn.SQL.data.as.objects.that./
42140 2f 20 63 61 6e 20 62 65 20 6d 61 6e 69 70 75 6c 61 74 65 64 20 61 6e 64 20 74 68 61 74 20 75 70 /.can.be.manipulated.and.that.up
42160 64 61 74 65 73 20 74 68 65 20 64 61 74 61 62 61 73 65 20 61 63 63 6f 72 64 69 6e 67 6c 79 2e 0a dates.the.database.accordingly..
42180 2f 2f 0a 0a 72 65 71 75 69 72 65 5f 6f 6e 63 65 20 22 50 45 41 52 2e 70 68 70 22 3b 0a 72 65 71 //..require_once."PEAR.php";.req
421a0 75 69 72 65 5f 6f 6e 63 65 20 22 44 42 2e 70 68 70 22 3b 0a 0a 2f 2a 2a 0a 20 2a 20 44 42 5f 73 uire_once."DB.php";../**..*.DB_s
421c0 74 6f 72 61 67 65 20 70 72 6f 76 69 64 65 73 20 61 6e 20 6f 62 6a 65 63 74 20 69 6e 74 65 72 66 torage.provides.an.object.interf
421e0 61 63 65 20 74 6f 20 61 20 74 61 62 6c 65 20 72 6f 77 2e 20 20 49 74 20 6c 65 74 73 0a 20 2a 20 ace.to.a.table.row...It.lets..*.
42200 79 6f 75 20 61 64 64 2c 20 64 65 6c 65 74 65 20 61 6e 64 20 63 68 61 6e 67 65 20 72 6f 77 73 20 you.add,.delete.and.change.rows.
42220 77 69 74 68 6f 75 74 20 75 73 69 6e 67 20 53 51 4c 2e 0a 20 2a 0a 20 2a 20 40 61 75 74 68 6f 72 without.using.SQL...*..*.@author
42240 20 53 74 69 67 20 42 61 6b 6b 65 6e 20 3c 73 74 69 67 40 70 68 70 2e 6e 65 74 3e 0a 20 2a 0a 20 .Stig.Bakken.<stig@php.net>..*..
42260 2a 20 40 70 61 63 6b 61 67 65 20 44 42 0a 20 2a 2f 0a 63 6c 61 73 73 20 44 42 5f 73 74 6f 72 61 *.@package.DB..*/.class.DB_stora
42280 67 65 20 65 78 74 65 6e 64 73 20 50 45 41 52 0a 7b 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 70 72 6f ge.extends.PEAR.{.....//.{{{.pro
422a0 70 65 72 74 69 65 73 0a 0a 20 20 20 20 2f 2a 2a 20 74 68 65 20 6e 61 6d 65 20 6f 66 20 74 68 65 perties....../**.the.name.of.the
422c0 20 74 61 62 6c 65 20 28 6f 72 20 76 69 65 77 2c 20 69 66 20 74 68 65 20 62 61 63 6b 65 6e 64 20 .table.(or.view,.if.the.backend.
422e0 64 61 74 61 62 61 73 65 20 73 75 70 70 6f 72 74 73 0a 20 20 20 20 20 20 20 20 75 70 64 61 74 65 database.supports.........update
42300 73 20 69 6e 20 76 69 65 77 73 29 20 77 65 20 68 6f 6c 64 20 64 61 74 61 20 66 72 6f 6d 20 2a 2f s.in.views).we.hold.data.from.*/
42320 0a 20 20 20 20 76 61 72 20 24 5f 74 61 62 6c 65 20 3d 20 6e 75 6c 6c 3b 0a 0a 20 20 20 20 2f 2a .....var.$_table.=.null;....../*
42340 2a 20 77 68 69 63 68 20 63 6f 6c 75 6d 6e 28 73 29 20 69 6e 20 74 68 65 20 74 61 62 6c 65 20 63 *.which.column(s).in.the.table.c
42360 6f 6e 74 61 69 6e 73 20 70 72 69 6d 61 72 79 20 6b 65 79 73 2c 20 63 61 6e 20 62 65 20 61 0a 20 ontains.primary.keys,.can.be.a..
42380 20 20 20 20 20 20 20 73 74 72 69 6e 67 20 66 6f 72 20 73 69 6e 67 6c 65 2d 63 6f 6c 75 6d 6e 20 .......string.for.single-column.
423a0 70 72 69 6d 61 72 79 20 6b 65 79 73 2c 20 6f 72 20 61 6e 20 61 72 72 61 79 20 6f 66 20 73 74 72 primary.keys,.or.an.array.of.str
423c0 69 6e 67 73 0a 20 20 20 20 20 20 20 20 66 6f 72 20 6d 75 6c 74 69 70 6c 65 2d 63 6f 6c 75 6d 6e ings.........for.multiple-column
423e0 20 70 72 69 6d 61 72 79 20 6b 65 79 73 20 2a 2f 0a 20 20 20 20 76 61 72 20 24 5f 6b 65 79 63 6f .primary.keys.*/.....var.$_keyco
42400 6c 75 6d 6e 20 3d 20 6e 75 6c 6c 3b 0a 0a 20 20 20 20 2f 2a 2a 20 44 42 20 63 6f 6e 6e 65 63 74 lumn.=.null;....../**.DB.connect
42420 69 6f 6e 20 68 61 6e 64 6c 65 20 75 73 65 64 20 66 6f 72 20 61 6c 6c 20 74 72 61 6e 73 61 63 74 ion.handle.used.for.all.transact
42440 69 6f 6e 73 20 2a 2f 0a 20 20 20 20 76 61 72 20 24 5f 64 62 68 20 3d 20 6e 75 6c 6c 3b 0a 0a 20 ions.*/.....var.$_dbh.=.null;...
42460 20 20 20 2f 2a 2a 20 61 6e 20 61 73 73 6f 63 20 77 69 74 68 20 74 68 65 20 6e 61 6d 65 73 20 6f .../**.an.assoc.with.the.names.o
42480 66 20 64 61 74 61 62 61 73 65 20 66 69 65 6c 64 73 20 73 74 6f 72 65 64 20 61 73 20 70 72 6f 70 f.database.fields.stored.as.prop
424a0 65 72 74 69 65 73 0a 20 20 20 20 20 20 20 20 69 6e 20 74 68 69 73 20 6f 62 6a 65 63 74 20 2a 2f erties.........in.this.object.*/
424c0 0a 20 20 20 20 76 61 72 20 24 5f 70 72 6f 70 65 72 74 69 65 73 20 3d 20 61 72 72 61 79 28 29 3b .....var.$_properties.=.array();
424e0 0a 0a 20 20 20 20 2f 2a 2a 20 61 6e 20 61 73 73 6f 63 20 77 69 74 68 20 74 68 65 20 6e 61 6d 65 ....../**.an.assoc.with.the.name
42500 73 20 6f 66 20 74 68 65 20 70 72 6f 70 65 72 74 69 65 73 20 69 6e 20 74 68 69 73 20 6f 62 6a 65 s.of.the.properties.in.this.obje
42520 63 74 20 74 68 61 74 0a 20 20 20 20 20 20 20 20 68 61 76 65 20 62 65 65 6e 20 63 68 61 6e 67 65 ct.that.........have.been.change
42540 64 20 73 69 6e 63 65 20 74 68 65 79 20 77 65 72 65 20 66 65 74 63 68 65 64 20 66 72 6f 6d 20 74 d.since.they.were.fetched.from.t
42560 68 65 20 64 61 74 61 62 61 73 65 20 2a 2f 0a 20 20 20 20 76 61 72 20 24 5f 63 68 61 6e 67 65 73 he.database.*/.....var.$_changes
42580 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 20 20 20 20 2f 2a 2a 20 66 6c 61 67 20 74 68 61 74 20 64 .=.array();....../**.flag.that.d
425a0 65 63 69 64 65 73 20 69 66 20 64 61 74 61 20 69 6e 20 74 68 69 73 20 6f 62 6a 65 63 74 20 63 61 ecides.if.data.in.this.object.ca
425c0 6e 20 62 65 20 63 68 61 6e 67 65 64 2e 0a 20 20 20 20 20 20 20 20 6f 62 6a 65 63 74 73 20 74 68 n.be.changed..........objects.th
425e0 61 74 20 64 6f 6e 27 74 20 68 61 76 65 20 74 68 65 69 72 20 74 61 62 6c 65 27 73 20 6b 65 79 20 at.don't.have.their.table's.key.
42600 63 6f 6c 75 6d 6e 20 69 6e 20 74 68 65 69 72 0a 20 20 20 20 20 20 20 20 70 72 6f 70 65 72 74 79 column.in.their.........property
42620 20 6c 69 73 74 73 20 77 69 6c 6c 20 62 65 20 66 6c 61 67 67 65 64 20 61 73 20 72 65 61 64 2d 6f .lists.will.be.flagged.as.read-o
42640 6e 6c 79 2e 20 2a 2f 0a 20 20 20 20 76 61 72 20 24 5f 72 65 61 64 6f 6e 6c 79 20 3d 20 66 61 6c nly..*/.....var.$_readonly.=.fal
42660 73 65 3b 0a 0a 20 20 20 20 2f 2a 2a 20 66 75 6e 63 74 69 6f 6e 20 6f 72 20 6d 65 74 68 6f 64 20 se;....../**.function.or.method.
42680 74 68 61 74 20 69 6d 70 6c 65 6d 65 6e 74 73 20 61 20 76 61 6c 69 64 61 74 6f 72 20 66 6f 72 20 that.implements.a.validator.for.
426a0 66 69 65 6c 64 73 20 74 68 61 74 0a 20 20 20 20 20 20 20 20 61 72 65 20 73 65 74 2c 20 74 68 69 fields.that.........are.set,.thi
426c0 73 20 76 61 6c 69 64 61 74 6f 72 20 66 75 6e 63 74 69 6f 6e 20 72 65 74 75 72 6e 73 20 74 72 75 s.validator.function.returns.tru
426e0 65 20 69 66 20 74 68 65 20 66 69 65 6c 64 20 69 73 0a 20 20 20 20 20 20 20 20 76 61 6c 69 64 2c e.if.the.field.is.........valid,
42700 20 66 61 6c 73 65 20 69 66 20 6e 6f 74 20 2a 2f 0a 20 20 20 20 76 61 72 20 24 5f 76 61 6c 69 64 .false.if.not.*/.....var.$_valid
42720 61 74 6f 72 20 3d 20 6e 75 6c 6c 3b 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 ator.=.null;......//.}}}.....//.
42740 7b 7b 7b 20 63 6f 6e 73 74 72 75 63 74 6f 72 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 {{{.constructor....../**......*.
42760 43 6f 6e 73 74 72 75 63 74 6f 72 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d Constructor......*......*.@param
42780 20 24 74 61 62 6c 65 20 73 74 72 69 6e 67 20 74 68 65 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 64 .$table.string.the.name.of.the.d
427a0 61 74 61 62 61 73 65 20 74 61 62 6c 65 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 70 61 72 atabase.table......*......*.@par
427c0 61 6d 20 24 6b 65 79 63 6f 6c 75 6d 6e 20 6d 69 78 65 64 20 73 74 72 69 6e 67 20 77 69 74 68 20 am.$keycolumn.mixed.string.with.
427e0 6e 61 6d 65 20 6f 66 20 6b 65 79 20 63 6f 6c 75 6d 6e 2c 20 6f 72 20 61 72 72 61 79 20 6f 66 0a name.of.key.column,.or.array.of.
42800 20 20 20 20 20 2a 20 73 74 72 69 6e 67 73 20 69 66 20 74 68 65 20 74 61 62 6c 65 20 68 61 73 20 .....*.strings.if.the.table.has.
42820 61 20 70 72 69 6d 61 72 79 20 6b 65 79 20 6f 66 20 6d 6f 72 65 20 74 68 61 6e 20 6f 6e 65 20 63 a.primary.key.of.more.than.one.c
42840 6f 6c 75 6d 6e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 24 64 62 68 20 olumn......*......*.@param.$dbh.
42860 6f 62 6a 65 63 74 20 64 61 74 61 62 61 73 65 20 63 6f 6e 6e 65 63 74 69 6f 6e 20 6f 62 6a 65 63 object.database.connection.objec
42880 74 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 24 76 61 6c 69 64 61 74 6f t......*......*.@param.$validato
428a0 72 20 6d 69 78 65 64 20 66 75 6e 63 74 69 6f 6e 20 6f 72 20 6d 65 74 68 6f 64 20 75 73 65 64 20 r.mixed.function.or.method.used.
428c0 74 6f 20 76 61 6c 69 64 61 74 65 0a 20 20 20 20 20 2a 20 65 61 63 68 20 6e 65 77 20 76 61 6c 75 to.validate......*.each.new.valu
428e0 65 2c 20 63 61 6c 6c 65 64 20 77 69 74 68 20 74 68 72 65 65 20 70 61 72 61 6d 65 74 65 72 73 3a e,.called.with.three.parameters:
42900 20 74 68 65 20 6e 61 6d 65 20 6f 66 20 74 68 65 0a 20 20 20 20 20 2a 20 66 69 65 6c 64 2f 63 6f .the.name.of.the......*.field/co
42920 6c 75 6d 6e 20 74 68 61 74 20 69 73 20 63 68 61 6e 67 69 6e 67 2c 20 61 20 72 65 66 65 72 65 6e lumn.that.is.changing,.a.referen
42940 63 65 20 74 6f 20 74 68 65 20 6e 65 77 20 76 61 6c 75 65 20 61 6e 64 0a 20 20 20 20 20 2a 20 61 ce.to.the.new.value.and......*.a
42960 20 72 65 66 65 72 65 6e 63 65 20 74 6f 20 74 68 69 73 20 6f 62 6a 65 63 74 0a 20 20 20 20 20 2a .reference.to.this.object......*
42980 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 44 42 5f 73 74 6f 72 61 67 65 ......*/.....function.DB_storage
429a0 28 24 74 61 62 6c 65 2c 20 24 6b 65 79 63 6f 6c 75 6d 6e 2c 20 26 24 64 62 68 2c 20 24 76 61 6c ($table,.$keycolumn,.&$dbh,.$val
429c0 69 64 61 74 6f 72 20 3d 20 6e 75 6c 6c 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 24 74 68 idator.=.null).....{.........$th
429e0 69 73 2d 3e 50 45 41 52 28 27 44 42 5f 45 72 72 6f 72 27 29 3b 0a 20 20 20 20 20 20 20 20 24 74 is->PEAR('DB_Error');.........$t
42a00 68 69 73 2d 3e 5f 74 61 62 6c 65 20 3d 20 24 74 61 62 6c 65 3b 0a 20 20 20 20 20 20 20 20 24 74 his->_table.=.$table;.........$t
42a20 68 69 73 2d 3e 5f 6b 65 79 63 6f 6c 75 6d 6e 20 3d 20 24 6b 65 79 63 6f 6c 75 6d 6e 3b 0a 20 20 his->_keycolumn.=.$keycolumn;...
42a40 20 20 20 20 20 20 24 74 68 69 73 2d 3e 5f 64 62 68 20 3d 20 24 64 62 68 3b 0a 20 20 20 20 20 20 ......$this->_dbh.=.$dbh;.......
42a60 20 20 24 74 68 69 73 2d 3e 5f 72 65 61 64 6f 6e 6c 79 20 3d 20 66 61 6c 73 65 3b 0a 20 20 20 20 ..$this->_readonly.=.false;.....
42a80 20 20 20 20 24 74 68 69 73 2d 3e 5f 76 61 6c 69 64 61 74 6f 72 20 3d 20 24 76 61 6c 69 64 61 74 ....$this->_validator.=.$validat
42aa0 6f 72 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b or;.....}......//.}}}.....//.{{{
42ac0 20 5f 6d 61 6b 65 57 68 65 72 65 28 29 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 55 74 ._makeWhere()....../**......*.Ut
42ae0 69 6c 69 74 79 20 6d 65 74 68 6f 64 20 74 6f 20 62 75 69 6c 64 20 61 20 22 57 48 45 52 45 22 20 ility.method.to.build.a."WHERE".
42b00 63 6c 61 75 73 65 20 74 6f 20 6c 6f 63 61 74 65 20 6f 75 72 73 65 6c 76 65 73 20 69 6e 0a 20 20 clause.to.locate.ourselves.in...
42b20 20 20 20 2a 20 74 68 65 20 74 61 62 6c 65 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 58 58 ...*.the.table.......*......*.XX
42b40 58 20 66 75 74 75 72 65 20 69 6d 70 72 6f 76 65 6d 65 6e 74 3a 20 75 73 65 20 72 6f 77 69 64 73 X.future.improvement:.use.rowids
42b60 3f 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 61 63 63 65 73 73 20 70 72 69 76 61 74 65 0a ?......*......*.@access.private.
42b80 20 20 20 20 20 2a 2f 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 5f 6d 61 6b 65 57 68 65 72 65 28 .....*/.....function._makeWhere(
42ba0 24 6b 65 79 76 61 6c 20 3d 20 6e 75 6c 6c 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 69 66 $keyval.=.null).....{.........if
42bc0 20 28 69 73 5f 61 72 72 61 79 28 24 74 68 69 73 2d 3e 5f 6b 65 79 63 6f 6c 75 6d 6e 29 29 20 7b .(is_array($this->_keycolumn)).{
42be0 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 24 6b 65 79 76 61 6c 20 3d 3d 3d 20 6e 75 6c .............if.($keyval.===.nul
42c00 6c 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 20 28 24 69 20 3d 20 30 l).{.................for.($i.=.0
42c20 3b 20 24 69 20 3c 20 73 69 7a 65 6f 66 28 24 74 68 69 73 2d 3e 5f 6b 65 79 63 6f 6c 75 6d 6e 29 ;.$i.<.sizeof($this->_keycolumn)
42c40 3b 20 24 69 2b 2b 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 6b ;.$i++).{.....................$k
42c60 65 79 76 61 6c 5b 5d 20 3d 20 24 74 68 69 73 2d 3e 7b 24 74 68 69 73 2d 3e 5f 6b 65 79 63 6f 6c eyval[].=.$this->{$this->_keycol
42c80 75 6d 6e 5b 24 69 5d 7d 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 umn[$i]};.................}.....
42ca0 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 77 68 65 72 65 63 6c 61 75 ........}.............$whereclau
42cc0 73 65 20 3d 20 27 27 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 20 28 24 69 20 3d 20 30 se.=.'';.............for.($i.=.0
42ce0 3b 20 24 69 20 3c 20 73 69 7a 65 6f 66 28 24 74 68 69 73 2d 3e 5f 6b 65 79 63 6f 6c 75 6d 6e 29 ;.$i.<.sizeof($this->_keycolumn)
42d00 3b 20 24 69 2b 2b 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 24 69 ;.$i++).{.................if.($i
42d20 20 3e 20 30 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 77 68 65 .>.0).{.....................$whe
42d40 72 65 63 6c 61 75 73 65 20 2e 3d 20 27 20 41 4e 44 20 27 3b 0a 20 20 20 20 20 20 20 20 20 20 20 reclause..=.'.AND.';............
42d60 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 77 68 65 72 65 63 6c 61 .....}.................$wherecla
42d80 75 73 65 20 2e 3d 20 24 74 68 69 73 2d 3e 5f 6b 65 79 63 6f 6c 75 6d 6e 5b 24 69 5d 3b 0a 20 20 use..=.$this->_keycolumn[$i];...
42da0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 69 73 5f 6e 75 6c 6c 28 24 6b 65 79 76 61 ..............if.(is_null($keyva
42dc0 6c 5b 24 69 5d 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f l[$i])).{.....................//
42de0 20 74 68 65 72 65 27 73 20 6e 6f 74 20 6d 75 63 68 20 70 6f 69 6e 74 20 69 6e 20 68 61 76 69 6e .there's.not.much.point.in.havin
42e00 67 20 61 20 4e 55 4c 4c 20 6b 65 79 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 g.a.NULL.key,...................
42e20 20 20 2f 2f 20 62 75 74 20 77 65 20 73 75 70 70 6f 72 74 20 69 74 20 61 6e 79 77 61 79 0a 20 20 ..//.but.we.support.it.anyway...
42e40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 77 68 65 72 65 63 6c 61 75 73 65 20 2e ..................$whereclause..
42e60 3d 20 27 20 49 53 20 4e 55 4c 4c 27 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 20 =.'.IS.NULL';.................}.
42e80 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 77 68 65 72 else.{.....................$wher
42ea0 65 63 6c 61 75 73 65 20 2e 3d 20 27 20 3d 20 27 20 2e 20 24 74 68 69 73 2d 3e 5f 64 62 68 2d 3e eclause..=.'.=.'...$this->_dbh->
42ec0 71 75 6f 74 65 28 24 6b 65 79 76 61 6c 5b 24 69 5d 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 quote($keyval[$i]);.............
42ee0 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 7d 20 65 6c ....}.............}.........}.el
42f00 73 65 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 24 6b 65 79 76 61 6c 20 3d 3d 3d se.{.............if.($keyval.===
42f20 20 6e 75 6c 6c 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 6b 65 79 76 61 6c .null).{.................$keyval
42f40 20 3d 20 40 24 74 68 69 73 2d 3e 7b 24 74 68 69 73 2d 3e 5f 6b 65 79 63 6f 6c 75 6d 6e 7d 3b 0a .=.@$this->{$this->_keycolumn};.
42f60 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 77 68 65 72 65 ............}.............$where
42f80 63 6c 61 75 73 65 20 3d 20 24 74 68 69 73 2d 3e 5f 6b 65 79 63 6f 6c 75 6d 6e 3b 0a 20 20 20 20 clause.=.$this->_keycolumn;.....
42fa0 20 20 20 20 20 20 20 20 69 66 20 28 69 73 5f 6e 75 6c 6c 28 24 6b 65 79 76 61 6c 29 29 20 7b 0a ........if.(is_null($keyval)).{.
42fc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 74 68 65 72 65 27 73 20 6e 6f 74 20 6d ................//.there's.not.m
42fe0 75 63 68 20 70 6f 69 6e 74 20 69 6e 20 68 61 76 69 6e 67 20 61 20 4e 55 4c 4c 20 6b 65 79 2c 0a uch.point.in.having.a.NULL.key,.
43000 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 62 75 74 20 77 65 20 73 75 70 70 6f 72 ................//.but.we.suppor
43020 74 20 69 74 20 61 6e 79 77 61 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 77 68 65 t.it.anyway.................$whe
43040 72 65 63 6c 61 75 73 65 20 2e 3d 20 27 20 49 53 20 4e 55 4c 4c 27 3b 0a 20 20 20 20 20 20 20 20 reclause..=.'.IS.NULL';.........
43060 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 77 68 ....}.else.{.................$wh
43080 65 72 65 63 6c 61 75 73 65 20 2e 3d 20 27 20 3d 20 27 20 2e 20 24 74 68 69 73 2d 3e 5f 64 62 68 ereclause..=.'.=.'...$this->_dbh
430a0 2d 3e 71 75 6f 74 65 28 24 6b 65 79 76 61 6c 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a ->quote($keyval);.............}.
430c0 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 77 68 65 72 65 63 ........}.........return.$wherec
430e0 6c 61 75 73 65 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 lause;.....}......//.}}}.....//.
43100 7b 7b 7b 20 73 65 74 75 70 28 29 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 4d 65 74 68 {{{.setup()....../**......*.Meth
43120 6f 64 20 75 73 65 64 20 74 6f 20 69 6e 69 74 69 61 6c 69 7a 65 20 61 20 44 42 5f 73 74 6f 72 61 od.used.to.initialize.a.DB_stora
43140 67 65 20 6f 62 6a 65 63 74 20 66 72 6f 6d 20 74 68 65 0a 20 20 20 20 20 2a 20 63 6f 6e 66 69 67 ge.object.from.the......*.config
43160 75 72 65 64 20 74 61 62 6c 65 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d ured.table.......*......*.@param
43180 20 24 6b 65 79 76 61 6c 20 6d 69 78 65 64 20 74 68 65 20 6b 65 79 5b 73 5d 20 6f 66 20 74 68 65 .$keyval.mixed.the.key[s].of.the
431a0 20 72 6f 77 20 74 6f 20 66 65 74 63 68 20 28 73 74 72 69 6e 67 20 6f 72 20 61 72 72 61 79 29 0a .row.to.fetch.(string.or.array).
431c0 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 72 65 74 75 72 6e 20 69 6e 74 20 44 42 5f 4f 4b 20 .....*......*.@return.int.DB_OK.
431e0 6f 6e 20 73 75 63 63 65 73 73 2c 20 61 20 44 42 20 65 72 72 6f 72 20 69 66 20 6e 6f 74 0a 20 20 on.success,.a.DB.error.if.not...
43200 20 20 20 2a 2f 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 75 70 28 24 6b 65 79 76 61 6c ...*/.....function.setup($keyval
43220 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 24 71 76 61 6c 20 3d 20 24 74 68 69 73 2d 3e 5f ).....{.........$qval.=.$this->_
43240 64 62 68 2d 3e 71 75 6f 74 65 28 24 6b 65 79 76 61 6c 29 3b 0a 20 20 20 20 20 20 20 20 24 77 68 dbh->quote($keyval);.........$wh
43260 65 72 65 63 6c 61 75 73 65 20 3d 20 24 74 68 69 73 2d 3e 5f 6d 61 6b 65 57 68 65 72 65 28 24 6b ereclause.=.$this->_makeWhere($k
43280 65 79 76 61 6c 29 3b 0a 20 20 20 20 20 20 20 20 24 71 75 65 72 79 20 3d 20 27 53 45 4c 45 43 54 eyval);.........$query.=.'SELECT
432a0 20 2a 20 46 52 4f 4d 20 27 20 2e 20 24 74 68 69 73 2d 3e 5f 74 61 62 6c 65 20 2e 20 27 20 57 48 .*.FROM.'...$this->_table...'.WH
432c0 45 52 45 20 27 20 2e 20 24 77 68 65 72 65 63 6c 61 75 73 65 3b 0a 20 20 20 20 20 20 20 20 24 73 ERE.'...$whereclause;.........$s
432e0 74 68 20 3d 20 24 74 68 69 73 2d 3e 5f 64 62 68 2d 3e 71 75 65 72 79 28 24 71 75 65 72 79 29 3b th.=.$this->_dbh->query($query);
43300 0a 20 20 20 20 20 20 20 20 69 66 20 28 44 42 3a 3a 69 73 45 72 72 6f 72 28 24 73 74 68 29 29 20 .........if.(DB::isError($sth)).
43320 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 73 74 68 3b 0a 20 20 20 20 20 {.............return.$sth;......
43340 20 20 20 7d 0a 20 20 20 20 20 20 20 20 24 72 6f 77 20 3d 20 24 73 74 68 2d 3e 66 65 74 63 68 52 ...}.........$row.=.$sth->fetchR
43360 6f 77 28 44 42 5f 46 45 54 43 48 4d 4f 44 45 5f 41 53 53 4f 43 29 3b 0a 20 20 20 20 20 20 20 20 ow(DB_FETCHMODE_ASSOC);.........
43380 69 66 20 28 44 42 3a 3a 69 73 45 72 72 6f 72 28 24 72 6f 77 29 29 20 7b 0a 20 20 20 20 20 20 20 if.(DB::isError($row)).{........
433a0 20 20 20 20 20 72 65 74 75 72 6e 20 24 72 6f 77 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 .....return.$row;.........}.....
433c0 20 20 20 20 69 66 20 28 65 6d 70 74 79 28 24 72 6f 77 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 ....if.(empty($row)).{..........
433e0 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 61 69 73 65 45 72 72 6f 72 28 6e 75 6c 6c ...return.$this->raiseError(null
43400 2c 20 44 42 5f 45 52 52 4f 52 5f 4e 4f 54 5f 46 4f 55 4e 44 2c 20 6e 75 6c 6c 2c 20 6e 75 6c 6c ,.DB_ERROR_NOT_FOUND,.null,.null
43420 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ,...............................
43440 20 20 20 20 20 20 20 24 71 75 65 72 79 2c 20 6e 75 6c 6c 2c 20 74 72 75 65 29 3b 0a 20 20 20 20 .......$query,.null,.true);.....
43460 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 66 6f 72 65 61 63 68 20 28 24 72 6f 77 20 61 73 20 24 ....}.........foreach.($row.as.$
43480 6b 65 79 20 3d 3e 20 24 76 61 6c 75 65 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 74 68 key.=>.$value).{.............$th
434a0 69 73 2d 3e 5f 70 72 6f 70 65 72 74 69 65 73 5b 24 6b 65 79 5d 20 3d 20 74 72 75 65 3b 0a 20 20 is->_properties[$key].=.true;...
434c0 20 20 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 24 6b 65 79 20 3d 20 24 76 61 6c 75 65 3b 0a ..........$this->$key.=.$value;.
434e0 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 44 42 5f 4f 4b 3b 0a ........}.........return.DB_OK;.
43500 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 69 6e 73 ....}......//.}}}.....//.{{{.ins
43520 65 72 74 28 29 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 43 72 65 61 74 65 20 61 20 6e ert()....../**......*.Create.a.n
43540 65 77 20 28 65 6d 70 74 79 29 20 72 6f 77 20 69 6e 20 74 68 65 20 63 6f 6e 66 69 67 75 72 65 64 ew.(empty).row.in.the.configured
43560 20 74 61 62 6c 65 20 66 6f 72 20 74 68 69 73 0a 20 20 20 20 20 2a 20 6f 62 6a 65 63 74 2e 0a 20 .table.for.this......*.object...
43580 20 20 20 20 2a 2f 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 69 6e 73 65 72 74 28 24 6e 65 77 70 ....*/.....function.insert($newp
435a0 6b 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 69 66 20 28 69 73 5f 61 72 72 61 79 28 24 74 k).....{.........if.(is_array($t
435c0 68 69 73 2d 3e 5f 6b 65 79 63 6f 6c 75 6d 6e 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 his->_keycolumn)).{.............
435e0 24 70 72 69 6d 61 72 79 6b 65 79 20 3d 20 24 74 68 69 73 2d 3e 5f 6b 65 79 63 6f 6c 75 6d 6e 3b $primarykey.=.$this->_keycolumn;
43600 0a 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 70 .........}.else.{.............$p
43620 72 69 6d 61 72 79 6b 65 79 20 3d 20 61 72 72 61 79 28 24 74 68 69 73 2d 3e 5f 6b 65 79 63 6f 6c rimarykey.=.array($this->_keycol
43640 75 6d 6e 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 73 65 74 74 79 70 65 28 umn);.........}.........settype(
43660 24 6e 65 77 70 6b 2c 20 22 61 72 72 61 79 22 29 3b 0a 20 20 20 20 20 20 20 20 66 6f 72 20 28 24 $newpk,."array");.........for.($
43680 69 20 3d 20 30 3b 20 24 69 20 3c 20 73 69 7a 65 6f 66 28 24 70 72 69 6d 61 72 79 6b 65 79 29 3b i.=.0;.$i.<.sizeof($primarykey);
436a0 20 24 69 2b 2b 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 70 6b 76 61 6c 73 5b 5d 20 3d .$i++).{.............$pkvals[].=
436c0 20 24 74 68 69 73 2d 3e 5f 64 62 68 2d 3e 71 75 6f 74 65 28 24 6e 65 77 70 6b 5b 24 69 5d 29 3b .$this->_dbh->quote($newpk[$i]);
436e0 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 24 73 74 68 20 3d 20 24 74 68 69 73 .........}..........$sth.=.$this
43700 2d 3e 5f 64 62 68 2d 3e 71 75 65 72 79 28 22 49 4e 53 45 52 54 20 49 4e 54 4f 20 24 74 68 69 73 ->_dbh->query("INSERT.INTO.$this
43720 2d 3e 5f 74 61 62 6c 65 20 28 22 20 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ->_table.(".....................
43740 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 6d 70 6c 6f 64 65 28 22 2c 22 2c 20 24 70 72 ................implode(",",.$pr
43760 69 6d 61 72 79 6b 65 79 29 20 2e 20 22 29 20 56 41 4c 55 45 53 28 22 20 2e 0a 20 20 20 20 20 20 imarykey)...").VALUES(".........
43780 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 6d 70 6c ............................impl
437a0 6f 64 65 28 22 2c 22 2c 20 24 70 6b 76 61 6c 73 29 20 2e 20 22 29 22 29 3b 0a 20 20 20 20 20 20 ode(",",.$pkvals)...")");.......
437c0 20 20 69 66 20 28 44 42 3a 3a 69 73 45 72 72 6f 72 28 24 73 74 68 29 29 20 7b 0a 20 20 20 20 20 ..if.(DB::isError($sth)).{......
437e0 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 73 74 68 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 .......return.$sth;.........}...
43800 20 20 20 20 20 20 69 66 20 28 73 69 7a 65 6f 66 28 24 6e 65 77 70 6b 29 20 3d 3d 20 31 29 20 7b ......if.(sizeof($newpk).==.1).{
43820 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 6e 65 77 70 6b 20 3d 20 24 6e 65 77 70 6b 5b 30 5d 3b .............$newpk.=.$newpk[0];
43840 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 73 65 74 75 70 28 .........}.........$this->setup(
43860 24 6e 65 77 70 6b 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f $newpk);.....}......//.}}}...../
43880 2f 20 7b 7b 7b 20 74 6f 53 74 72 69 6e 67 28 29 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a /.{{{.toString()....../**......*
438a0 20 4f 75 74 70 75 74 20 61 20 73 69 6d 70 6c 65 20 64 65 73 63 72 69 70 74 69 6f 6e 20 6f 66 20 .Output.a.simple.description.of.
438c0 74 68 69 73 20 44 42 5f 73 74 6f 72 61 67 65 20 6f 62 6a 65 63 74 2e 0a 20 20 20 20 20 2a 20 40 this.DB_storage.object.......*.@
438e0 72 65 74 75 72 6e 20 73 74 72 69 6e 67 20 6f 62 6a 65 63 74 20 64 65 73 63 72 69 70 74 69 6f 6e return.string.object.description
43900 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 74 6f 53 74 72 69 6e 67 28 29 ......*/.....function.toString()
43920 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 24 69 6e 66 6f 20 3d 20 67 65 74 5f 63 6c 61 73 73 .....{.........$info.=.get_class
43940 28 24 74 68 69 73 29 3b 0a 20 20 20 20 20 20 20 20 24 69 6e 66 6f 20 2e 3d 20 22 20 28 74 61 62 ($this);.........$info..=.".(tab
43960 6c 65 3d 22 3b 0a 20 20 20 20 20 20 20 20 24 69 6e 66 6f 20 2e 3d 20 24 74 68 69 73 2d 3e 5f 74 le=";.........$info..=.$this->_t
43980 61 62 6c 65 3b 0a 20 20 20 20 20 20 20 20 24 69 6e 66 6f 20 2e 3d 20 22 2c 20 6b 65 79 63 6f 6c able;.........$info..=.",.keycol
439a0 75 6d 6e 3d 22 3b 0a 20 20 20 20 20 20 20 20 69 66 20 28 69 73 5f 61 72 72 61 79 28 24 74 68 69 umn=";.........if.(is_array($thi
439c0 73 2d 3e 5f 6b 65 79 63 6f 6c 75 6d 6e 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 69 s->_keycolumn)).{.............$i
439e0 6e 66 6f 20 2e 3d 20 22 28 22 20 2e 20 69 6d 70 6c 6f 64 65 28 22 2c 22 2c 20 24 74 68 69 73 2d nfo..=."("...implode(",",.$this-
43a00 3e 5f 6b 65 79 63 6f 6c 75 6d 6e 29 20 2e 20 22 29 22 3b 0a 20 20 20 20 20 20 20 20 7d 20 65 6c >_keycolumn)...")";.........}.el
43a20 73 65 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 69 6e 66 6f 20 2e 3d 20 24 74 68 69 73 2d se.{.............$info..=.$this-
43a40 3e 5f 6b 65 79 63 6f 6c 75 6d 6e 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 24 >_keycolumn;.........}.........$
43a60 69 6e 66 6f 20 2e 3d 20 22 2c 20 64 62 68 3d 22 3b 0a 20 20 20 20 20 20 20 20 69 66 20 28 69 73 info..=.",.dbh=";.........if.(is
43a80 5f 6f 62 6a 65 63 74 28 24 74 68 69 73 2d 3e 5f 64 62 68 29 29 20 7b 0a 20 20 20 20 20 20 20 20 _object($this->_dbh)).{.........
43aa0 20 20 20 20 24 69 6e 66 6f 20 2e 3d 20 24 74 68 69 73 2d 3e 5f 64 62 68 2d 3e 74 6f 53 74 72 69 ....$info..=.$this->_dbh->toStri
43ac0 6e 67 28 29 3b 0a 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 20 20 ng();.........}.else.{..........
43ae0 20 20 20 24 69 6e 66 6f 20 2e 3d 20 22 6e 75 6c 6c 22 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 ...$info..=."null";.........}...
43b00 20 20 20 20 20 20 24 69 6e 66 6f 20 2e 3d 20 22 29 22 3b 0a 20 20 20 20 20 20 20 20 69 66 20 28 ......$info..=.")";.........if.(
43b20 73 69 7a 65 6f 66 28 24 74 68 69 73 2d 3e 5f 70 72 6f 70 65 72 74 69 65 73 29 29 20 7b 0a 20 20 sizeof($this->_properties)).{...
43b40 20 20 20 20 20 20 20 20 20 20 24 69 6e 66 6f 20 2e 3d 20 22 20 5b 6c 6f 61 64 65 64 2c 20 6b 65 ..........$info..=.".[loaded,.ke
43b60 79 3d 22 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 6b 65 79 6e 61 6d 65 20 3d 20 24 74 68 69 y=";.............$keyname.=.$thi
43b80 73 2d 3e 5f 6b 65 79 63 6f 6c 75 6d 6e 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 69 s->_keycolumn;.............if.(i
43ba0 73 5f 61 72 72 61 79 28 24 6b 65 79 6e 61 6d 65 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 s_array($keyname)).{............
43bc0 20 20 20 20 20 24 69 6e 66 6f 20 2e 3d 20 22 28 22 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 .....$info..=."(";..............
43be0 20 20 20 66 6f 72 20 28 24 69 20 3d 20 30 3b 20 24 69 20 3c 20 73 69 7a 65 6f 66 28 24 6b 65 79 ...for.($i.=.0;.$i.<.sizeof($key
43c00 6e 61 6d 65 29 3b 20 24 69 2b 2b 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 name);.$i++).{..................
43c20 20 20 20 69 66 20 28 24 69 20 3e 20 30 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ...if.($i.>.0).{................
43c40 20 20 20 20 20 20 20 20 20 24 69 6e 66 6f 20 2e 3d 20 22 2c 22 3b 0a 20 20 20 20 20 20 20 20 20 .........$info..=.",";..........
43c60 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ...........}....................
43c80 20 24 69 6e 66 6f 20 2e 3d 20 24 74 68 69 73 2d 3e 24 6b 65 79 6e 61 6d 65 5b 24 69 5d 3b 0a 20 .$info..=.$this->$keyname[$i];..
43ca0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ...............}................
43cc0 20 24 69 6e 66 6f 20 2e 3d 20 22 29 22 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 20 65 6c 73 .$info..=.")";.............}.els
43ce0 65 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 69 6e 66 6f 20 2e 3d 20 24 74 68 e.{.................$info..=.$th
43d00 69 73 2d 3e 24 6b 65 79 6e 61 6d 65 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 is->$keyname;.............}.....
43d20 20 20 20 20 20 20 20 20 24 69 6e 66 6f 20 2e 3d 20 22 5d 22 3b 0a 20 20 20 20 20 20 20 20 7d 0a ........$info..=."]";.........}.
43d40 20 20 20 20 20 20 20 20 69 66 20 28 73 69 7a 65 6f 66 28 24 74 68 69 73 2d 3e 5f 63 68 61 6e 67 ........if.(sizeof($this->_chang
43d60 65 73 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 69 6e 66 6f 20 2e 3d 20 22 20 5b 6d es)).{.............$info..=.".[m
43d80 6f 64 69 66 69 65 64 5d 22 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 72 65 74 odified]";.........}.........ret
43da0 75 72 6e 20 24 69 6e 66 6f 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 urn.$info;.....}......//.}}}....
43dc0 20 2f 2f 20 7b 7b 7b 20 64 75 6d 70 28 29 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 44 .//.{{{.dump()....../**......*.D
43de0 75 6d 70 20 74 68 65 20 63 6f 6e 74 65 6e 74 73 20 6f 66 20 74 68 69 73 20 6f 62 6a 65 63 74 20 ump.the.contents.of.this.object.
43e00 74 6f 20 22 73 74 61 6e 64 61 72 64 20 6f 75 74 70 75 74 22 2e 0a 20 20 20 20 20 2a 2f 0a 20 20 to."standard.output".......*/...
43e20 20 20 66 75 6e 63 74 69 6f 6e 20 64 75 6d 70 28 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 ..function.dump().....{.........
43e40 72 65 73 65 74 28 24 74 68 69 73 2d 3e 5f 70 72 6f 70 65 72 74 69 65 73 29 3b 0a 20 20 20 20 20 reset($this->_properties);......
43e60 20 20 20 77 68 69 6c 65 20 28 6c 69 73 74 28 24 70 72 6f 70 2c 20 24 66 6f 6f 29 20 3d 20 65 61 ...while.(list($prop,.$foo).=.ea
43e80 63 68 28 24 74 68 69 73 2d 3e 5f 70 72 6f 70 65 72 74 69 65 73 29 29 20 7b 0a 20 20 20 20 20 20 ch($this->_properties)).{.......
43ea0 20 20 20 20 20 20 70 72 69 6e 74 20 22 24 70 72 6f 70 20 3d 20 22 3b 0a 20 20 20 20 20 20 20 20 ......print."$prop.=.";.........
43ec0 20 20 20 20 70 72 69 6e 74 20 68 74 6d 6c 65 6e 74 69 74 69 65 73 28 24 74 68 69 73 2d 3e 24 70 ....print.htmlentities($this->$p
43ee0 72 6f 70 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 70 72 69 6e 74 20 22 3c 42 52 3e 5c 6e 22 rop);.............print."<BR>\n"
43f00 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 ;.........}.....}......//.}}}...
43f20 20 20 2f 2f 20 7b 7b 7b 20 26 63 72 65 61 74 65 28 29 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 ..//.{{{.&create()....../**.....
43f40 20 2a 20 53 74 61 74 69 63 20 6d 65 74 68 6f 64 20 75 73 65 64 20 74 6f 20 63 72 65 61 74 65 20 .*.Static.method.used.to.create.
43f60 6e 65 77 20 44 42 20 73 74 6f 72 61 67 65 20 6f 62 6a 65 63 74 73 2e 0a 20 20 20 20 20 2a 20 40 new.DB.storage.objects.......*.@
43f80 70 61 72 61 6d 20 24 64 61 74 61 20 61 73 73 6f 63 2e 20 61 72 72 61 79 20 77 68 65 72 65 20 74 param.$data.assoc..array.where.t
43fa0 68 65 20 6b 65 79 73 20 61 72 65 20 74 68 65 20 6e 61 6d 65 73 0a 20 20 20 20 20 2a 20 20 20 20 he.keys.are.the.names......*....
43fc0 20 20 20 20 20 20 20 20 20 20 6f 66 20 70 72 6f 70 65 72 74 69 65 73 2f 63 6f 6c 75 6d 6e 73 0a ..........of.properties/columns.
43fe0 20 20 20 20 20 2a 20 40 72 65 74 75 72 6e 20 6f 62 6a 65 63 74 20 61 20 6e 65 77 20 69 6e 73 74 .....*.@return.object.a.new.inst
44000 61 6e 63 65 20 6f 66 20 44 42 5f 73 74 6f 72 61 67 65 20 6f 72 20 61 20 73 75 62 63 6c 61 73 73 ance.of.DB_storage.or.a.subclass
44020 20 6f 66 20 69 74 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 26 63 72 65 .of.it......*/.....function.&cre
44040 61 74 65 28 24 74 61 62 6c 65 2c 20 26 24 64 61 74 61 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 ate($table,.&$data).....{.......
44060 20 20 24 63 6c 61 73 73 6e 61 6d 65 20 3d 20 67 65 74 5f 63 6c 61 73 73 28 24 74 68 69 73 29 3b ..$classname.=.get_class($this);
44080 0a 20 20 20 20 20 20 20 20 24 6f 62 6a 20 3d 20 6e 65 77 20 24 63 6c 61 73 73 6e 61 6d 65 28 24 .........$obj.=.new.$classname($
440a0 74 61 62 6c 65 29 3b 0a 20 20 20 20 20 20 20 20 72 65 73 65 74 28 24 64 61 74 61 29 3b 0a 20 20 table);.........reset($data);...
440c0 20 20 20 20 20 20 77 68 69 6c 65 20 28 6c 69 73 74 28 24 6e 61 6d 65 2c 20 24 76 61 6c 75 65 29 ......while.(list($name,.$value)
440e0 20 3d 20 65 61 63 68 28 24 64 61 74 61 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 6f .=.each($data)).{.............$o
44100 62 6a 2d 3e 5f 70 72 6f 70 65 72 74 69 65 73 5b 24 6e 61 6d 65 5d 20 3d 20 74 72 75 65 3b 0a 20 bj->_properties[$name].=.true;..
44120 20 20 20 20 20 20 20 20 20 20 20 24 6f 62 6a 2d 3e 24 6e 61 6d 65 20 3d 20 26 24 76 61 6c 75 65 ...........$obj->$name.=.&$value
44140 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 6f 62 6a 3b ;.........}.........return.$obj;
44160 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 6c 6f .....}......//.}}}.....//.{{{.lo
44180 61 64 46 72 6f 6d 51 75 65 72 79 28 29 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 4c 6f adFromQuery()....../**......*.Lo
441a0 61 64 73 20 64 61 74 61 20 69 6e 74 6f 20 74 68 69 73 20 6f 62 6a 65 63 74 20 66 72 6f 6d 20 74 ads.data.into.this.object.from.t
441c0 68 65 20 67 69 76 65 6e 20 71 75 65 72 79 2e 20 20 49 66 20 74 68 69 73 0a 20 20 20 20 20 2a 20 he.given.query...If.this......*.
441e0 6f 62 6a 65 63 74 20 61 6c 72 65 61 64 79 20 63 6f 6e 74 61 69 6e 73 20 74 61 62 6c 65 20 64 61 object.already.contains.table.da
44200 74 61 2c 20 63 68 61 6e 67 65 73 20 77 69 6c 6c 20 62 65 20 73 61 76 65 64 20 61 6e 64 0a 20 20 ta,.changes.will.be.saved.and...
44220 20 20 20 2a 20 74 68 65 20 6f 62 6a 65 63 74 20 72 65 2d 69 6e 69 74 69 61 6c 69 7a 65 64 20 66 ...*.the.object.re-initialized.f
44240 69 72 73 74 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 24 71 75 65 72 irst.......*......*.@param.$quer
44260 79 20 53 51 4c 20 71 75 65 72 79 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d y.SQL.query......*......*.@param
44280 20 24 70 61 72 61 6d 73 20 70 61 72 61 6d 65 74 65 72 20 6c 69 73 74 20 69 6e 20 63 61 73 65 20 .$params.parameter.list.in.case.
442a0 79 6f 75 20 77 61 6e 74 20 74 6f 20 75 73 65 0a 20 20 20 20 20 2a 20 70 72 65 70 61 72 65 2f 65 you.want.to.use......*.prepare/e
442c0 78 65 63 75 74 65 20 6d 6f 64 65 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 72 65 74 75 72 xecute.mode......*......*.@retur
442e0 6e 20 69 6e 74 20 44 42 5f 4f 4b 20 6f 6e 20 73 75 63 63 65 73 73 2c 20 44 42 5f 57 41 52 4e 49 n.int.DB_OK.on.success,.DB_WARNI
44300 4e 47 5f 52 45 41 44 5f 4f 4e 4c 59 20 69 66 20 74 68 65 0a 20 20 20 20 20 2a 20 72 65 74 75 72 NG_READ_ONLY.if.the......*.retur
44320 6e 65 64 20 6f 62 6a 65 63 74 20 69 73 20 72 65 61 64 2d 6f 6e 6c 79 20 28 62 65 63 61 75 73 65 ned.object.is.read-only.(because
44340 20 74 68 65 20 6f 62 6a 65 63 74 27 73 20 73 70 65 63 69 66 69 65 64 0a 20 20 20 20 20 2a 20 6b .the.object's.specified......*.k
44360 65 79 20 63 6f 6c 75 6d 6e 20 77 61 73 20 6e 6f 74 20 66 6f 75 6e 64 20 61 6d 6f 6e 67 20 74 68 ey.column.was.not.found.among.th
44380 65 20 63 6f 6c 75 6d 6e 73 20 72 65 74 75 72 6e 65 64 20 62 79 20 24 71 75 65 72 79 29 2c 0a 20 e.columns.returned.by.$query),..
443a0 20 20 20 20 2a 20 6f 72 20 61 6e 6f 74 68 65 72 20 44 42 20 65 72 72 6f 72 20 63 6f 64 65 20 69 ....*.or.another.DB.error.code.i
443c0 6e 20 63 61 73 65 20 6f 66 20 65 72 72 6f 72 73 2e 0a 20 20 20 20 20 2a 2f 0a 2f 2f 20 58 58 58 n.case.of.errors.......*/.//.XXX
443e0 20 63 6f 6d 6d 65 6e 74 65 64 20 6f 75 74 20 66 6f 72 20 6e 6f 77 0a 2f 2a 0a 20 20 20 20 66 75 .commented.out.for.now./*.....fu
44400 6e 63 74 69 6f 6e 20 6c 6f 61 64 46 72 6f 6d 51 75 65 72 79 28 24 71 75 65 72 79 2c 20 24 70 61 nction.loadFromQuery($query,.$pa
44420 72 61 6d 73 20 3d 20 6e 75 6c 6c 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 69 66 20 28 73 rams.=.null).....{.........if.(s
44440 69 7a 65 6f 66 28 24 74 68 69 73 2d 3e 5f 70 72 6f 70 65 72 74 69 65 73 29 29 20 7b 0a 20 20 20 izeof($this->_properties)).{....
44460 20 20 20 20 20 20 20 20 20 69 66 20 28 73 69 7a 65 6f 66 28 24 74 68 69 73 2d 3e 5f 63 68 61 6e .........if.(sizeof($this->_chan
44480 67 65 73 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 73 ges)).{.................$this->s
444a0 74 6f 72 65 28 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 5f tore();.................$this->_
444c0 63 68 61 6e 67 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d changes.=.array();.............}
444e0 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 5f 70 72 6f 70 65 72 74 69 65 73 20 .............$this->_properties.
44500 3d 20 61 72 72 61 79 28 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 24 72 6f =.array();.........}.........$ro
44520 77 64 61 74 61 20 3d 20 24 74 68 69 73 2d 3e 5f 64 62 68 2d 3e 67 65 74 52 6f 77 28 24 71 75 65 wdata.=.$this->_dbh->getRow($que
44540 72 79 2c 20 44 42 5f 46 45 54 43 48 4d 4f 44 45 5f 41 53 53 4f 43 2c 20 24 70 61 72 61 6d 73 29 ry,.DB_FETCHMODE_ASSOC,.$params)
44560 3b 0a 20 20 20 20 20 20 20 20 69 66 20 28 44 42 3a 3a 69 73 45 72 72 6f 72 28 24 72 6f 77 64 61 ;.........if.(DB::isError($rowda
44580 74 61 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 72 6f 77 64 61 ta)).{.............return.$rowda
445a0 74 61 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 72 65 73 65 74 28 24 72 6f 77 ta;.........}.........reset($row
445c0 64 61 74 61 29 3b 0a 20 20 20 20 20 20 20 20 24 66 6f 75 6e 64 5f 6b 65 79 63 6f 6c 75 6d 6e 20 data);.........$found_keycolumn.
445e0 3d 20 66 61 6c 73 65 3b 0a 20 20 20 20 20 20 20 20 77 68 69 6c 65 20 28 6c 69 73 74 28 24 6b 65 =.false;.........while.(list($ke
44600 79 2c 20 24 76 61 6c 75 65 29 20 3d 20 65 61 63 68 28 24 72 6f 77 64 61 74 61 29 29 20 7b 0a 20 y,.$value).=.each($rowdata)).{..
44620 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 24 6b 65 79 20 3d 3d 20 24 74 68 69 73 2d 3e 5f 6b ...........if.($key.==.$this->_k
44640 65 79 63 6f 6c 75 6d 6e 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 66 6f 75 eycolumn).{.................$fou
44660 6e 64 5f 6b 65 79 63 6f 6c 75 6d 6e 20 3d 20 74 72 75 65 3b 0a 20 20 20 20 20 20 20 20 20 20 20 nd_keycolumn.=.true;............
44680 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 5f 70 72 6f 70 65 72 74 69 65 .}.............$this->_propertie
446a0 73 5b 24 6b 65 79 5d 20 3d 20 74 72 75 65 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 74 68 69 s[$key].=.true;.............$thi
446c0 73 2d 3e 24 6b 65 79 20 3d 20 26 24 76 61 6c 75 65 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 75 s->$key.=.&$value;.............u
446e0 6e 73 65 74 28 24 76 61 6c 75 65 29 3b 20 2f 2f 20 68 61 76 65 20 74 6f 20 75 6e 73 65 74 2c 20 nset($value);.//.have.to.unset,.
44700 6f 72 20 61 6c 6c 20 70 72 6f 70 65 72 74 69 65 73 20 77 69 6c 6c 0a 20 20 20 20 20 20 20 20 20 or.all.properties.will..........
44720 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 72 65 66 65 72 20 74 6f 20 74 68 ..................//.refer.to.th
44740 65 20 73 61 6d 65 20 76 61 6c 75 65 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 69 e.same.value.........}.........i
44760 66 20 28 21 24 66 6f 75 6e 64 5f 6b 65 79 63 6f 6c 75 6d 6e 29 20 7b 0a 20 20 20 20 20 20 20 20 f.(!$found_keycolumn).{.........
44780 20 20 20 20 24 74 68 69 73 2d 3e 5f 72 65 61 64 6f 6e 6c 79 20 3d 20 74 72 75 65 3b 0a 20 20 20 ....$this->_readonly.=.true;....
447a0 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 44 42 5f 57 41 52 4e 49 4e 47 5f 52 45 41 44 5f .........return.DB_WARNING_READ_
447c0 4f 4e 4c 59 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 44 ONLY;.........}.........return.D
447e0 42 5f 4f 4b 3b 0a 20 20 20 20 7d 0a 2a 2f 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f B_OK;.....}.*/......//.}}}...../
44800 2f 20 7b 7b 7b 20 73 65 74 28 29 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 4d 6f 64 69 /.{{{.set()....../**......*.Modi
44820 66 79 20 61 6e 20 61 74 74 72 69 75 74 65 20 76 61 6c 75 65 2e 0a 20 20 20 20 20 2a 2f 0a 20 20 fy.an.attriute.value.......*/...
44840 20 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 28 24 70 72 6f 70 65 72 74 79 2c 20 24 6e 65 77 76 61 ..function.set($property,.$newva
44860 6c 75 65 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 2f 2f 20 6f 6e 6c 79 20 63 68 61 6e 67 lue).....{.........//.only.chang
44880 65 20 69 66 20 24 70 72 6f 70 65 72 74 79 20 69 73 20 6b 6e 6f 77 6e 20 61 6e 64 20 6f 62 6a 65 e.if.$property.is.known.and.obje
448a0 63 74 20 69 73 20 6e 6f 74 0a 20 20 20 20 20 20 20 20 2f 2f 20 72 65 61 64 2d 6f 6e 6c 79 0a 20 ct.is.not.........//.read-only..
448c0 20 20 20 20 20 20 20 69 66 20 28 24 74 68 69 73 2d 3e 5f 72 65 61 64 6f 6e 6c 79 29 20 7b 0a 20 .......if.($this->_readonly).{..
448e0 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 61 69 73 65 45 72 ...........return.$this->raiseEr
44900 72 6f 72 28 6e 75 6c 6c 2c 20 44 42 5f 57 41 52 4e 49 4e 47 5f 52 45 41 44 5f 4f 4e 4c 59 2c 20 ror(null,.DB_WARNING_READ_ONLY,.
44920 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 null,...........................
44940 20 20 20 20 20 20 20 20 20 20 20 6e 75 6c 6c 2c 20 6e 75 6c 6c 2c 20 6e 75 6c 6c 2c 20 74 72 75 ...........null,.null,.null,.tru
44960 65 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 69 66 20 28 40 69 73 73 65 74 e);.........}.........if.(@isset
44980 28 24 74 68 69 73 2d 3e 5f 70 72 6f 70 65 72 74 69 65 73 5b 24 70 72 6f 70 65 72 74 79 5d 29 29 ($this->_properties[$property]))
449a0 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 65 6d 70 74 79 28 24 74 68 69 73 2d 3e .{.............if.(empty($this->
449c0 5f 76 61 6c 69 64 61 74 6f 72 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 _validator)).{.................$
449e0 76 61 6c 69 64 20 3d 20 74 72 75 65 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 valid.=.true;.............}.else
44a00 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 76 61 6c 69 64 20 3d 20 40 63 61 6c .{.................$valid.=.@cal
44a20 6c 5f 75 73 65 72 5f 66 75 6e 63 28 24 74 68 69 73 2d 3e 5f 76 61 6c 69 64 61 74 6f 72 2c 0a 20 l_user_func($this->_validator,..
44a40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
44a60 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 5f 74 61 62 6c 65 2c 0a 20 20 20 20 20 20 20 20 20 ........$this->_table,..........
44a80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
44aa0 24 70 72 6f 70 65 72 74 79 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 $property,......................
44ac0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 6e 65 77 76 61 6c 75 65 2c 0a 20 ....................$newvalue,..
44ae0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
44b00 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 24 70 72 6f 70 65 72 74 79 2c 0a 20 20 20 20 20 20 ........$this->$property,.......
44b20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
44b40 20 20 20 24 74 68 69 73 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 ...$this);.............}........
44b60 20 20 20 20 20 69 66 20 28 24 76 61 6c 69 64 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 .....if.($valid).{..............
44b80 20 20 20 24 74 68 69 73 2d 3e 24 70 72 6f 70 65 72 74 79 20 3d 20 24 6e 65 77 76 61 6c 75 65 3b ...$this->$property.=.$newvalue;
44ba0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 40 24 74 68 69 73 2d 3e 5f 63 68 61 6e 67 65 .................@$this->_change
44bc0 73 5b 24 70 72 6f 70 65 72 74 79 5d 2b 2b 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 20 65 6c s[$property]++;.............}.el
44be0 73 65 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 se.{.................return.$thi
44c00 73 2d 3e 72 61 69 73 65 45 72 72 6f 72 28 6e 75 6c 6c 2c 20 44 42 5f 45 52 52 4f 52 5f 49 4e 56 s->raiseError(null,.DB_ERROR_INV
44c20 41 4c 49 44 2c 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ALID,.null,.....................
44c40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 75 6c 6c 2c 20 22 69 6e 76 61 .....................null,."inva
44c60 6c 69 64 20 66 69 65 6c 64 3a 20 24 70 72 6f 70 65 72 74 79 22 2c 0a 20 20 20 20 20 20 20 20 20 lid.field:.$property",..........
44c80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
44ca0 6e 75 6c 6c 2c 20 74 72 75 65 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 null,.true);.............}......
44cc0 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 .......return.true;.........}...
44ce0 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 61 69 73 65 45 72 72 6f 72 28 6e ......return.$this->raiseError(n
44d00 75 6c 6c 2c 20 44 42 5f 45 52 52 4f 52 5f 4e 4f 53 55 43 48 46 49 45 4c 44 2c 20 6e 75 6c 6c 2c ull,.DB_ERROR_NOSUCHFIELD,.null,
44d20 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
44d40 20 20 6e 75 6c 6c 2c 20 22 75 6e 6b 6e 6f 77 6e 20 66 69 65 6c 64 3a 20 24 70 72 6f 70 65 72 74 ..null,."unknown.field:.$propert
44d60 79 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 y",.............................
44d80 20 20 20 20 20 6e 75 6c 6c 2c 20 74 72 75 65 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 .....null,.true);.....}......//.
44da0 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 26 67 65 74 28 29 0a 0a 20 20 20 20 2f 2a 2a 0a 20 }}}.....//.{{{.&get()....../**..
44dc0 20 20 20 20 2a 20 46 65 74 63 68 20 61 6e 20 61 74 74 72 69 62 75 74 65 20 76 61 6c 75 65 2e 0a ....*.Fetch.an.attribute.value..
44de0 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 73 74 72 69 6e 67 20 61 74 74 72 .....*......*.@param.string.attr
44e00 69 62 75 74 65 20 6e 61 6d 65 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 72 65 74 75 72 6e ibute.name......*......*.@return
44e20 20 61 74 74 72 69 62 75 74 65 20 63 6f 6e 74 65 6e 74 73 2c 20 6f 72 20 6e 75 6c 6c 20 69 66 20 .attribute.contents,.or.null.if.
44e40 74 68 65 20 61 74 74 72 69 62 75 74 65 20 6e 61 6d 65 20 69 73 0a 20 20 20 20 20 2a 20 75 6e 6b the.attribute.name.is......*.unk
44e60 6e 6f 77 6e 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 26 67 65 74 28 24 nown......*/.....function.&get($
44e80 70 72 6f 70 65 72 74 79 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 2f 2f 20 6f 6e 6c 79 20 property).....{.........//.only.
44ea0 72 65 74 75 72 6e 20 69 66 20 24 70 72 6f 70 65 72 74 79 20 69 73 20 6b 6e 6f 77 6e 0a 20 20 20 return.if.$property.is.known....
44ec0 20 20 20 20 20 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 5f 70 72 6f 70 65 72 74 69 65 .....if.(isset($this->_propertie
44ee0 73 5b 24 70 72 6f 70 65 72 74 79 5d 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 s[$property])).{.............ret
44f00 75 72 6e 20 24 74 68 69 73 2d 3e 24 70 72 6f 70 65 72 74 79 3b 0a 20 20 20 20 20 20 20 20 7d 0a urn.$this->$property;.........}.
44f20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 6e 75 6c 6c 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 ........return.null;.....}......
44f40 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 5f 44 42 5f 73 74 6f 72 61 67 65 28 29 0a //.}}}.....//.{{{._DB_storage().
44f60 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 44 65 73 74 72 75 63 74 6f 72 2c 20 63 61 6c 6c ...../**......*.Destructor,.call
44f80 73 20 44 42 5f 73 74 6f 72 61 67 65 3a 3a 73 74 6f 72 65 28 29 20 69 66 20 74 68 65 72 65 20 61 s.DB_storage::store().if.there.a
44fa0 72 65 20 63 68 61 6e 67 65 73 0a 20 20 20 20 20 2a 20 74 68 61 74 20 61 72 65 20 74 6f 20 62 65 re.changes......*.that.are.to.be
44fc0 20 6b 65 70 74 2e 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 5f 44 42 5f .kept.......*/.....function._DB_
44fe0 73 74 6f 72 61 67 65 28 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 69 66 20 28 65 6d 70 74 storage().....{.........if.(empt
45000 79 28 24 74 68 69 73 2d 3e 5f 64 69 73 63 61 72 64 29 20 26 26 20 73 69 7a 65 6f 66 28 24 74 68 y($this->_discard).&&.sizeof($th
45020 69 73 2d 3e 5f 63 68 61 6e 67 65 73 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 74 68 is->_changes)).{.............$th
45040 69 73 2d 3e 73 74 6f 72 65 28 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 24 is->store();.........}.........$
45060 74 68 69 73 2d 3e 5f 70 72 6f 70 65 72 74 69 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 20 20 20 this->_properties.=.array();....
45080 20 20 20 20 20 24 74 68 69 73 2d 3e 5f 63 68 61 6e 67 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a .....$this->_changes.=.array();.
450a0 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 5f 74 61 62 6c 65 20 3d 20 6e 75 6c 6c 3b 0a 20 20 ........$this->_table.=.null;...
450c0 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 73 74 6f 72 65 ..}......//.}}}.....//.{{{.store
450e0 28 29 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 53 74 6f 72 65 73 20 63 68 61 6e 67 65 ()....../**......*.Stores.change
45100 73 20 74 6f 20 74 68 69 73 20 6f 62 6a 65 63 74 20 69 6e 20 74 68 65 20 64 61 74 61 62 61 73 65 s.to.this.object.in.the.database
45120 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 72 65 74 75 72 6e 20 44 42 5f 4f 4b 20 6f 72 .......*......*.@return.DB_OK.or
45140 20 61 20 44 42 20 65 72 72 6f 72 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e .a.DB.error......*/.....function
45160 20 73 74 6f 72 65 28 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 77 68 69 6c 65 20 28 6c 69 .store().....{.........while.(li
45180 73 74 28 24 6e 61 6d 65 2c 20 24 63 68 61 6e 67 65 64 29 20 3d 20 65 61 63 68 28 24 74 68 69 73 st($name,.$changed).=.each($this
451a0 2d 3e 5f 63 68 61 6e 67 65 73 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 70 61 72 61 ->_changes)).{.............$para
451c0 6d 73 5b 5d 20 3d 20 26 24 74 68 69 73 2d 3e 24 6e 61 6d 65 3b 0a 20 20 20 20 20 20 20 20 20 20 ms[].=.&$this->$name;...........
451e0 20 20 24 76 61 72 73 5b 5d 20 3d 20 24 6e 61 6d 65 20 2e 20 27 20 3d 20 3f 27 3b 0a 20 20 20 20 ..$vars[].=.$name...'.=.?';.....
45200 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 69 66 20 28 24 76 61 72 73 29 20 7b 0a 20 20 20 20 20 ....}.........if.($vars).{......
45220 20 20 20 20 20 20 20 24 71 75 65 72 79 20 3d 20 27 55 50 44 41 54 45 20 27 20 2e 20 24 74 68 69 .......$query.=.'UPDATE.'...$thi
45240 73 2d 3e 5f 74 61 62 6c 65 20 2e 20 27 20 53 45 54 20 27 20 2e 0a 20 20 20 20 20 20 20 20 20 20 s->_table...'.SET.'.............
45260 20 20 20 20 20 20 69 6d 70 6c 6f 64 65 28 27 2c 20 27 2c 20 24 76 61 72 73 29 20 2e 20 27 20 57 ......implode(',.',.$vars)...'.W
45280 48 45 52 45 20 27 20 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e HERE.'...................$this->
452a0 5f 6d 61 6b 65 57 68 65 72 65 28 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 73 74 6d 74 20 _makeWhere();.............$stmt.
452c0 3d 20 24 74 68 69 73 2d 3e 5f 64 62 68 2d 3e 70 72 65 70 61 72 65 28 24 71 75 65 72 79 29 3b 0a =.$this->_dbh->prepare($query);.
452e0 20 20 20 20 20 20 20 20 20 20 20 20 24 72 65 73 20 3d 20 24 74 68 69 73 2d 3e 5f 64 62 68 2d 3e ............$res.=.$this->_dbh->
45300 65 78 65 63 75 74 65 28 24 73 74 6d 74 2c 20 24 70 61 72 61 6d 73 29 3b 0a 20 20 20 20 20 20 20 execute($stmt,.$params);........
45320 20 20 20 20 20 69 66 20 28 44 42 3a 3a 69 73 45 72 72 6f 72 28 24 72 65 73 29 29 20 7b 0a 20 20 .....if.(DB::isError($res)).{...
45340 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 72 65 73 3b 0a 20 20 20 20 20 ..............return.$res;......
45360 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 5f 63 68 61 .......}.............$this->_cha
45380 6e 67 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 nges.=.array();.........}.......
453a0 20 20 72 65 74 75 72 6e 20 44 42 5f 4f 4b 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d ..return.DB_OK;.....}......//.}}
453c0 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 72 65 6d 6f 76 65 28 29 0a 0a 20 20 20 20 2f 2a 2a 0a 20 }.....//.{{{.remove()....../**..
453e0 20 20 20 20 2a 20 52 65 6d 6f 76 65 20 74 68 65 20 72 6f 77 20 72 65 70 72 65 73 65 6e 74 65 64 ....*.Remove.the.row.represented
45400 20 62 79 20 74 68 69 73 20 6f 62 6a 65 63 74 20 66 72 6f 6d 20 74 68 65 20 64 61 74 61 62 61 73 .by.this.object.from.the.databas
45420 65 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 72 65 74 75 72 6e 20 6d 69 78 65 64 20 44 e.......*......*.@return.mixed.D
45440 42 5f 4f 4b 20 6f 72 20 61 20 44 42 20 65 72 72 6f 72 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 66 B_OK.or.a.DB.error......*/.....f
45460 75 6e 63 74 69 6f 6e 20 72 65 6d 6f 76 65 28 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 69 unction.remove().....{.........i
45480 66 20 28 24 74 68 69 73 2d 3e 5f 72 65 61 64 6f 6e 6c 79 29 20 7b 0a 20 20 20 20 20 20 20 20 20 f.($this->_readonly).{..........
454a0 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 61 69 73 65 45 72 72 6f 72 28 6e 75 6c 6c ...return.$this->raiseError(null
454c0 2c 20 44 42 5f 57 41 52 4e 49 4e 47 5f 52 45 41 44 5f 4f 4e 4c 59 2c 20 6e 75 6c 6c 2c 0a 20 20 ,.DB_WARNING_READ_ONLY,.null,...
454e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
45500 20 20 20 6e 75 6c 6c 2c 20 6e 75 6c 6c 2c 20 6e 75 6c 6c 2c 20 74 72 75 65 29 3b 0a 20 20 20 20 ...null,.null,.null,.true);.....
45520 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 24 71 75 65 72 79 20 3d 20 27 44 45 4c 45 54 45 20 46 ....}.........$query.=.'DELETE.F
45540 52 4f 4d 20 27 20 2e 20 24 74 68 69 73 2d 3e 5f 74 61 62 6c 65 20 2e 27 20 57 48 45 52 45 20 27 ROM.'...$this->_table..'.WHERE.'
45560 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 5f 6d 61 6b 65 57 68 65 72 65 28 ..............$this->_makeWhere(
45580 29 3b 0a 20 20 20 20 20 20 20 20 24 72 65 73 20 3d 20 24 74 68 69 73 2d 3e 5f 64 62 68 2d 3e 71 );.........$res.=.$this->_dbh->q
455a0 75 65 72 79 28 24 71 75 65 72 79 29 3b 0a 20 20 20 20 20 20 20 20 69 66 20 28 44 42 3a 3a 69 73 uery($query);.........if.(DB::is
455c0 45 72 72 6f 72 28 24 72 65 73 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 Error($res)).{.............retur
455e0 6e 20 24 72 65 73 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 66 6f 72 65 61 63 n.$res;.........}.........foreac
45600 68 20 28 24 74 68 69 73 2d 3e 5f 70 72 6f 70 65 72 74 69 65 73 20 61 73 20 24 70 72 6f 70 20 3d h.($this->_properties.as.$prop.=
45620 3e 20 24 66 6f 6f 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 75 6e 73 65 74 28 24 74 68 69 >.$foo).{.............unset($thi
45640 73 2d 3e 24 70 72 6f 70 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 24 74 68 s->$prop);.........}.........$th
45660 69 73 2d 3e 5f 70 72 6f 70 65 72 74 69 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 20 20 20 20 20 is->_properties.=.array();......
45680 20 20 20 24 74 68 69 73 2d 3e 5f 63 68 61 6e 67 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 20 20 ...$this->_changes.=.array();...
456a0 20 20 20 20 20 20 72 65 74 75 72 6e 20 44 42 5f 4f 4b 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f ......return.DB_OK;.....}....../
456c0 2f 20 7d 7d 7d 0a 7d 0a 0a 3f 3e 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 /.}}}.}..?>.....................
456e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
45700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
45720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
45740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
45760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
45780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
457a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
457c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
457e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
45800 44 42 2d 31 2e 35 2e 30 52 43 31 2f 44 42 2f 73 71 6c 69 74 65 2e 70 68 70 00 00 00 00 00 00 00 DB-1.5.0RC1/DB/sqlite.php.......
45820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
45840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
45860 00 00 00 00 31 30 30 36 34 34 20 00 20 20 20 37 36 34 20 00 20 20 20 31 34 34 20 00 20 20 20 20 ....100644.....764.....144......
45880 20 20 34 35 37 30 33 20 20 37 36 37 35 34 34 32 33 33 33 20 20 31 30 30 31 37 20 00 00 00 00 00 ..45703..7675442333..10017......
458a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
458c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
458e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
45900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
45920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
45940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
45960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
45980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
459a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
459c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
459e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
45a00 3c 3f 70 68 70 0a 2f 2a 20 76 69 6d 3a 20 73 65 74 20 65 78 70 61 6e 64 74 61 62 20 74 61 62 73 <?php./*.vim:.set.expandtab.tabs
45a20 74 6f 70 3d 34 20 73 68 69 66 74 77 69 64 74 68 3d 34 20 66 6f 6c 64 6d 65 74 68 6f 64 3d 6d 61 top=4.shiftwidth=4.foldmethod=ma
45a40 72 6b 65 72 3a 20 2a 2f 0a 2f 2f 20 2b 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d rker:.*/.//.+-------------------
45a60 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
45a80 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2b 0a 2f 2f 20 7c 20 50 48 50 20 56 65 -------------------+.//.|.PHP.Ve
45aa0 72 73 69 6f 6e 20 34 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 rsion.4.........................
45ac0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c ...............................|
45ae0 0a 2f 2f 20 2b 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d .//.+---------------------------
45b00 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
45b20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2b 0a 2f 2f 20 7c 20 43 6f 70 79 72 69 67 68 74 20 28 63 29 20 -----------+.//.|.Copyright.(c).
45b40 31 39 39 37 2d 32 30 30 33 20 54 68 65 20 50 48 50 20 47 72 6f 75 70 20 20 20 20 20 20 20 20 20 1997-2003.The.PHP.Group.........
45b60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 2f 2f 20 2b 2d 2d 2d .......................|.//.+---
45b80 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
45ba0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
45bc0 2d 2d 2d 2b 0a 2f 2f 20 7c 20 54 68 69 73 20 73 6f 75 72 63 65 20 66 69 6c 65 20 69 73 20 73 75 ---+.//.|.This.source.file.is.su
45be0 62 6a 65 63 74 20 74 6f 20 76 65 72 73 69 6f 6e 20 32 2e 30 32 20 6f 66 20 74 68 65 20 50 48 50 bject.to.version.2.02.of.the.PHP
45c00 20 6c 69 63 65 6e 73 65 2c 20 20 20 20 20 20 7c 0a 2f 2f 20 7c 20 74 68 61 74 20 69 73 20 62 75 .license,......|.//.|.that.is.bu
45c20 6e 64 6c 65 64 20 77 69 74 68 20 74 68 69 73 20 70 61 63 6b 61 67 65 20 69 6e 20 74 68 65 20 66 ndled.with.this.package.in.the.f
45c40 69 6c 65 20 4c 49 43 45 4e 53 45 2c 20 61 6e 64 20 69 73 20 20 20 20 20 20 20 20 7c 0a 2f 2f 20 ile.LICENSE,.and.is........|.//.
45c60 7c 20 61 76 61 69 6c 61 62 6c 65 20 61 74 20 74 68 72 6f 75 67 68 20 74 68 65 20 77 6f 72 6c 64 |.available.at.through.the.world
45c80 2d 77 69 64 65 2d 77 65 62 20 61 74 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -wide-web.at....................
45ca0 20 20 20 20 20 20 20 7c 0a 2f 2f 20 7c 20 68 74 74 70 3a 2f 2f 77 77 77 2e 70 68 70 2e 6e 65 74 .......|.//.|.http://www.php.net
45cc0 2f 6c 69 63 65 6e 73 65 2f 32 5f 30 32 2e 74 78 74 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 /license/2_02.txt...............
45ce0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 2f 2f 20 7c 20 49 66 20 79 6f 75 ...................|.//.|.If.you
45d00 20 64 69 64 20 6e 6f 74 20 72 65 63 65 69 76 65 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 50 .did.not.receive.a.copy.of.the.P
45d20 48 50 20 6c 69 63 65 6e 73 65 20 61 6e 64 20 61 72 65 20 75 6e 61 62 6c 65 20 74 6f 20 20 20 7c HP.license.and.are.unable.to...|
45d40 0a 2f 2f 20 7c 20 6f 62 74 61 69 6e 20 69 74 20 74 68 72 6f 75 67 68 20 74 68 65 20 77 6f 72 6c .//.|.obtain.it.through.the.worl
45d60 64 2d 77 69 64 65 2d 77 65 62 2c 20 70 6c 65 61 73 65 20 73 65 6e 64 20 61 20 6e 6f 74 65 20 74 d-wide-web,.please.send.a.note.t
45d80 6f 20 20 20 20 20 20 20 20 20 20 7c 0a 2f 2f 20 7c 20 6c 69 63 65 6e 73 65 40 70 68 70 2e 6e 65 o..........|.//.|.license@php.ne
45da0 74 20 73 6f 20 77 65 20 63 61 6e 20 6d 61 69 6c 20 79 6f 75 20 61 20 63 6f 70 79 20 69 6d 6d 65 t.so.we.can.mail.you.a.copy.imme
45dc0 64 69 61 74 65 6c 79 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 2f 2f 20 2b 2d 2d 2d diately................|.//.+---
45de0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
45e00 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
45e20 2d 2d 2d 2b 0a 2f 2f 20 7c 20 41 75 74 68 6f 72 3a 20 55 72 73 20 47 65 68 72 69 67 20 3c 75 72 ---+.//.|.Author:.Urs.Gehrig.<ur
45e40 73 40 63 69 72 63 6c 65 2e 63 68 3e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 s@circle.ch>....................
45e60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 2f 2f 20 2b 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ...............|.//.+-----------
45e80 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
45ea0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2b 0a 2f 2f 0a ---------------------------+.//.
45ec0 2f 2f 20 24 49 64 3a 20 73 71 6c 69 74 65 2e 70 68 70 2c 76 20 31 2e 32 20 32 30 30 33 2f 30 36 //.$Id:.sqlite.php,v.1.2.2003/06
45ee0 2f 32 33 20 30 30 3a 30 37 3a 35 35 20 63 6f 78 20 45 78 70 20 24 0a 2f 2f 0a 2f 2f 20 44 61 74 /23.00:07:55.cox.Exp.$.//.//.Dat
45f00 61 62 61 73 65 20 69 6e 64 65 70 65 6e 64 65 6e 74 20 71 75 65 72 79 20 69 6e 74 65 72 66 61 63 abase.independent.query.interfac
45f20 65 20 64 65 66 69 6e 69 74 69 6f 6e 20 66 6f 72 20 74 68 65 20 50 45 43 4c 27 73 20 53 51 4c 69 e.definition.for.the.PECL's.SQLi
45f40 74 65 0a 2f 2f 20 65 78 74 65 6e 73 69 6f 6e 2e 0a 2f 2f 0a 2f 2f 20 53 51 4c 69 74 65 20 66 75 te.//.extension..//.//.SQLite.fu
45f60 6e 63 74 69 6f 6e 20 73 65 74 3a 0a 2f 2f 20 20 20 73 71 6c 69 74 65 5f 6f 70 65 6e 2c 20 73 71 nction.set:.//...sqlite_open,.sq
45f80 6c 69 74 65 5f 70 6f 70 65 6e 2c 20 73 71 6c 69 74 65 5f 63 6c 6f 73 65 2c 20 73 71 6c 69 74 65 lite_popen,.sqlite_close,.sqlite
45fa0 5f 71 75 65 72 79 0a 2f 2f 20 20 20 73 71 6c 69 74 65 5f 6c 69 62 76 65 72 73 69 6f 6e 2c 20 73 _query.//...sqlite_libversion,.s
45fc0 71 6c 69 74 65 5f 6c 69 62 65 6e 63 6f 64 69 6e 67 2c 20 73 71 6c 69 74 65 5f 63 68 61 6e 67 65 qlite_libencoding,.sqlite_change
45fe0 73 0a 2f 2f 20 20 20 73 71 6c 69 74 65 5f 6e 75 6d 5f 72 6f 77 73 2c 20 73 71 6c 69 74 65 5f 6e s.//...sqlite_num_rows,.sqlite_n
46000 75 6d 5f 66 69 65 6c 64 73 2c 20 73 71 6c 69 74 65 5f 66 69 65 6c 64 5f 6e 61 6d 65 2c 20 73 71 um_fields,.sqlite_field_name,.sq
46020 6c 69 74 65 5f 73 65 65 6b 0a 2f 2f 20 20 20 73 71 6c 69 74 65 5f 65 73 63 61 70 65 5f 73 74 72 lite_seek.//...sqlite_escape_str
46040 69 6e 67 2c 20 73 71 6c 69 74 65 5f 62 75 73 79 5f 74 69 6d 65 6f 75 74 2c 20 73 71 6c 69 74 65 ing,.sqlite_busy_timeout,.sqlite
46060 5f 6c 61 73 74 5f 65 72 72 6f 72 0a 2f 2f 20 20 20 73 71 6c 69 74 65 5f 65 72 72 6f 72 5f 73 74 _last_error.//...sqlite_error_st
46080 72 69 6e 67 2c 20 73 71 6c 69 74 65 5f 75 6e 62 75 66 66 65 72 65 64 5f 71 75 65 72 79 2c 20 73 ring,.sqlite_unbuffered_query,.s
460a0 71 6c 69 74 65 5f 63 72 65 61 74 65 5f 61 67 67 72 65 67 61 74 65 0a 2f 2f 20 20 20 73 71 6c 69 qlite_create_aggregate.//...sqli
460c0 74 65 5f 63 72 65 61 74 65 5f 66 75 6e 63 74 69 6f 6e 2c 20 73 71 6c 69 74 65 5f 6c 61 73 74 5f te_create_function,.sqlite_last_
460e0 69 6e 73 65 72 74 5f 72 6f 77 69 64 2c 20 73 71 6c 69 74 65 5f 66 65 74 63 68 5f 61 72 72 61 79 insert_rowid,.sqlite_fetch_array
46100 0a 2f 2f 0a 2f 2f 20 46 6f 72 6d 61 74 74 69 6e 67 3a 20 0a 2f 2f 20 20 20 23 20 61 73 74 79 6c .//.//.Formatting:..//...#.astyl
46120 65 20 2d 2d 73 74 79 6c 65 3d 6b 72 20 3c 20 73 71 6c 69 74 65 2e 70 68 70 20 3e 20 6f 75 74 2e e.--style=kr.<.sqlite.php.>.out.
46140 70 68 70 0a 2f 2f 0a 2f 2f 20 53 74 61 74 75 73 3a 0a 2f 2f 20 20 20 45 58 50 45 52 49 4d 45 4e php.//.//.Status:.//...EXPERIMEN
46160 54 41 4c 0a 0a 2f 2a 2a 0a 2a 20 45 78 61 6d 70 6c 65 3a 20 20 0a 2a 0a 3c 3f 70 68 70 0a 20 20 TAL../**.*.Example:...*.<?php...
46180 20 20 0a 20 20 20 20 69 66 20 28 21 65 78 74 65 6e 73 69 6f 6e 5f 6c 6f 61 64 65 64 28 27 73 71 .......if.(!extension_loaded('sq
461a0 6c 69 74 65 27 29 29 20 7b 0a 20 20 20 20 20 20 20 20 69 66 20 28 21 64 6c 28 73 74 72 69 73 74 lite')).{.........if.(!dl(strist
461c0 72 28 50 48 50 5f 4f 53 2c 20 22 57 49 4e 22 29 20 3f 20 22 70 68 70 5f 73 71 6c 69 74 65 2e 64 r(PHP_OS,."WIN").?."php_sqlite.d
461e0 6c 6c 22 20 3a 20 22 73 71 6c 69 74 65 2e 73 6f 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 ll".:."sqlite.so")).............
46200 65 78 69 74 28 22 43 6f 75 6c 64 20 6e 6f 74 20 6c 6f 61 64 20 74 68 65 20 53 51 4c 69 74 65 20 exit("Could.not.load.the.SQLite.
46220 65 78 74 65 6e 73 69 6f 6e 2e 5c 6e 22 29 3b 0a 20 20 20 20 7d 0a 20 20 20 20 0a 20 20 20 20 72 extension.\n");.....}..........r
46240 65 71 75 69 72 65 5f 6f 6e 63 65 20 27 44 42 2e 70 68 70 27 3b 0a 20 20 20 20 72 65 71 75 69 72 equire_once.'DB.php';.....requir
46260 65 5f 6f 6e 63 65 20 27 44 42 2f 73 71 6c 69 74 65 2e 70 68 70 27 3b 0a 20 20 20 20 0a 20 20 20 e_once.'DB/sqlite.php';.........
46280 20 2f 2f 20 44 65 66 69 6e 65 20 61 20 44 53 4e 0a 20 20 20 20 24 64 73 6e 20 3d 20 61 72 72 61 .//.Define.a.DSN.....$dsn.=.arra
462a0 79 20 28 0a 20 20 20 20 20 20 20 20 27 70 68 70 74 79 70 65 27 20 20 20 3d 3e 20 22 73 71 6c 69 y.(.........'phptype'...=>."sqli
462c0 74 65 22 2c 0a 20 20 20 20 20 20 20 20 27 64 61 74 61 62 61 73 65 27 20 20 3d 3e 20 67 65 74 63 te",.........'database'..=>.getc
462e0 77 64 28 29 20 2e 20 22 2f 74 65 73 74 31 2e 64 62 22 2c 0a 20 20 20 20 20 20 20 20 27 6d 6f 64 wd()..."/test1.db",.........'mod
46300 65 27 20 20 20 20 20 20 3d 3e 20 30 36 34 34 0a 20 20 20 20 29 3b 0a 20 20 20 20 24 64 62 20 3d e'......=>.0644.....);.....$db.=
46320 20 26 6e 65 77 20 44 42 5f 73 71 6c 69 74 65 28 29 3b 0a 20 20 20 20 24 64 62 2d 3e 63 6f 6e 6e .&new.DB_sqlite();.....$db->conn
46340 65 63 74 28 24 64 73 6e 2c 20 61 72 72 61 79 28 27 70 65 72 73 69 73 74 65 6e 74 27 3d 3e 20 74 ect($dsn,.array('persistent'=>.t
46360 72 75 65 29 20 29 3b 0a 20 20 20 20 0a 20 20 20 20 2f 2f 20 47 69 76 65 20 61 20 6e 65 77 20 74 rue).);..........//.Give.a.new.t
46380 61 62 6c 65 20 6e 61 6d 65 0a 20 20 20 20 24 74 61 62 6c 65 20 3d 20 22 74 62 6c 5f 22 20 2e 20 able.name.....$table.=."tbl_"...
463a0 20 6d 64 35 28 75 6e 69 71 69 64 28 72 61 6e 64 28 29 29 29 3b 0a 20 20 20 20 24 74 61 62 6c 65 .md5(uniqid(rand()));.....$table
463c0 20 3d 20 73 75 62 73 74 72 28 24 74 61 62 6c 65 2c 20 30 2c 20 31 30 29 3b 0a 20 20 20 20 0a 20 .=.substr($table,.0,.10);.......
463e0 20 20 20 2f 2f 20 43 72 65 61 74 65 20 61 20 6e 65 77 20 74 61 62 6c 65 0a 20 20 20 20 24 72 65 ...//.Create.a.new.table.....$re
46400 73 75 6c 74 20 3d 20 24 64 62 2d 3e 71 75 65 72 79 28 22 43 52 45 41 54 45 20 54 41 42 4c 45 20 sult.=.$db->query("CREATE.TABLE.
46420 24 74 61 62 6c 65 20 28 63 6f 6d 6d 65 6e 74 20 76 61 72 63 68 61 72 28 35 30 29 2c 20 0a 20 20 $table.(comment.varchar(50),....
46440 20 20 20 20 64 61 74 65 74 69 6d 65 20 76 61 72 63 68 61 72 28 35 30 29 29 3b 22 29 3b 0a 20 20 ....datetime.varchar(50));");...
46460 20 20 24 72 65 73 75 6c 74 20 3d 20 24 64 62 2d 3e 71 75 65 72 79 28 22 49 4e 53 45 52 54 20 49 ..$result.=.$db->query("INSERT.I
46480 4e 54 4f 20 24 74 61 62 6c 65 20 56 41 4c 55 45 53 20 28 27 44 61 74 65 20 61 6e 64 20 54 69 6d NTO.$table.VALUES.('Date.and.Tim
464a0 65 27 2c 20 27 22 20 2e 20 0a 20 20 20 20 20 20 64 61 74 65 28 27 59 2d 6d 2d 6a 20 48 3a 69 3a e',.'"..........date('Y-m-j.H:i:
464c0 73 27 29 20 2e 20 22 27 29 3b 22 29 3b 0a 20 20 20 20 0a 20 20 20 20 2f 2f 20 47 65 74 20 72 65 s')..."');");..........//.Get.re
464e0 73 75 6c 74 73 0a 20 20 20 20 70 72 69 6e 74 66 28 22 61 66 66 65 63 74 65 64 52 6f 77 73 3a 5c sults.....printf("affectedRows:\
46500 74 5c 74 25 73 5c 6e 22 2c 20 24 64 62 2d 3e 61 66 66 65 63 74 65 64 52 6f 77 73 28 29 20 29 3b t\t%s\n",.$db->affectedRows().);
46520 0a 20 20 20 20 70 72 69 6e 74 66 28 22 67 65 74 4c 61 73 74 49 6e 73 65 72 74 49 64 3a 5c 74 25 .....printf("getLastInsertId:\t%
46540 73 5c 6e 22 2c 20 24 64 62 2d 3e 67 65 74 4c 61 73 74 49 6e 73 65 72 74 49 64 28 29 20 29 3b 0a s\n",.$db->getLastInsertId().);.
46560 20 20 20 20 24 72 65 73 75 6c 74 20 3d 20 24 64 62 2d 3e 71 75 65 72 79 28 22 53 45 4c 45 43 54 ....$result.=.$db->query("SELECT
46580 20 46 52 4f 4d 20 24 74 61 62 6c 65 3b 22 20 29 3b 0a 20 20 20 20 24 61 72 72 20 3d 20 24 64 62 .FROM.$table;".);.....$arr.=.$db
465a0 2d 3e 66 65 74 63 68 52 6f 77 28 24 72 65 73 75 6c 74 20 29 3b 0a 20 20 20 20 70 72 69 6e 74 5f ->fetchRow($result.);.....print_
465c0 72 28 24 61 72 72 20 29 3b 0a 20 20 20 20 24 64 62 2d 3e 64 69 73 63 6f 6e 6e 65 63 74 28 29 3b r($arr.);.....$db->disconnect();
465e0 0a 3f 3e 0a 2a 0a 2a 2f 0a 0a 72 65 71 75 69 72 65 5f 6f 6e 63 65 20 27 44 42 2f 63 6f 6d 6d 6f .?>.*.*/..require_once.'DB/commo
46600 6e 2e 70 68 70 27 3b 0a 0a 2f 2f 20 7b 7b 7b 20 63 6f 6e 73 74 61 6e 74 73 0a 2f 2f 20 7b 7b 7b n.php';..//.{{{.constants.//.{{{
46620 20 66 65 74 63 68 20 6d 6f 64 65 73 0a 2f 2a 2a 0a 20 2a 20 54 68 69 73 20 69 73 20 61 20 73 70 .fetch.modes./**..*.This.is.a.sp
46640 65 63 69 61 6c 20 63 6f 6e 73 74 61 6e 74 20 74 68 61 74 20 74 65 6c 6c 73 20 44 42 20 74 68 65 ecial.constant.that.tells.DB.the
46660 20 75 73 65 72 20 68 61 73 6e 27 74 20 73 70 65 63 69 66 69 65 64 0a 20 2a 20 61 6e 79 20 70 61 .user.hasn't.specified..*.any.pa
46680 72 74 69 63 75 6c 61 72 20 67 65 74 20 6d 6f 64 65 2c 20 73 6f 20 74 68 65 20 64 65 66 61 75 6c rticular.get.mode,.so.the.defaul
466a0 74 20 73 68 6f 75 6c 64 20 62 65 20 75 73 65 64 2e 0a 20 2a 2f 0a 0a 64 65 66 69 6e 65 28 27 44 t.should.be.used...*/..define('D
466c0 42 5f 46 45 54 43 48 4d 4f 44 45 5f 42 4f 54 48 27 2c 20 53 51 4c 49 54 45 5f 41 53 53 4f 43 20 B_FETCHMODE_BOTH',.SQLITE_ASSOC.
466e0 7c 20 53 51 4c 49 54 45 5f 4e 55 4d 20 29 3b 0a 0a 2f 2a 20 66 6f 72 20 63 6f 6d 70 61 74 69 62 |.SQLITE_NUM.);../*.for.compatib
46700 69 6c 69 74 79 20 2a 2f 0a 0a 64 65 66 69 6e 65 28 27 44 42 5f 47 45 54 4d 4f 44 45 5f 42 4f 54 ility.*/..define('DB_GETMODE_BOT
46720 48 27 2c 20 44 42 5f 46 45 54 43 48 4d 4f 44 45 5f 42 4f 54 48 29 3b 0a 0a 2f 2f 20 7d 7d 7d 0a H',.DB_FETCHMODE_BOTH);..//.}}}.
46740 2f 2f 20 7d 7d 7d 0a 0a 2f 2f 20 7b 7b 7b 20 63 6c 61 73 73 20 44 42 5f 73 71 6c 69 74 65 0a 0a //.}}}..//.{{{.class.DB_sqlite..
46760 63 6c 61 73 73 20 44 42 5f 73 71 6c 69 74 65 20 65 78 74 65 6e 64 73 20 44 42 5f 63 6f 6d 6d 6f class.DB_sqlite.extends.DB_commo
46780 6e 20 7b 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 70 72 6f 70 65 72 74 69 65 73 0a 0a 20 20 20 20 76 n.{.....//.{{{.properties......v
467a0 61 72 20 24 63 6f 6e 6e 65 63 74 69 6f 6e 3b 0a 20 20 20 20 76 61 72 20 24 70 68 70 74 79 70 65 ar.$connection;.....var.$phptype
467c0 2c 20 24 64 62 73 79 6e 74 61 78 3b 0a 20 20 20 20 76 61 72 20 24 70 72 65 70 61 72 65 5f 74 6f ,.$dbsyntax;.....var.$prepare_to
467e0 6b 65 6e 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 20 20 20 20 76 61 72 20 24 70 72 65 70 61 72 65 kens.=.array();.....var.$prepare
46800 5f 74 79 70 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 _types.=.array();......//.}}}...
46820 20 20 2f 2f 20 7b 7b 7b 20 63 6f 6e 73 74 72 75 63 74 6f 72 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 ..//.{{{.constructor....../**...
46840 20 20 2a 20 43 6f 6e 73 74 72 75 63 74 6f 72 20 66 6f 72 20 74 68 69 73 20 63 6c 61 73 73 3b 20 ..*.Constructor.for.this.class;.
46860 45 72 72 6f 72 20 63 6f 64 65 73 20 61 63 63 6f 72 64 69 6e 67 20 74 6f 20 73 71 6c 69 74 65 5f Error.codes.according.to.sqlite_
46880 65 78 65 63 0a 20 20 20 20 2a 20 45 72 72 6f 72 20 43 6f 64 65 73 20 73 70 65 63 69 66 69 63 61 exec.....*.Error.Codes.specifica
468a0 74 69 6f 6e 20 28 73 65 65 20 6f 6e 6c 69 6e 65 20 6d 61 6e 75 61 6c 2c 20 68 74 74 70 3a 2f 2f tion.(see.online.manual,.http://
468c0 73 71 6c 69 74 65 2e 6f 72 67 2f 63 5f 69 6e 74 65 72 66 61 63 65 2e 68 74 6d 6c 2e 0a 20 20 20 sqlite.org/c_interface.html.....
468e0 20 2a 20 54 68 69 73 20 65 72 72 6f 72 68 61 6e 64 6c 69 6e 67 20 62 61 73 65 64 20 6f 6e 20 73 .*.This.errorhandling.based.on.s
46900 71 6c 69 74 65 5f 65 78 65 63 20 69 73 20 6e 6f 74 20 79 65 74 20 69 6d 70 6c 65 6d 65 6e 74 65 qlite_exec.is.not.yet.implemente
46920 64 2e 0a 20 20 20 20 2a 0a 20 20 20 20 2a 20 40 61 63 63 65 73 73 20 70 75 62 6c 69 63 0a 20 20 d......*.....*.@access.public...
46940 20 20 2a 2f 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 44 42 5f 73 71 6c 69 74 65 28 29 20 7b 0a ..*/.....function.DB_sqlite().{.
46960 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 44 42 5f 63 6f 6d 6d 6f 6e 28 29 3b 0a 20 20 20 20 ........$this->DB_common();.....
46980 20 20 20 20 24 74 68 69 73 2d 3e 70 68 70 74 79 70 65 20 3d 20 27 73 71 6c 69 74 65 27 3b 0a 20 ....$this->phptype.=.'sqlite';..
469a0 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 64 62 73 79 6e 74 61 78 20 3d 20 27 73 71 6c 69 74 65 .......$this->dbsyntax.=.'sqlite
469c0 27 3b 0a 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 66 65 61 74 75 72 65 73 20 3d 20 61 72 72 ';.........$this->features.=.arr
469e0 61 79 20 28 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ay.(............................
46a00 20 20 20 27 70 72 65 70 61 72 65 27 20 3d 3e 20 66 61 6c 73 65 2c 0a 20 20 20 20 20 20 20 20 20 ...'prepare'.=>.false,..........
46a20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 70 63 6f 6e 6e 65 63 74 27 20 .....................'pconnect'.
46a40 3d 3e 20 74 72 75 65 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 =>.true,........................
46a60 20 20 20 20 20 20 20 27 74 72 61 6e 73 61 63 74 69 6f 6e 73 27 20 3d 3e 20 66 61 6c 73 65 2c 0a .......'transactions'.=>.false,.
46a80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 6c ..............................'l
46aa0 69 6d 69 74 27 20 3d 3e 20 27 65 6d 75 6c 61 74 65 27 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 imit'.=>.'emulate'..............
46ac0 20 20 20 20 20 20 20 20 20 20 20 20 20 29 3b 0a 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 6f .............);.........$this->o
46ae0 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 20 28 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ptions.=.array.(................
46b00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 6f 70 74 69 6d 69 7a 65 27 20 3d 3e 20 27 70 6f 72 ..............'optimize'.=>.'por
46b20 74 61 62 69 6c 69 74 79 27 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 tability'.......................
46b40 20 20 20 29 3b 0a 0a 20 20 20 20 20 20 20 20 2f 2f 20 53 51 4c 69 74 65 20 64 61 74 61 20 74 79 ...);..........//.SQLite.data.ty
46b60 70 65 73 2c 20 68 74 74 70 3a 2f 2f 77 77 77 2e 73 71 6c 69 74 65 2e 6f 72 67 2f 64 61 74 61 74 pes,.http://www.sqlite.org/datat
46b80 79 70 65 73 2e 68 74 6d 6c 0a 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 6b 65 79 77 6f 72 64 ypes.html.........$this->keyword
46ba0 73 20 3d 20 61 72 72 61 79 20 28 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 s.=.array.(.....................
46bc0 20 20 20 20 20 20 20 20 20 20 22 42 4c 4f 42 22 20 20 20 20 20 20 3d 3e 20 22 22 2c 0a 20 20 20 .........."BLOB"......=>."",....
46be0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 42 4f 4f 4c ..........................."BOOL
46c00 45 41 4e 22 20 20 20 3d 3e 20 22 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 EAN"...=>."",...................
46c20 20 20 20 20 20 20 20 20 20 20 20 20 22 43 48 41 52 41 43 54 45 52 22 20 3d 3e 20 22 22 2c 0a 20 ............"CHARACTER".=>."",..
46c40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 43 4c ............................."CL
46c60 4f 42 22 20 20 20 20 20 20 3d 3e 20 22 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 OB"......=>."",.................
46c80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 46 4c 4f 41 54 22 20 20 20 20 20 3d 3e 20 22 22 2c .............."FLOAT".....=>."",
46ca0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 ..............................."
46cc0 49 4e 54 45 47 45 52 22 20 20 20 3d 3e 20 22 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 INTEGER"...=>."",...............
46ce0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 4b 45 59 22 20 20 20 20 20 20 20 3d 3e 20 22 ................"KEY".......=>."
46d00 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ",..............................
46d20 20 22 4e 41 54 49 4f 4e 41 4c 22 20 20 3d 3e 20 22 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 ."NATIONAL"..=>."",.............
46d40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 4e 55 4d 45 52 49 43 22 20 20 20 3d 3e .................."NUMERIC"...=>
46d60 20 22 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ."",............................
46d80 20 20 20 22 4e 56 41 52 43 48 41 52 22 20 20 3d 3e 20 22 22 2c 0a 20 20 20 20 20 20 20 20 20 20 ..."NVARCHAR"..=>."",...........
46da0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 50 52 49 4d 41 52 59 22 20 20 20 ...................."PRIMARY"...
46dc0 3d 3e 20 22 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 =>."",..........................
46de0 20 20 20 20 20 22 54 45 58 54 22 20 20 20 20 20 20 3d 3e 20 22 22 2c 0a 20 20 20 20 20 20 20 20 ....."TEXT"......=>."",.........
46e00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 54 49 4d 45 53 54 41 4d 50 ......................"TIMESTAMP
46e20 22 20 3d 3e 20 22 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ".=>."",........................
46e40 20 20 20 20 20 20 20 22 55 4e 49 51 55 45 22 20 20 20 20 3d 3e 20 22 22 2c 0a 20 20 20 20 20 20 ......."UNIQUE"....=>."",.......
46e60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 56 41 52 43 48 41 52 ........................"VARCHAR
46e80 22 20 20 20 3d 3e 20 22 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 "...=>."",......................
46ea0 20 20 20 20 20 20 20 20 20 22 56 41 52 59 49 4e 47 22 20 20 20 3d 3e 20 22 22 0a 20 20 20 20 20 ........."VARYING"...=>.""......
46ec0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 29 3b 0a 20 20 20 20 20 20 20 20 .....................);.........
46ee0 24 74 68 69 73 2d 3e 65 72 72 6f 72 63 6f 64 65 5f 6d 61 70 20 3d 20 61 72 72 61 79 28 0a 20 20 $this->errorcode_map.=.array(...
46f00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
46f20 20 31 30 30 34 20 3d 3e 20 44 42 5f 45 52 52 4f 52 5f 43 41 4e 4e 4f 54 5f 43 52 45 41 54 45 2c .1004.=>.DB_ERROR_CANNOT_CREATE,
46f40 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
46f60 20 20 20 20 31 30 30 35 20 3d 3e 20 44 42 5f 45 52 52 4f 52 5f 43 41 4e 4e 4f 54 5f 43 52 45 41 ....1005.=>.DB_ERROR_CANNOT_CREA
46f80 54 45 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 TE,.............................
46fa0 20 20 20 20 20 20 20 31 30 30 36 20 3d 3e 20 44 42 5f 45 52 52 4f 52 5f 43 41 4e 4e 4f 54 5f 43 .......1006.=>.DB_ERROR_CANNOT_C
46fc0 52 45 41 54 45 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 REATE,..........................
46fe0 20 20 20 20 20 20 20 20 20 20 31 30 30 37 20 3d 3e 20 44 42 5f 45 52 52 4f 52 5f 41 4c 52 45 41 ..........1007.=>.DB_ERROR_ALREA
47000 44 59 5f 45 58 49 53 54 53 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 DY_EXISTS,......................
47020 20 20 20 20 20 20 20 20 20 20 20 20 20 20 31 30 30 38 20 3d 3e 20 44 42 5f 45 52 52 4f 52 5f 43 ..............1008.=>.DB_ERROR_C
47040 41 4e 4e 4f 54 5f 44 52 4f 50 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ANNOT_DROP,.....................
47060 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 31 30 34 36 20 3d 3e 20 44 42 5f 45 52 52 4f 52 5f ...............1046.=>.DB_ERROR_
47080 4e 4f 44 42 53 45 4c 45 43 54 45 44 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 NODBSELECTED,...................
470a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 31 30 35 30 20 3d 3e 20 44 42 5f 45 52 52 4f .................1050.=>.DB_ERRO
470c0 52 5f 41 4c 52 45 41 44 59 5f 45 58 49 53 54 53 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 R_ALREADY_EXISTS,...............
470e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 31 30 35 31 20 3d 3e 20 44 42 5f .....................1051.=>.DB_
47100 45 52 52 4f 52 5f 4e 4f 53 55 43 48 54 41 42 4c 45 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ERROR_NOSUCHTABLE,..............
47120 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 31 30 35 34 20 3d 3e 20 44 42 ......................1054.=>.DB
47140 5f 45 52 52 4f 52 5f 4e 4f 53 55 43 48 46 49 45 4c 44 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 _ERROR_NOSUCHFIELD,.............
47160 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 31 30 36 32 20 3d 3e 20 44 .......................1062.=>.D
47180 42 5f 45 52 52 4f 52 5f 41 4c 52 45 41 44 59 5f 45 58 49 53 54 53 2c 0a 20 20 20 20 20 20 20 20 B_ERROR_ALREADY_EXISTS,.........
471a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 31 30 36 34 20 ...........................1064.
471c0 3d 3e 20 44 42 5f 45 52 52 4f 52 5f 53 59 4e 54 41 58 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 =>.DB_ERROR_SYNTAX,.............
471e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 31 31 30 30 20 3d 3e 20 44 .......................1100.=>.D
47200 42 5f 45 52 52 4f 52 5f 4e 4f 54 5f 4c 4f 43 4b 45 44 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 B_ERROR_NOT_LOCKED,.............
47220 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 31 31 33 36 20 3d 3e 20 44 .......................1136.=>.D
47240 42 5f 45 52 52 4f 52 5f 56 41 4c 55 45 5f 43 4f 55 4e 54 5f 4f 4e 5f 52 4f 57 2c 0a 20 20 20 20 B_ERROR_VALUE_COUNT_ON_ROW,.....
47260 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 31 ...............................1
47280 31 34 36 20 3d 3e 20 44 42 5f 45 52 52 4f 52 5f 4e 4f 53 55 43 48 54 41 42 4c 45 2c 0a 20 20 20 146.=>.DB_ERROR_NOSUCHTABLE,....
472a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
472c0 31 30 34 38 20 3d 3e 20 44 42 5f 45 52 52 4f 52 5f 43 4f 4e 53 54 52 41 49 4e 54 2c 0a 20 20 20 1048.=>.DB_ERROR_CONSTRAINT,....
472e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 29 3b 0a 20 ............................);..
47300 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 63 6f 6e 6e ...}......//.}}}.....//.{{{.conn
47320 65 63 74 28 29 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 43 6f 6e 6e 65 63 74 20 74 6f ect()....../**......*.Connect.to
47340 20 61 20 64 61 74 61 62 61 73 65 20 72 65 70 72 65 73 65 6e 74 65 64 20 62 79 20 61 20 66 69 6c .a.database.represented.by.a.fil
47360 65 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 24 64 73 6e 20 74 68 65 e.......*......*.@param.$dsn.the
47380 20 64 61 74 61 20 73 6f 75 72 63 65 20 6e 61 6d 65 3b 20 74 68 65 20 66 69 6c 65 20 69 73 20 74 .data.source.name;.the.file.is.t
473a0 61 6b 65 6e 20 61 73 20 0a 20 20 20 20 20 2a 20 20 20 20 20 20 20 20 64 61 74 61 62 61 73 65 3b aken.as.......*........database;
473c0 20 22 73 71 6c 69 74 65 3a 2f 2f 72 6f 6f 74 3a 40 68 6f 73 74 2f 74 65 73 74 2e 64 62 22 0a 20 ."sqlite://root:@host/test.db"..
473e0 20 20 20 20 2a 20 40 70 61 72 61 6d 20 24 70 65 72 73 69 73 74 65 6e 74 20 28 6f 70 74 69 6f 6e ....*.@param.$persistent.(option
47400 61 6c 29 20 77 68 65 74 68 65 72 20 74 68 65 20 63 6f 6e 6e 65 63 74 69 6f 6e 20 73 68 6f 75 6c al).whether.the.connection.shoul
47420 64 0a 20 20 20 20 20 2a 20 20 20 20 20 20 20 20 62 65 20 70 65 72 73 69 73 74 65 6e 74 0a 20 20 d......*........be.persistent...
47440 20 20 20 2a 20 40 61 63 63 65 73 73 20 70 75 62 6c 69 63 0a 20 20 20 20 20 2a 20 40 72 65 74 75 ...*.@access.public......*.@retu
47460 72 6e 20 69 6e 74 20 44 42 5f 4f 4b 20 6f 6e 20 73 75 63 63 65 73 73 2c 20 61 20 44 42 20 65 72 rn.int.DB_OK.on.success,.a.DB.er
47480 72 6f 72 20 6f 6e 20 66 61 69 6c 75 72 65 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 66 75 6e 63 74 ror.on.failure......*/.....funct
474a0 69 6f 6e 20 63 6f 6e 6e 65 63 74 28 24 64 73 6e 69 6e 66 6f 2c 20 24 70 65 72 73 69 73 74 65 6e ion.connect($dsninfo,.$persisten
474c0 74 20 3d 20 66 61 6c 73 65 29 20 7b 0a 20 20 20 20 20 20 20 20 24 72 65 74 20 3d 20 44 42 5f 4f t.=.false).{.........$ret.=.DB_O
474e0 4b 3b 0a 20 20 20 20 20 20 20 20 24 66 69 6c 65 20 3d 20 24 64 73 6e 69 6e 66 6f 5b 27 64 61 74 K;.........$file.=.$dsninfo['dat
47500 61 62 61 73 65 27 5d 3b 0a 0a 20 20 20 20 20 20 20 20 69 66 20 28 21 44 42 3a 3a 61 73 73 65 72 abase'];..........if.(!DB::asser
47520 74 45 78 74 65 6e 73 69 6f 6e 28 27 73 71 6c 69 74 65 27 29 29 0a 20 20 20 20 20 20 20 20 20 20 tExtension('sqlite'))...........
47540 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 61 69 73 65 45 72 72 6f 72 28 44 42 5f 45 52 ..return.$this->raiseError(DB_ER
47560 52 4f 52 5f 45 58 54 45 4e 53 49 4f 4e 5f 4e 4f 54 5f 46 4f 55 4e 44 29 3b 0a 0a 20 20 20 20 20 ROR_EXTENSION_NOT_FOUND);.......
47580 20 20 20 69 66 20 28 69 73 73 65 74 28 24 66 69 6c 65 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 ...if.(isset($file)).{..........
475a0 20 20 20 69 66 20 28 21 66 69 6c 65 5f 65 78 69 73 74 73 28 24 66 69 6c 65 29 29 20 7b 0a 20 20 ...if.(!file_exists($file)).{...
475c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 6f 75 63 68 28 24 66 69 6c 65 20 29 3b 0a 20 20 20 ..............touch($file.);....
475e0 20 20 20 20 20 20 20 20 20 20 20 20 20 63 68 6d 6f 64 28 24 66 69 6c 65 2c 20 28 69 73 5f 6e 75 .............chmod($file,.(is_nu
47600 6d 65 72 69 63 28 24 64 73 6e 69 6e 66 6f 5b 27 6d 6f 64 65 27 5d 29 20 3f 20 24 64 73 6e 69 6e meric($dsninfo['mode']).?.$dsnin
47620 66 6f 5b 27 6d 6f 64 65 27 5d 20 3a 20 30 36 34 34 20 29 29 3b 0a 20 20 20 20 20 20 20 20 20 20 fo['mode'].:.0644.));...........
47640 20 20 20 20 20 20 69 66 20 28 21 66 69 6c 65 5f 65 78 69 73 74 73 28 24 66 69 6c 65 29 29 20 7b ......if.(!file_exists($file)).{
47660 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 .....................return.$thi
47680 73 2d 3e 73 71 6c 69 74 65 52 61 69 73 65 45 72 72 6f 72 28 44 42 5f 45 52 52 4f 52 5f 4e 4f 54 s->sqliteRaiseError(DB_ERROR_NOT
476a0 5f 46 4f 55 4e 44 20 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 _FOUND.);.................}.....
476c0 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 21 69 73 5f 66 69 ........}.............if.(!is_fi
476e0 6c 65 28 24 66 69 6c 65 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 le($file)).{.................ret
47700 75 72 6e 20 24 74 68 69 73 2d 3e 73 71 6c 69 74 65 52 61 69 73 65 45 72 72 6f 72 28 44 42 5f 45 urn.$this->sqliteRaiseError(DB_E
47720 52 52 4f 52 5f 49 4e 56 41 4c 49 44 20 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 RROR_INVALID.);.............}...
47740 20 20 20 20 20 20 20 20 20 20 69 66 20 28 21 69 73 5f 72 65 61 64 61 62 6c 65 28 24 66 69 6c 65 ..........if.(!is_readable($file
47760 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 )).{.................return.$thi
47780 73 2d 3e 73 71 6c 69 74 65 52 61 69 73 65 45 72 72 6f 72 28 44 42 5f 45 52 52 4f 52 5f 41 43 43 s->sqliteRaiseError(DB_ERROR_ACC
477a0 45 53 53 5f 56 49 4f 4c 41 54 49 4f 4e 20 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 ESS_VIOLATION.);.............}..
477c0 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 .......}.else.{.............retu
477e0 72 6e 20 24 74 68 69 73 2d 3e 73 71 6c 69 74 65 52 61 69 73 65 45 72 72 6f 72 28 44 42 5f 45 52 rn.$this->sqliteRaiseError(DB_ER
47800 52 4f 52 5f 41 43 43 45 53 53 5f 56 49 4f 4c 41 54 49 4f 4e 20 29 3b 0a 20 20 20 20 20 20 20 20 ROR_ACCESS_VIOLATION.);.........
47820 7d 0a 0a 20 20 20 20 20 20 20 20 24 63 6f 6e 6e 65 63 74 5f 66 75 6e 63 74 69 6f 6e 20 3d 20 24 }..........$connect_function.=.$
47840 70 65 72 73 69 73 74 65 6e 74 20 3f 20 27 73 71 6c 69 74 65 5f 6f 70 65 6e 27 20 3a 20 27 73 71 persistent.?.'sqlite_open'.:.'sq
47860 6c 69 74 65 5f 70 6f 70 65 6e 27 3b 0a 20 20 20 20 20 20 20 20 69 66 20 28 21 28 24 63 6f 6e 6e lite_popen';.........if.(!($conn
47880 20 3d 20 40 24 63 6f 6e 6e 65 63 74 5f 66 75 6e 63 74 69 6f 6e 28 24 64 73 6e 69 6e 66 6f 5b 27 .=.@$connect_function($dsninfo['
478a0 64 61 74 61 62 61 73 65 27 5d 29 20 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 database']).)).{.............ret
478c0 75 72 6e 20 24 74 68 69 73 2d 3e 73 71 6c 69 74 65 52 61 69 73 65 45 72 72 6f 72 28 44 42 5f 45 urn.$this->sqliteRaiseError(DB_E
478e0 52 52 4f 52 5f 4e 4f 44 42 53 45 4c 45 43 54 45 44 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 RROR_NODBSELECTED);.........}...
47900 20 20 20 20 20 20 24 74 68 69 73 2d 3e 63 6f 6e 6e 65 63 74 69 6f 6e 20 3d 20 24 63 6f 6e 6e 3b ......$this->connection.=.$conn;
47920 0a 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 64 73 6e 20 3d 20 24 64 73 6e 69 6e 66 6f 3b 0a .........$this->dsn.=.$dsninfo;.
47940 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 44 42 5f 4f 4b 3b 0a 20 20 20 20 7d 0a 0a 20 20 .........return.DB_OK;.....}....
47960 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 64 69 73 63 6f 6e 6e 65 63 74 28 29 ..//.}}}.....//.{{{.disconnect()
47980 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 4c 6f 67 20 6f 75 74 20 61 6e 64 20 64 69 73 ....../**......*.Log.out.and.dis
479a0 63 6f 6e 6e 65 63 74 20 66 72 6f 6d 20 74 68 65 20 64 61 74 61 62 61 73 65 2e 0a 20 20 20 20 20 connect.from.the.database.......
479c0 2a 0a 20 20 20 20 20 2a 20 40 61 63 63 65 73 73 20 70 75 62 6c 69 63 0a 20 20 20 20 20 2a 20 40 *......*.@access.public......*.@
479e0 72 65 74 75 72 6e 20 62 6f 6f 6c 20 54 52 55 45 20 6f 6e 20 73 75 63 63 65 73 73 2c 20 46 41 4c return.bool.TRUE.on.success,.FAL
47a00 53 45 20 69 66 20 6e 6f 74 20 63 6f 6e 6e 65 63 74 65 64 2e 0a 20 20 20 20 20 2a 2f 0a 20 20 20 SE.if.not.connected.......*/....
47a20 20 66 75 6e 63 74 69 6f 6e 20 64 69 73 63 6f 6e 6e 65 63 74 28 29 20 7b 0a 20 20 20 20 20 20 20 .function.disconnect().{........
47a40 20 24 72 65 74 20 3d 20 40 73 71 6c 69 74 65 5f 63 6c 6f 73 65 28 24 74 68 69 73 2d 3e 64 73 6e .$ret.=.@sqlite_close($this->dsn
47a60 5b 27 64 61 74 61 62 61 73 65 27 5d 29 3b 0a 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 63 6f ['database']);.........$this->co
47a80 6e 6e 65 63 74 69 6f 6e 20 3d 20 6e 75 6c 6c 3b 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 nnection.=.null;.........return.
47aa0 24 72 65 74 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b $ret;.....}......//.}}}.....//.{
47ac0 7b 7b 20 73 69 6d 70 6c 65 51 75 65 72 79 28 29 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a {{.simpleQuery()....../**......*
47ae0 20 53 65 6e 64 20 61 20 71 75 65 72 79 20 74 6f 20 53 51 4c 69 74 65 20 61 6e 64 20 72 65 74 75 .Send.a.query.to.SQLite.and.retu
47b00 72 6e 73 20 74 68 65 20 72 65 73 75 6c 74 73 20 61 73 20 61 20 53 51 4c 69 74 65 20 72 65 73 6f rns.the.results.as.a.SQLite.reso
47b20 75 72 63 65 0a 20 20 20 20 20 2a 20 69 64 65 6e 74 69 66 69 65 72 2e 0a 20 20 20 20 20 2a 0a 20 urce......*.identifier.......*..
47b40 20 20 20 20 2a 20 40 70 61 72 61 6d 20 74 68 65 20 53 51 4c 20 71 75 65 72 79 0a 20 20 20 20 20 ....*.@param.the.SQL.query......
47b60 2a 20 40 61 63 63 65 73 73 20 70 75 62 6c 69 63 0a 20 20 20 20 20 2a 20 40 72 65 74 75 72 6e 20 *.@access.public......*.@return.
47b80 6d 69 78 65 64 20 72 65 74 75 72 6e 73 20 61 20 76 61 6c 69 64 20 53 51 4c 69 74 65 20 72 65 73 mixed.returns.a.valid.SQLite.res
47ba0 75 6c 74 20 66 6f 72 20 73 75 63 63 65 73 73 66 75 6c 20 53 45 4c 45 43 54 0a 20 20 20 20 20 2a ult.for.successful.SELECT......*
47bc0 20 71 75 65 72 69 65 73 2c 20 44 42 5f 4f 4b 20 66 6f 72 20 6f 74 68 65 72 20 73 75 63 63 65 73 .queries,.DB_OK.for.other.succes
47be0 73 66 75 6c 20 71 75 65 72 69 65 73 2e 20 41 20 44 42 20 65 72 72 6f 72 20 69 73 0a 20 20 20 20 sful.queries..A.DB.error.is.....
47c00 20 2a 20 72 65 74 75 72 6e 65 64 20 6f 6e 20 66 61 69 6c 75 72 65 2e 0a 20 20 20 20 20 2a 2f 0a .*.returned.on.failure.......*/.
47c20 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 73 69 6d 70 6c 65 51 75 65 72 79 28 24 71 75 65 72 79 29 ....function.simpleQuery($query)
47c40 20 7b 0a 20 20 20 20 20 20 20 20 24 69 73 6d 61 6e 69 70 20 3d 20 44 42 3a 3a 69 73 4d 61 6e 69 .{.........$ismanip.=.DB::isMani
47c60 70 28 24 71 75 65 72 79 29 3b 0a 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 6c 61 73 74 5f 71 p($query);.........$this->last_q
47c80 75 65 72 79 20 3d 20 24 71 75 65 72 79 3b 0a 20 20 20 20 20 20 20 20 24 71 75 65 72 79 20 3d 20 uery.=.$query;.........$query.=.
47ca0 24 74 68 69 73 2d 3e 5f 6d 6f 64 69 66 79 51 75 65 72 79 28 24 71 75 65 72 79 29 3b 0a 0a 20 20 $this->_modifyQuery($query);....
47cc0 20 20 20 20 20 20 24 72 65 73 75 6c 74 20 3d 20 40 73 71 6c 69 74 65 5f 71 75 65 72 79 28 24 71 ......$result.=.@sqlite_query($q
47ce0 75 65 72 79 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 6e 65 63 74 69 6f 6e 29 3b 0a 20 20 20 20 20 20 uery,.$this->connection);.......
47d00 20 20 24 74 68 69 73 2d 3e 72 65 73 75 6c 74 20 3d 20 24 72 65 73 75 6c 74 3b 0a 20 20 20 20 20 ..$this->result.=.$result;......
47d20 20 20 20 69 66 20 28 21 24 74 68 69 73 2d 3e 72 65 73 75 6c 74 20 29 20 7b 0a 20 20 20 20 20 20 ...if.(!$this->result.).{.......
47d40 20 20 20 20 20 20 24 65 72 72 6e 6f 20 3d 20 73 71 6c 69 74 65 5f 6c 61 73 74 5f 65 72 72 6f 72 ......$errno.=.sqlite_last_error
47d60 28 24 74 68 69 73 2d 3e 63 6f 6e 6e 65 63 74 69 6f 6e 20 29 3b 0a 20 20 20 20 20 20 20 20 20 20 ($this->connection.);...........
47d80 20 20 69 66 20 28 21 24 65 72 72 6e 6f 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..if.(!$errno).{................
47da0 20 72 65 74 75 72 6e 20 6e 75 6c 6c 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 .return.null;.............}.....
47dc0 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 71 6c 69 74 65 52 61 69 73 ........return.$this->sqliteRais
47de0 65 45 72 72 6f 72 28 24 65 72 72 6e 6f 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 eError($errno);.........}.......
47e00 20 20 20 69 66 20 28 67 65 74 74 79 70 65 28 24 72 65 73 75 6c 74 29 20 3d 3d 3d 20 22 72 65 73 ...if.(gettype($result).===."res
47e20 6f 75 72 63 65 22 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 6e 75 6d 52 6f 77 73 20 3d ource").{.............$numRows.=
47e40 20 24 74 68 69 73 2d 3e 6e 75 6d 52 6f 77 73 28 24 72 65 73 75 6c 74 29 3b 0a 20 20 20 20 20 20 .$this->numRows($result);.......
47e60 20 20 20 20 20 20 69 66 20 28 69 73 5f 6f 62 6a 65 63 74 28 24 6e 75 6d 52 6f 77 73 20 29 29 20 ......if.(is_object($numRows.)).
47e80 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 6e 75 6d 52 6f 77 {.................return.$numRow
47ea0 73 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 s;.............}.............ret
47ec0 75 72 6e 20 24 72 65 73 75 6c 74 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 72 urn.$result;.........}.........r
47ee0 65 74 75 72 6e 20 44 42 5f 4f 4b 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 eturn.DB_OK;.....}......//.}}}..
47f00 20 20 20 2f 2f 20 7b 7b 7b 20 6e 65 78 74 52 65 73 75 6c 74 28 29 0a 0a 20 20 20 20 2f 2a 2a 0a ...//.{{{.nextResult()....../**.
47f20 20 20 20 20 20 2a 20 4d 6f 76 65 20 74 68 65 20 69 6e 74 65 72 6e 61 6c 20 73 71 6c 69 74 65 20 .....*.Move.the.internal.sqlite.
47f40 72 65 73 75 6c 74 20 70 6f 69 6e 74 65 72 20 74 6f 20 74 68 65 20 6e 65 78 74 20 61 76 61 69 6c result.pointer.to.the.next.avail
47f60 61 62 6c 65 20 72 65 73 75 6c 74 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d able.result......*......*.@param
47f80 20 61 20 76 61 6c 69 64 20 73 71 6c 69 74 65 20 72 65 73 75 6c 74 20 72 65 73 6f 75 72 63 65 0a .a.valid.sqlite.result.resource.
47fa0 20 20 20 20 20 2a 20 40 61 63 63 65 73 73 20 70 75 62 6c 69 63 0a 20 20 20 20 20 2a 20 40 72 65 .....*.@access.public......*.@re
47fc0 74 75 72 6e 20 74 72 75 65 20 69 66 20 61 20 72 65 73 75 6c 74 20 69 73 20 61 76 61 69 6c 61 62 turn.true.if.a.result.is.availab
47fe0 6c 65 20 6f 74 68 65 72 77 69 73 65 20 72 65 74 75 72 6e 20 66 61 6c 73 65 0a 20 20 20 20 20 2a le.otherwise.return.false......*
48000 2f 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 6e 65 78 74 52 65 73 75 6c 74 28 24 72 65 73 75 6c /.....function.nextResult($resul
48020 74 29 20 7b 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 20 20 20 20 7d t).{.........return.false;.....}
48040 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 66 65 74 63 68 52 6f 77 ......//.}}}.....//.{{{.fetchRow
48060 28 29 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 46 65 74 63 68 20 61 6e 64 20 72 65 74 ()....../**......*.Fetch.and.ret
48080 75 72 6e 20 61 20 72 6f 77 20 6f 66 20 64 61 74 61 20 28 69 74 20 75 73 65 73 20 66 65 74 63 68 urn.a.row.of.data.(it.uses.fetch
480a0 49 6e 74 6f 20 66 6f 72 20 74 68 61 74 29 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 70 61 Into.for.that)......*......*.@pa
480c0 72 61 6d 20 20 20 24 72 65 73 75 6c 74 20 20 20 20 20 53 51 4c 69 74 65 20 72 65 73 75 6c 74 20 ram...$result.....SQLite.result.
480e0 69 64 65 6e 74 69 66 69 65 72 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 20 20 24 66 65 74 63 identifier......*.@param...$fetc
48100 68 6d 6f 64 65 20 20 66 6f 72 6d 61 74 20 6f 66 20 66 65 74 63 68 65 64 20 72 6f 77 20 61 72 72 hmode..format.of.fetched.row.arr
48120 61 79 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 20 20 24 72 6f 77 6e 75 6d 20 20 20 20 20 74 ay......*.@param...$rownum.....t
48140 68 65 20 61 62 73 6f 6c 75 74 65 20 72 6f 77 20 6e 75 6d 62 65 72 20 74 6f 20 66 65 74 63 68 0a he.absolute.row.number.to.fetch.
48160 20 20 20 20 20 2a 20 40 72 65 74 75 72 6e 20 20 61 72 72 61 79 20 20 20 20 20 20 20 61 20 72 6f .....*.@return..array.......a.ro
48180 77 20 6f 66 20 64 61 74 61 2c 20 6f 72 20 66 61 6c 73 65 20 6f 6e 20 65 72 72 6f 72 0a 20 20 20 w.of.data,.or.false.on.error....
481a0 20 20 2a 2f 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 66 65 74 63 68 52 6f 77 28 24 72 65 73 75 ..*/.....function.fetchRow($resu
481c0 6c 74 2c 20 24 66 65 74 63 68 6d 6f 64 65 3d 44 42 5f 46 45 54 43 48 4d 4f 44 45 5f 44 45 46 41 lt,.$fetchmode=DB_FETCHMODE_DEFA
481e0 55 4c 54 2c 20 24 72 6f 77 6e 75 6d 3d 6e 75 6c 6c 29 20 7b 0a 20 20 20 20 20 20 20 20 69 66 20 ULT,.$rownum=null).{.........if.
48200 28 24 66 65 74 63 68 6d 6f 64 65 20 3d 3d 20 44 42 5f 46 45 54 43 48 4d 4f 44 45 5f 44 45 46 41 ($fetchmode.==.DB_FETCHMODE_DEFA
48220 55 4c 54 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 66 65 74 63 68 6d 6f 64 65 20 3d 20 ULT).{.............$fetchmode.=.
48240 24 74 68 69 73 2d 3e 66 65 74 63 68 6d 6f 64 65 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 $this->fetchmode;.........}.....
48260 20 20 20 20 24 72 65 73 20 3d 20 24 74 68 69 73 2d 3e 66 65 74 63 68 49 6e 74 6f 28 24 74 68 69 ....$res.=.$this->fetchInto($thi
48280 73 2d 3e 72 65 73 75 6c 74 2c 20 24 61 72 72 2c 20 24 66 65 74 63 68 6d 6f 64 65 2c 20 24 72 6f s->result,.$arr,.$fetchmode,.$ro
482a0 77 6e 75 6d 20 29 3b 0a 20 20 20 20 20 20 20 20 69 66 20 28 21 24 72 65 73 29 20 7b 0a 20 20 20 wnum.);.........if.(!$res).{....
482c0 20 20 20 20 20 20 20 20 20 24 65 72 72 6e 6f 20 3d 20 73 71 6c 69 74 65 5f 6c 61 73 74 5f 65 72 .........$errno.=.sqlite_last_er
482e0 72 6f 72 28 24 74 68 69 73 2d 3e 63 6f 6e 6e 65 63 74 69 6f 6e 20 29 3b 0a 20 20 20 20 20 20 20 ror($this->connection.);........
48300 20 20 20 20 20 69 66 20 28 21 24 65 72 72 6e 6f 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 .....if.(!$errno).{.............
48320 20 20 20 20 72 65 74 75 72 6e 20 6e 75 6c 6c 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 ....return.null;.............}..
48340 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 61 69 73 65 45 72 ...........return.$this->raiseEr
48360 72 6f 72 28 24 65 72 72 6e 6f 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 69 ror($errno);.........}.........i
48380 66 20 28 24 72 65 73 20 21 3d 3d 20 44 42 5f 4f 4b 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 f.($res.!==.DB_OK).{............
483a0 20 72 65 74 75 72 6e 20 24 72 65 73 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 .return.$res;.........}.........
483c0 72 65 74 75 72 6e 20 24 61 72 72 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 return.$arr;.....}......//.}}}..
483e0 20 20 20 2f 2f 20 7b 7b 7b 20 66 65 74 63 68 49 6e 74 6f 28 29 0a 0a 20 20 20 20 2f 2a 2a 0a 20 ...//.{{{.fetchInto()....../**..
48400 20 20 20 20 2a 20 46 65 74 63 68 20 61 20 72 6f 77 20 61 6e 64 20 69 6e 73 65 72 74 20 74 68 65 ....*.Fetch.a.row.and.insert.the
48420 20 64 61 74 61 20 69 6e 74 6f 20 61 6e 20 65 78 69 73 74 69 6e 67 20 61 72 72 61 79 2e 20 41 76 .data.into.an.existing.array..Av
48440 61 69 6c 61 62 65 20 6d 6f 64 65 73 0a 20 20 20 20 20 2a 20 61 72 65 20 53 51 4c 49 54 45 5f 41 ailabe.modes......*.are.SQLITE_A
48460 53 53 4f 43 2c 20 53 51 4c 49 54 45 5f 4e 55 4d 20 61 6e 64 20 53 51 4c 49 54 45 5f 42 4f 54 48 SSOC,.SQLITE_NUM.and.SQLITE_BOTH
48480 2e 20 41 6e 20 6f 62 6a 65 63 74 20 74 79 70 65 20 69 73 20 6e 6f 74 20 0a 20 20 20 20 20 2a 20 ..An.object.type.is.not.......*.
484a0 61 76 61 69 6c 61 62 6c 65 2e 20 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d available........*......*.@param
484c0 20 24 72 65 73 75 6c 74 20 20 20 20 53 51 4c 69 74 65 20 72 65 73 75 6c 74 20 69 64 65 6e 74 69 .$result....SQLite.result.identi
484e0 66 69 65 72 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 24 61 72 72 20 20 20 20 20 20 20 28 72 fier......*.@param.$arr.......(r
48500 65 66 65 72 65 6e 63 65 29 20 61 72 72 61 79 20 77 68 65 72 65 20 64 61 74 61 20 66 72 6f 6d 20 eference).array.where.data.from.
48520 74 68 65 20 72 6f 77 20 69 73 20 73 74 6f 72 65 64 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 the.row.is.stored......*.@param.
48540 24 66 65 74 63 68 6d 6f 64 65 20 68 6f 77 20 74 68 65 20 61 72 72 61 79 20 64 61 74 61 20 73 68 $fetchmode.how.the.array.data.sh
48560 6f 75 6c 64 20 62 65 20 69 6e 64 65 78 65 64 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 24 72 ould.be.indexed......*.@param.$r
48580 6f 77 6e 75 6d 20 20 20 20 74 68 65 20 72 6f 77 20 6e 75 6d 62 65 72 20 74 6f 20 66 65 74 63 68 ownum....the.row.number.to.fetch
485a0 0a 20 20 20 20 20 2a 20 40 61 63 63 65 73 73 20 70 75 62 6c 69 63 0a 20 20 20 20 20 2a 0a 20 20 ......*.@access.public......*...
485c0 20 20 20 2a 20 40 72 65 74 75 72 6e 20 69 6e 74 20 44 42 5f 4f 4b 20 6f 6e 20 73 75 63 63 65 73 ...*.@return.int.DB_OK.on.succes
485e0 73 2c 20 61 20 44 42 20 65 72 72 6f 72 20 6f 6e 20 66 61 69 6c 75 72 65 0a 20 20 20 20 20 2a 2f s,.a.DB.error.on.failure......*/
48600 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 66 65 74 63 68 49 6e 74 6f 28 24 72 65 73 75 6c 74 2c .....function.fetchInto($result,
48620 20 26 24 61 72 72 2c 20 24 66 65 74 63 68 6d 6f 64 65 2c 20 24 72 6f 77 6e 75 6d 3d 6e 75 6c 6c .&$arr,.$fetchmode,.$rownum=null
48640 29 20 7b 0a 20 20 20 20 20 20 20 20 69 66 20 28 24 72 6f 77 6e 75 6d 20 21 3d 3d 20 6e 75 6c 6c ).{.........if.($rownum.!==.null
48660 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 21 40 73 71 6c 69 74 65 5f 73 65 65 ).{.............if.(!@sqlite_see
48680 6b 28 24 74 68 69 73 2d 3e 72 65 73 75 6c 74 2c 20 24 72 6f 77 6e 75 6d 29 29 20 7b 0a 20 20 20 k($this->result,.$rownum)).{....
486a0 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 6e 75 6c 6c 3b 0a 20 20 20 20 20 20 .............return.null;.......
486c0 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 69 66 20 28 24 66 ......}.........}.........if.($f
486e0 65 74 63 68 6d 6f 64 65 20 26 20 44 42 5f 46 45 54 43 48 4d 4f 44 45 5f 41 53 53 4f 43 20 29 20 etchmode.&.DB_FETCHMODE_ASSOC.).
48700 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 61 72 72 20 3d 20 73 71 6c 69 74 65 5f 66 65 74 63 {.............$arr.=.sqlite_fetc
48720 68 5f 61 72 72 61 79 28 24 74 68 69 73 2d 3e 72 65 73 75 6c 74 2c 20 53 51 4c 49 54 45 5f 41 53 h_array($this->result,.SQLITE_AS
48740 53 4f 43 20 29 3b 0a 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 20 SOC.);.........}.else.{.........
48760 20 20 20 20 24 61 72 72 20 3d 20 73 71 6c 69 74 65 5f 66 65 74 63 68 5f 61 72 72 61 79 28 24 74 ....$arr.=.sqlite_fetch_array($t
48780 68 69 73 2d 3e 72 65 73 75 6c 74 2c 20 53 51 4c 49 54 45 5f 4e 55 4d 20 29 3b 0a 20 20 20 20 20 his->result,.SQLITE_NUM.);......
487a0 20 20 20 7d 0a 20 20 20 20 20 20 20 20 69 66 20 28 21 24 61 72 72 29 20 7b 0a 20 20 20 20 20 20 ...}.........if.(!$arr).{.......
487c0 20 20 20 20 20 20 24 65 72 72 6e 6f 20 3d 20 73 71 6c 69 74 65 5f 6c 61 73 74 5f 65 72 72 6f 72 ......$errno.=.sqlite_last_error
487e0 28 24 74 68 69 73 2d 3e 63 6f 6e 6e 65 63 74 69 6f 6e 20 29 3b 0a 20 20 20 20 20 20 20 20 20 20 ($this->connection.);...........
48800 20 20 69 66 20 28 21 24 65 72 72 6e 6f 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..if.(!$errno).{................
48820 20 72 65 74 75 72 6e 20 6e 75 6c 6c 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 .return.null;.............}.....
48840 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 71 6c 69 74 65 52 61 69 73 ........return.$this->sqliteRais
48860 65 45 72 72 6f 72 28 24 65 72 72 6e 6f 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 eError($errno);.........}.......
48880 20 20 72 65 74 75 72 6e 20 44 42 5f 4f 4b 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d ..return.DB_OK;.....}......//.}}
488a0 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 66 72 65 65 52 65 73 75 6c 74 28 29 0a 0a 20 20 20 20 2f }.....//.{{{.freeResult()....../
488c0 2a 2a 0a 20 20 20 20 20 2a 20 46 72 65 65 20 74 68 65 20 69 6e 74 65 72 6e 61 6c 20 72 65 73 6f **......*.Free.the.internal.reso
488e0 75 72 63 65 73 20 61 73 73 6f 63 69 61 74 65 64 20 77 69 74 68 20 24 72 65 73 75 6c 74 2e 0a 20 urces.associated.with.$result...
48900 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 24 72 65 73 75 6c 74 20 53 51 4c 69 ....*......*.@param.$result.SQLi
48920 74 65 20 72 65 73 75 6c 74 20 69 64 65 6e 74 69 66 69 65 72 20 6f 72 20 44 42 20 73 74 61 74 65 te.result.identifier.or.DB.state
48940 6d 65 6e 74 20 69 64 65 6e 74 69 66 69 65 72 0a 20 20 20 20 20 2a 20 40 61 63 63 65 73 73 20 70 ment.identifier......*.@access.p
48960 75 62 6c 69 63 0a 20 20 20 20 20 2a 20 40 72 65 74 75 72 6e 20 62 6f 6f 6c 20 54 52 55 45 20 6f ublic......*.@return.bool.TRUE.o
48980 6e 20 73 75 63 63 65 73 73 2c 20 46 41 4c 53 45 20 69 66 20 24 72 65 73 75 6c 74 20 69 73 20 69 n.success,.FALSE.if.$result.is.i
489a0 6e 76 61 6c 69 64 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 66 72 65 65 nvalid......*/.....function.free
489c0 52 65 73 75 6c 74 28 24 72 65 73 75 6c 74 29 20 7b 0a 20 20 20 20 20 20 20 20 69 66 28 69 73 5f Result($result).{.........if(is_
489e0 72 65 73 6f 75 72 63 65 28 24 72 65 73 75 6c 74 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 resource($result)).{............
48a00 20 75 6e 73 65 74 28 24 72 65 73 75 6c 74 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 .unset($result);.............ret
48a20 75 72 6e 20 74 72 75 65 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 2f 2f 20 24 urn.true;.........}.........//.$
48a40 72 65 73 75 6c 74 20 69 73 20 61 20 70 72 65 70 61 72 65 64 20 71 75 65 72 79 20 68 61 6e 64 6c result.is.a.prepared.query.handl
48a60 65 0a 20 20 20 20 20 20 20 20 24 72 65 73 75 6c 74 20 3d 20 28 69 6e 74 29 24 72 65 73 75 6c 74 e.........$result.=.(int)$result
48a80 3b 0a 20 20 20 20 20 20 20 20 69 66 20 28 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 70 72 65 70 ;.........if.(!isset($this->prep
48aa0 61 72 65 5f 74 6f 6b 65 6e 73 5b 24 72 65 73 75 6c 74 5d 29 29 20 7b 0a 20 20 20 20 20 20 20 20 are_tokens[$result])).{.........
48ac0 20 20 20 20 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 ....return.false;.........}.....
48ae0 20 20 20 20 24 74 68 69 73 2d 3e 70 72 65 70 61 72 65 5f 74 79 70 65 73 20 3d 20 61 72 72 61 79 ....$this->prepare_types.=.array
48b00 28 29 3b 0a 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 70 72 65 70 61 72 65 5f 74 6f 6b 65 6e ();.........$this->prepare_token
48b20 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 74 72 75 65 s.=.array();.........return.true
48b40 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 6e ;.....}......//.}}}.....//.{{{.n
48b60 75 6d 43 6f 6c 73 28 29 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 47 65 74 73 20 74 68 umCols()....../**......*.Gets.th
48b80 65 20 6e 75 6d 62 65 72 20 6f 66 20 63 6f 6c 75 6d 6e 73 20 69 6e 20 61 20 72 65 73 75 6c 74 20 e.number.of.columns.in.a.result.
48ba0 73 65 74 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 72 65 74 75 72 6e 20 6e 75 6d 62 65 set.......*......*.@return.numbe
48bc0 72 20 6f 66 20 63 6f 6c 75 6d 6e 73 20 69 6e 20 61 20 72 65 73 75 6c 74 20 73 65 74 0a 20 20 20 r.of.columns.in.a.result.set....
48be0 20 20 2a 2f 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 6e 75 6d 43 6f 6c 73 28 24 72 65 73 75 6c ..*/.....function.numCols($resul
48c00 74 29 20 7b 0a 20 20 20 20 20 20 20 20 24 63 6f 6c 73 20 3d 20 40 73 71 6c 69 74 65 5f 6e 75 6d t).{.........$cols.=.@sqlite_num
48c20 5f 66 69 65 6c 64 73 28 24 72 65 73 75 6c 74 29 3b 0a 20 20 20 20 20 20 20 20 69 66 20 28 21 24 _fields($result);.........if.(!$
48c40 63 6f 6c 73 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 cols).{.............return.$this
48c60 2d 3e 73 71 6c 69 74 65 52 61 69 73 65 45 72 72 6f 72 28 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a ->sqliteRaiseError();.........}.
48c80 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 63 6f 6c 73 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 ........return.$cols;.....}.....
48ca0 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 6e 75 6d 52 6f 77 73 28 29 0a 0a 20 20 .//.}}}.....//.{{{.numRows()....
48cc0 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 47 65 74 73 20 74 68 65 20 6e 75 6d 62 65 72 20 6f 66 20 ../**......*.Gets.the.number.of.
48ce0 72 6f 77 73 20 61 66 66 65 63 74 65 64 20 62 79 20 61 20 71 75 65 72 79 2e 0a 20 20 20 20 20 2a rows.affected.by.a.query.......*
48d00 0a 20 20 20 20 20 2a 20 40 72 65 74 75 72 6e 20 6e 75 6d 62 65 72 20 6f 66 20 72 6f 77 73 20 61 ......*.@return.number.of.rows.a
48d20 66 66 65 63 74 65 64 20 62 79 20 74 68 65 20 6c 61 73 74 20 71 75 65 72 79 0a 20 20 20 20 20 2a ffected.by.the.last.query......*
48d40 2f 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 6e 75 6d 52 6f 77 73 28 24 72 65 73 75 6c 74 29 20 /.....function.numRows($result).
48d60 7b 0a 20 20 20 20 20 20 20 20 24 72 6f 77 73 20 3d 20 40 73 71 6c 69 74 65 5f 6e 75 6d 5f 72 6f {.........$rows.=.@sqlite_num_ro
48d80 77 73 28 24 72 65 73 75 6c 74 29 3b 0a 20 20 20 20 20 20 20 20 69 66 20 28 21 24 72 6f 77 73 29 ws($result);.........if.(!$rows)
48da0 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 61 69 .{.............return.$this->rai
48dc0 73 65 45 72 72 6f 72 28 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 72 65 74 seError();.........}.........ret
48de0 75 72 6e 20 24 72 6f 77 73 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 urn.$rows;.....}......//.}}}....
48e00 20 2f 2f 20 7b 7b 7b 20 61 66 66 65 63 74 65 64 28 29 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 .//.{{{.affected()....../**.....
48e20 20 2a 20 47 65 74 73 20 74 68 65 20 6e 75 6d 62 65 72 20 6f 66 20 72 6f 77 73 20 61 66 66 65 63 .*.Gets.the.number.of.rows.affec
48e40 74 65 64 20 62 79 20 61 20 71 75 65 72 79 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 72 ted.by.a.query.......*......*.@r
48e60 65 74 75 72 6e 20 6e 75 6d 62 65 72 20 6f 66 20 72 6f 77 73 20 61 66 66 65 63 74 65 64 20 62 79 eturn.number.of.rows.affected.by
48e80 20 74 68 65 20 6c 61 73 74 20 71 75 65 72 79 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 66 75 6e 63 .the.last.query......*/.....func
48ea0 74 69 6f 6e 20 61 66 66 65 63 74 65 64 52 6f 77 73 28 29 20 7b 0a 20 20 20 20 20 20 20 20 72 65 tion.affectedRows().{.........re
48ec0 74 75 72 6e 20 73 71 6c 69 74 65 5f 63 68 61 6e 67 65 73 28 24 74 68 69 73 2d 3e 63 6f 6e 6e 65 turn.sqlite_changes($this->conne
48ee0 63 74 69 6f 6e 20 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 20 2f ction.);.....}......//.}}}...../
48f00 2f 20 7b 7b 7b 20 67 65 74 4c 61 73 74 49 6e 73 65 72 74 49 64 28 29 0a 0a 20 20 20 20 2f 2a 2a /.{{{.getLastInsertId()....../**
48f20 0a 20 20 20 20 20 2a 20 47 65 74 73 20 74 68 65 20 6c 61 74 65 73 74 20 69 6e 73 65 72 74 65 64 ......*.Gets.the.latest.inserted
48f40 20 72 6f 77 20 69 64 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 72 65 74 75 72 6e 20 6c .row.id.......*......*.@return.l
48f60 61 73 74 20 69 6e 73 65 72 74 20 69 64 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 66 75 6e 63 74 69 ast.insert.id......*/.....functi
48f80 6f 6e 20 67 65 74 4c 61 73 74 49 6e 73 65 72 74 49 64 28 29 20 7b 0a 20 20 20 20 20 20 20 20 72 on.getLastInsertId().{.........r
48fa0 65 74 75 72 6e 20 73 71 6c 69 74 65 5f 6c 61 73 74 5f 69 6e 73 65 72 74 5f 72 6f 77 69 64 28 24 eturn.sqlite_last_insert_rowid($
48fc0 74 68 69 73 2d 3e 63 6f 6e 6e 65 63 74 69 6f 6e 20 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f this->connection.);.....}....../
48fe0 2f 20 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 67 65 74 53 70 65 63 69 61 6c 51 75 65 72 79 /.}}}.....//.{{{.getSpecialQuery
49000 28 29 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 2a 20 52 65 74 75 72 6e 73 20 74 68 65 20 71 75 ()....../**.....*.Returns.the.qu
49020 65 72 79 20 6e 65 65 64 65 64 20 74 6f 20 67 65 74 20 73 6f 6d 65 20 62 61 63 6b 65 6e 64 20 69 ery.needed.to.get.some.backend.i
49040 6e 66 6f 2e 20 52 65 66 65 72 20 74 6f 0a 20 20 20 20 2a 20 74 68 65 20 6f 6e 6c 69 6e 65 20 6d nfo..Refer.to.....*.the.online.m
49060 61 6e 75 61 6c 20 61 74 20 68 74 74 70 3a 2f 2f 73 71 6c 69 74 65 2e 6f 72 67 2f 73 71 6c 69 74 anual.at.http://sqlite.org/sqlit
49080 65 2e 68 74 6d 6c 2e 0a 20 20 20 20 2a 0a 20 20 20 20 2a 20 40 70 61 72 61 6d 20 73 74 72 69 6e e.html......*.....*.@param.strin
490a0 67 20 24 74 79 70 65 20 57 68 61 74 20 6b 69 6e 64 20 6f 66 20 69 6e 66 6f 20 79 6f 75 20 77 61 g.$type.What.kind.of.info.you.wa
490c0 6e 74 20 74 6f 20 72 65 74 72 69 65 76 65 0a 20 20 20 20 2a 20 40 72 65 74 75 72 6e 20 73 74 72 nt.to.retrieve.....*.@return.str
490e0 69 6e 67 20 54 68 65 20 53 51 4c 20 71 75 65 72 79 20 73 74 72 69 6e 67 0a 20 20 20 20 2a 2f 0a ing.The.SQL.query.string.....*/.
49100 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 70 65 63 69 61 6c 51 75 65 72 79 28 24 74 79 ....function.getSpecialQuery($ty
49120 70 65 2c 20 24 61 72 67 73 3d 61 72 72 61 79 28 29 29 20 7b 0a 20 20 20 20 20 20 20 20 24 71 75 pe,.$args=array()).{.........$qu
49140 65 72 79 20 3d 20 22 22 3b 0a 20 20 20 20 20 20 20 20 69 66 28 21 69 73 5f 61 72 72 61 79 28 24 ery.=."";.........if(!is_array($
49160 61 72 67 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d args)).............return.$this-
49180 3e 72 61 69 73 65 45 72 72 6f 72 28 27 6e 6f 20 6b 65 79 20 73 70 65 63 69 66 69 65 64 27 2c 20 >raiseError('no.key.specified',.
491a0 6e 75 6c 6c 2c 20 6e 75 6c 6c 2c 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 null,.null,.null,...............
491c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 41 72 67 75 6d 65 6e 74 .......................'Argument
491e0 20 68 61 73 20 74 6f 20 62 65 20 61 6e 20 61 72 72 61 79 2e 27 29 3b 0a 20 20 20 20 20 20 20 20 .has.to.be.an.array.');.........
49200 73 77 69 74 63 68 20 28 73 74 72 74 6f 6c 6f 77 65 72 28 24 74 79 70 65 29 29 20 7b 0a 20 20 20 switch.(strtolower($type)).{....
49220 20 20 20 20 20 63 61 73 65 20 27 6d 61 73 74 65 72 27 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 .....case.'master':.............
49240 24 71 75 65 72 79 20 2e 3d 20 22 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 73 71 6c 69 74 65 5f $query..=."SELECT.*.FROM.sqlite_
49260 6d 61 73 74 65 72 3b 22 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 62 72 65 61 6b 3b 0a 20 20 20 master;";.............break;....
49280 20 20 20 20 20 63 61 73 65 20 27 74 61 62 6c 65 73 27 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 .....case.'tables':.............
492a0 24 71 75 65 72 79 20 2e 3d 20 22 53 45 4c 45 43 54 20 6e 61 6d 65 20 46 52 4f 4d 20 73 71 6c 69 $query..=."SELECT.name.FROM.sqli
492c0 74 65 5f 6d 61 73 74 65 72 20 57 48 45 52 45 20 74 79 70 65 3d 27 74 61 62 6c 65 27 20 22 3b 0a te_master.WHERE.type='table'.";.
492e0 20 20 20 20 20 20 20 20 20 20 20 20 24 71 75 65 72 79 20 2e 3d 20 22 55 4e 49 4f 4e 20 41 4c 4c ............$query..=."UNION.ALL
49300 20 53 45 4c 45 43 54 20 6e 61 6d 65 20 46 52 4f 4d 20 73 71 6c 69 74 65 5f 74 65 6d 70 5f 6d 61 .SELECT.name.FROM.sqlite_temp_ma
49320 73 74 65 72 20 22 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 71 75 65 72 79 20 2e 3d 20 22 57 ster.";.............$query..=."W
49340 48 45 52 45 20 74 79 70 65 3d 27 74 61 62 6c 65 27 20 4f 52 44 45 52 20 42 59 20 6e 61 6d 65 3b HERE.type='table'.ORDER.BY.name;
49360 22 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 62 72 65 61 6b 3b 0a 20 20 20 20 20 20 20 20 63 61 ";.............break;.........ca
49380 73 65 20 27 73 63 68 65 6d 61 27 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 71 75 65 72 79 20 se.'schema':.............$query.
493a0 2e 3d 20 22 53 45 4c 45 43 54 20 73 71 6c 20 46 52 4f 4d 20 28 53 45 4c 45 43 54 20 2a 20 46 52 .=."SELECT.sql.FROM.(SELECT.*.FR
493c0 4f 4d 20 73 71 6c 69 74 65 5f 6d 61 73 74 65 72 20 55 4e 49 4f 4e 20 41 4c 4c 20 22 3b 0a 20 20 OM.sqlite_master.UNION.ALL.";...
493e0 20 20 20 20 20 20 20 20 20 20 24 71 75 65 72 79 20 2e 3d 20 22 53 45 4c 45 43 54 20 2a 20 46 52 ..........$query..=."SELECT.*.FR
49400 4f 4d 20 73 71 6c 69 74 65 5f 74 65 6d 70 5f 6d 61 73 74 65 72 29 20 22 3b 0a 20 20 20 20 20 20 OM.sqlite_temp_master).";.......
49420 20 20 20 20 20 20 24 71 75 65 72 79 20 2e 3d 20 22 57 48 45 52 45 20 74 79 70 65 21 3d 27 6d 65 ......$query..=."WHERE.type!='me
49440 74 61 27 20 4f 52 44 45 52 20 42 59 20 74 62 6c 5f 6e 61 6d 65 2c 20 74 79 70 65 20 44 45 53 43 ta'.ORDER.BY.tbl_name,.type.DESC
49460 2c 20 6e 61 6d 65 3b 22 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 62 72 65 61 6b 3b 0a 20 20 20 ,.name;";.............break;....
49480 20 20 20 20 20 63 61 73 65 20 27 73 63 68 65 6d 61 78 27 3a 0a 20 20 20 20 20 20 20 20 63 61 73 .....case.'schemax':.........cas
494a0 65 20 27 73 63 68 65 6d 61 5f 78 27 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2a 2a 0a 20 20 e.'schema_x':............./**...
494c0 20 20 20 20 20 20 20 20 20 20 2a 20 55 73 65 20 6c 69 6b 65 3a 0a 20 20 20 20 20 20 20 20 20 20 ..........*.Use.like:...........
494e0 20 20 2a 20 24 72 65 73 20 3d 20 24 64 62 2d 3e 71 75 65 72 79 28 20 24 64 62 2d 3e 67 65 74 53 ..*.$res.=.$db->query(.$db->getS
49500 70 65 63 69 61 6c 51 75 65 72 79 28 22 73 63 68 65 6d 61 5f 78 22 2c 20 61 72 72 61 79 28 22 74 pecialQuery("schema_x",.array("t
49520 61 62 6c 65 22 20 3d 3e 20 22 74 61 62 6c 65 33 22 20 29 29 20 29 3b 0a 20 20 20 20 20 20 20 20 able".=>."table3".)).);.........
49540 20 20 20 20 2a 2f 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 71 75 65 72 79 20 2e 3d 20 22 53 45 ....*/.............$query..=."SE
49560 4c 45 43 54 20 73 71 6c 20 46 52 4f 4d 20 28 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 73 71 6c LECT.sql.FROM.(SELECT.*.FROM.sql
49580 69 74 65 5f 6d 61 73 74 65 72 20 55 4e 49 4f 4e 20 41 4c 4c 20 22 3b 0a 20 20 20 20 20 20 20 20 ite_master.UNION.ALL.";.........
495a0 20 20 20 20 24 71 75 65 72 79 20 2e 3d 20 22 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 73 71 6c ....$query..=."SELECT.*.FROM.sql
495c0 69 74 65 5f 74 65 6d 70 5f 6d 61 73 74 65 72 29 20 22 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 ite_temp_master).";.............
495e0 24 71 75 65 72 79 20 2e 3d 20 73 70 72 69 6e 74 66 28 22 57 48 45 52 45 20 74 62 6c 5f 6e 61 6d $query..=.sprintf("WHERE.tbl_nam
49600 65 20 4c 49 4b 45 20 27 25 73 27 20 41 4e 44 20 74 79 70 65 21 3d 27 6d 65 74 61 27 20 22 2c 20 e.LIKE.'%s'.AND.type!='meta'.",.
49620 24 61 72 67 73 5b 27 74 61 62 6c 65 27 5d 20 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 71 $args['table'].);.............$q
49640 75 65 72 79 20 2e 3d 20 22 4f 52 44 45 52 20 42 59 20 74 79 70 65 20 44 45 53 43 2c 20 6e 61 6d uery..=."ORDER.BY.type.DESC,.nam
49660 65 3b 22 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 62 72 65 61 6b 3b 0a 20 20 20 20 20 20 20 20 e;";.............break;.........
49680 63 61 73 65 20 27 61 6c 74 65 72 27 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2a 2a 0a 20 20 case.'alter':............./**...
496a0 20 20 20 20 20 20 20 20 20 20 2a 20 53 51 4c 69 74 65 20 64 6f 65 73 20 6e 6f 74 20 73 75 70 70 ..........*.SQLite.does.not.supp
496c0 6f 72 74 20 41 4c 54 45 52 20 54 41 42 4c 45 3b 20 74 68 69 73 20 69 73 20 61 20 68 65 6c 70 65 ort.ALTER.TABLE;.this.is.a.helpe
496e0 72 20 71 75 65 72 79 20 74 6f 20 68 61 6e 64 6c 65 20 74 68 69 73 2e 20 27 74 61 62 6c 65 27 0a r.query.to.handle.this..'table'.
49700 20 20 20 20 20 20 20 20 20 20 20 20 2a 20 72 65 70 72 65 73 65 6e 74 73 20 74 68 65 20 74 61 62 ............*.represents.the.tab
49720 6c 65 20 6e 61 6d 65 2c 20 27 72 6f 77 73 27 20 74 68 65 20 6e 65 77 73 20 72 6f 77 73 20 74 6f le.name,.'rows'.the.news.rows.to
49740 20 63 72 65 61 74 65 2c 20 27 73 61 76 65 27 20 74 68 65 20 72 6f 77 28 73 29 20 74 6f 20 6b 65 .create,.'save'.the.row(s).to.ke
49760 65 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 2a 20 5f 77 69 74 68 5f 20 74 68 65 20 64 61 74 61 ep.............*._with_.the.data
49780 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 2a 0a 20 20 20 20 20 20 20 20 20 20 20 20 2a 20 55 73 ..............*.............*.Us
497a0 65 20 6c 69 6b 65 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 2a 20 24 61 72 67 73 20 3d 20 61 72 e.like:.............*.$args.=.ar
497c0 72 61 79 28 0a 20 20 20 20 20 20 20 20 20 20 20 20 2a 20 20 20 20 20 27 74 61 62 6c 65 27 20 3d ray(.............*.....'table'.=
497e0 3e 20 24 74 61 62 6c 65 2c 20 0a 20 20 20 20 20 20 20 20 20 20 20 20 2a 20 20 20 20 20 27 72 6f >.$table,..............*.....'ro
49800 77 73 27 20 20 3d 3e 20 22 69 64 20 49 4e 54 45 47 45 52 20 50 52 49 4d 41 52 59 20 4b 45 59 2c ws'..=>."id.INTEGER.PRIMARY.KEY,
49820 20 66 69 72 73 74 6e 61 6d 65 20 54 45 58 54 2c 20 73 75 72 6e 61 6d 65 20 54 45 58 54 2c 20 64 .firstname.TEXT,.surname.TEXT,.d
49840 61 74 65 74 69 6d 65 20 54 45 58 54 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 2a 20 20 20 20 atetime.TEXT",.............*....
49860 20 27 73 61 76 65 27 20 20 3d 3e 20 22 4e 55 4c 4c 2c 20 74 69 74 65 6c 2c 20 63 6f 6e 74 65 6e .'save'..=>."NULL,.titel,.conten
49880 74 2c 20 64 61 74 65 74 69 6d 65 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 2a 20 29 3b 0a 20 20 t,.datetime".............*.);...
498a0 20 20 20 20 20 20 20 20 20 20 2a 20 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 2a 20 24 72 65 ..........*.);.............*.$re
498c0 73 20 3d 20 24 64 62 2d 3e 71 75 65 72 79 28 20 24 64 62 2d 3e 67 65 74 53 70 65 63 69 61 6c 51 s.=.$db->query(.$db->getSpecialQ
498e0 75 65 72 79 28 22 61 6c 74 65 72 22 2c 20 24 61 72 67 73 20 29 20 29 3b 0a 20 20 20 20 20 20 20 uery("alter",.$args.).);........
49900 20 20 20 20 20 2a 2f 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 72 6f 77 73 20 3d 20 73 74 72 74 .....*/.............$rows.=.strt
49920 72 28 24 61 72 67 73 5b 27 72 6f 77 73 27 5d 2c 20 24 74 68 69 73 2d 3e 6b 65 79 77 6f 72 64 73 r($args['rows'],.$this->keywords
49940 20 29 3b 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 71 75 65 72 79 20 2e 3d 20 22 42 45 47 49 .);..............$query..=."BEGI
49960 4e 20 54 52 41 4e 53 41 43 54 49 4f 4e 3b 22 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 71 75 N.TRANSACTION;";.............$qu
49980 65 72 79 20 2e 3d 20 22 43 52 45 41 54 45 20 54 45 4d 50 4f 52 41 52 59 20 54 41 42 4c 45 20 7b ery..=."CREATE.TEMPORARY.TABLE.{
499a0 24 61 72 67 73 5b 27 74 61 62 6c 65 27 5d 7d 5f 62 61 63 6b 75 70 20 28 7b 24 61 72 67 73 5b 27 $args['table']}_backup.({$args['
499c0 72 6f 77 73 27 5d 7d 29 3b 22 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 71 75 65 72 79 20 2e rows']});";.............$query..
499e0 3d 20 22 49 4e 53 45 52 54 20 49 4e 54 4f 20 7b 24 61 72 67 73 5b 27 74 61 62 6c 65 27 5d 7d 5f =."INSERT.INTO.{$args['table']}_
49a00 62 61 63 6b 75 70 20 53 45 4c 45 43 54 20 7b 24 61 72 67 73 5b 27 73 61 76 65 27 5d 7d 20 46 52 backup.SELECT.{$args['save']}.FR
49a20 4f 4d 20 7b 24 61 72 67 73 5b 27 74 61 62 6c 65 27 5d 7d 3b 22 3b 0a 20 20 20 20 20 20 20 20 20 OM.{$args['table']};";..........
49a40 20 20 20 24 71 75 65 72 79 20 2e 3d 20 22 44 52 4f 50 20 54 41 42 4c 45 20 7b 24 61 72 67 73 5b ...$query..=."DROP.TABLE.{$args[
49a60 27 74 61 62 6c 65 27 5d 7d 3b 22 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 71 75 65 72 79 20 'table']};";.............$query.
49a80 2e 3d 20 22 43 52 45 41 54 45 20 54 41 42 4c 45 20 7b 24 61 72 67 73 5b 27 74 61 62 6c 65 27 5d .=."CREATE.TABLE.{$args['table']
49aa0 7d 20 28 7b 24 61 72 67 73 5b 27 72 6f 77 73 27 5d 7d 29 3b 22 3b 0a 20 20 20 20 20 20 20 20 20 }.({$args['rows']});";..........
49ac0 20 20 20 24 71 75 65 72 79 20 2e 3d 20 22 49 4e 53 45 52 54 20 49 4e 54 4f 20 7b 24 61 72 67 73 ...$query..=."INSERT.INTO.{$args
49ae0 5b 27 74 61 62 6c 65 27 5d 7d 20 53 45 4c 45 43 54 20 7b 24 72 6f 77 73 7d 20 46 52 4f 4d 20 7b ['table']}.SELECT.{$rows}.FROM.{
49b00 24 61 72 67 73 5b 27 74 61 62 6c 65 27 5d 7d 5f 62 61 63 6b 75 70 3b 22 3b 0a 20 20 20 20 20 20 $args['table']}_backup;";.......
49b20 20 20 20 20 20 20 24 71 75 65 72 79 20 2e 3d 20 22 44 52 4f 50 20 54 41 42 4c 45 20 7b 24 61 72 ......$query..=."DROP.TABLE.{$ar
49b40 67 73 5b 27 74 61 62 6c 65 27 5d 7d 5f 62 61 63 6b 75 70 3b 22 3b 0a 20 20 20 20 20 20 20 20 20 gs['table']}_backup;";..........
49b60 20 20 20 24 71 75 65 72 79 20 2e 3d 20 22 43 4f 4d 4d 49 54 3b 22 3b 0a 0a 20 20 20 20 20 20 20 ...$query..=."COMMIT;";.........
49b80 20 20 20 20 20 2f 2f 20 54 68 69 73 20 69 73 20 61 20 64 69 72 74 79 20 68 61 63 6b 2c 20 73 69 .....//.This.is.a.dirty.hack,.si
49ba0 6e 63 65 20 74 68 65 20 61 62 6f 76 65 20 71 75 65 72 79 20 77 69 6c 6c 20 6e 6f 20 67 65 74 20 nce.the.above.query.will.no.get.
49bc0 65 78 65 63 75 74 65 64 20 77 69 74 68 20 61 20 73 69 6e 67 6c 65 0a 20 20 20 20 20 20 20 20 20 executed.with.a.single..........
49be0 20 20 20 2f 2f 20 71 75 65 72 79 20 63 61 6c 6c 3b 20 73 6f 20 68 65 72 65 20 74 68 65 20 71 75 ...//.query.call;.so.here.the.qu
49c00 65 72 79 20 6d 65 74 68 6f 64 20 77 69 6c 6c 20 62 65 20 63 61 6c 6c 65 64 20 64 69 72 65 63 74 ery.method.will.be.called.direct
49c20 6c 79 20 61 6e 64 20 72 65 74 75 72 6e 20 61 20 73 65 6c 65 63 74 20 69 6e 73 74 65 61 64 2e 0a ly.and.return.a.select.instead..
49c40 20 20 20 20 20 20 20 20 20 20 20 20 24 71 20 3d 20 65 78 70 6c 6f 64 65 28 22 3b 22 2c 20 24 71 ............$q.=.explode(";",.$q
49c60 75 65 72 79 20 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 28 24 69 3d 30 3b 20 24 69 uery.);.............for($i=0;.$i
49c80 3c 38 3b 20 24 69 2b 2b 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 72 65 73 75 6c <8;.$i++).................$resul
49ca0 74 20 3d 20 24 74 68 69 73 2d 3e 71 75 65 72 79 28 20 24 71 5b 24 69 5d 20 29 3b 0a 20 20 20 20 t.=.$this->query(.$q[$i].);.....
49cc0 20 20 20 20 20 20 20 20 24 71 75 65 72 79 20 3d 20 22 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 ........$query.=."SELECT.*.FROM.
49ce0 7b 24 61 72 67 73 5b 27 74 61 62 6c 65 27 5d 7d 3b 22 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 {$args['table']};";.............
49d00 62 72 65 61 6b 3b 0a 20 20 20 20 20 20 20 20 64 65 66 61 75 6c 74 3a 0a 20 20 20 20 20 20 20 20 break;.........default:.........
49d20 20 20 20 20 72 65 74 75 72 6e 20 6e 75 6c 6c 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 ....return.null;.........}......
49d40 20 20 20 72 65 74 75 72 6e 20 24 71 75 65 72 79 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 ...return.$query;.....}......//.
49d60 7d 7d 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 67 65 74 44 62 46 69 6c 65 53 74 61 74 73 28 29 0a }}}.....//.{{{.getDbFileStats().
49d80 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 2a 20 47 65 74 20 74 68 65 20 66 69 6c 65 20 73 74 61 74 ...../**.....*.Get.the.file.stat
49da0 73 20 66 6f 72 20 74 68 65 20 63 75 72 72 65 6e 74 20 64 61 74 61 62 61 73 65 2e 20 50 6f 73 73 s.for.the.current.database..Poss
49dc0 69 62 6c 65 20 61 72 67 75 6d 65 6e 74 73 20 61 72 65 0a 20 20 20 20 2a 20 64 65 76 2c 20 69 6e ible.arguments.are.....*.dev,.in
49de0 6f 2c 20 6d 6f 64 65 2c 20 6e 6c 69 6e 6b 2c 20 75 69 64 2c 20 67 69 64 2c 20 72 64 65 76 2c 20 o,.mode,.nlink,.uid,.gid,.rdev,.
49e00 73 69 7a 65 2c 20 61 74 69 6d 65 2c 20 6d 74 69 6d 65 2c 20 63 74 69 6d 65 2c 20 62 6c 6b 73 69 size,.atime,.mtime,.ctime,.blksi
49e20 7a 65 2c 20 62 6c 6f 63 6b 73 0a 20 20 20 20 2a 20 6f 72 20 61 20 6e 75 6d 65 72 69 63 20 6b 65 ze,.blocks.....*.or.a.numeric.ke
49e40 79 20 62 65 74 77 65 65 6e 20 30 20 61 6e 64 20 31 32 2e 0a 20 20 20 20 2a 0a 20 20 20 20 2a 20 y.between.0.and.12......*.....*.
49e60 40 70 61 72 61 6d 20 73 74 72 69 6e 67 20 24 61 72 67 20 41 72 72 61 79 20 6b 65 79 20 66 6f 72 @param.string.$arg.Array.key.for
49e80 20 73 74 61 74 73 28 29 0a 20 20 20 20 2a 20 40 72 65 74 75 72 6e 20 6d 69 78 65 64 20 61 72 72 .stats().....*.@return.mixed.arr
49ea0 61 79 20 6f 6e 20 61 6e 20 75 6e 73 70 65 63 69 66 69 65 64 20 6b 65 79 2c 20 69 6e 74 65 67 65 ay.on.an.unspecified.key,.intege
49ec0 72 20 6f 6e 20 61 20 70 61 73 73 65 64 20 61 72 67 20 61 6e 64 0a 20 20 20 20 2a 20 46 41 4c 53 r.on.a.passed.arg.and.....*.FALS
49ee0 45 20 61 74 20 61 20 73 74 61 74 73 20 65 72 72 6f 72 2e 0a 20 20 20 20 2a 2f 0a 20 20 20 20 66 E.at.a.stats.error......*/.....f
49f00 75 6e 63 74 69 6f 6e 20 67 65 74 44 62 46 69 6c 65 53 74 61 74 73 28 24 61 72 67 3d 22 22 20 29 unction.getDbFileStats($arg="".)
49f20 20 7b 0a 20 20 20 20 20 20 20 20 24 73 74 61 74 73 20 3d 20 73 74 61 74 28 24 74 68 69 73 2d 3e .{.........$stats.=.stat($this->
49f40 64 73 6e 5b 27 64 61 74 61 62 61 73 65 27 5d 20 29 3b 0a 20 20 20 20 20 20 20 20 69 66 20 28 24 dsn['database'].);.........if.($
49f60 73 74 61 74 73 20 3d 3d 20 66 61 6c 73 65 20 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 stats.==.false.).............ret
49f80 75 72 6e 20 66 61 6c 73 65 3b 0a 20 20 20 20 20 20 20 20 69 66 20 28 69 73 5f 61 72 72 61 79 28 urn.false;.........if.(is_array(
49fa0 24 73 74 61 74 73 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 28 69 73 5f 6e 75 6d $stats)).{.............if(is_num
49fc0 65 72 69 63 28 24 61 72 67 29 20 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 eric($arg).).{.................i
49fe0 66 28 28 28 69 6e 74 29 24 61 72 67 20 3c 3d 20 31 32 29 20 26 20 28 28 69 6e 74 29 24 61 72 67 f(((int)$arg.<=.12).&.((int)$arg
4a000 20 3e 3d 20 30 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 .>=.0)).....................retu
4a020 72 6e 20 66 61 6c 73 65 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e rn.false;.................return
4a040 20 24 73 74 61 74 73 5b 24 61 72 67 20 5d 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 .$stats[$arg.];.............}...
4a060 20 20 20 20 20 20 20 20 20 20 69 66 20 28 61 72 72 61 79 5f 6b 65 79 5f 65 78 69 73 74 73 28 74 ..........if.(array_key_exists(t
4a080 72 69 6d 28 24 61 72 67 29 2c 20 24 73 74 61 74 73 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 rim($arg),.$stats)).{...........
4a0a0 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 73 74 61 74 73 5b 24 61 72 67 20 5d 3b 0a 20 20 20 20 ......return.$stats[$arg.];.....
4a0c0 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 72 65 74 75 ........}.........}.........retu
4a0e0 72 6e 20 24 73 74 61 74 73 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 20 20 20 rn.$stats;.....}......//.}}}....
4a100 20 2f 2f 20 7b 7b 7b 20 6d 6f 64 69 66 79 51 75 65 72 79 28 29 0a 0a 20 20 20 20 2f 2a 2a 0a 20 .//.{{{.modifyQuery()....../**..
4a120 20 20 20 2a 20 22 44 45 4c 45 54 45 20 46 52 4f 4d 20 74 61 62 6c 65 22 20 67 69 76 65 73 20 30 ...*."DELETE.FROM.table".gives.0
4a140 20 61 66 66 65 63 74 65 64 20 72 6f 77 73 20 69 6e 20 53 51 4c 69 74 65 2e 20 54 68 69 73 20 6c .affected.rows.in.SQLite..This.l
4a160 69 74 74 6c 65 20 68 61 63 6b 20 0a 20 20 20 20 2a 20 6c 65 74 73 20 79 6f 75 20 6b 6e 6f 77 20 ittle.hack......*.lets.you.know.
4a180 68 6f 77 20 6d 61 6e 79 20 72 6f 77 73 20 77 65 72 65 20 64 65 6c 65 74 65 64 2e 0a 20 20 20 20 how.many.rows.were.deleted......
4a1a0 2a 0a 20 20 20 20 2a 20 40 70 61 72 61 6d 20 73 74 72 69 6e 67 20 24 71 75 65 72 79 20 54 68 65 *.....*.@param.string.$query.The
4a1c0 20 53 51 4c 20 71 75 65 72 79 20 73 74 72 69 6e 67 0a 20 20 20 20 2a 20 40 72 65 74 75 72 6e 20 .SQL.query.string.....*.@return.
4a1e0 73 74 72 69 6e 67 20 54 68 65 20 53 51 4c 20 71 75 65 72 79 20 73 74 72 69 6e 67 0a 20 20 20 20 string.The.SQL.query.string.....
4a200 2a 2f 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 5f 6d 6f 64 69 66 79 51 75 65 72 79 28 24 71 75 */.....function._modifyQuery($qu
4a220 65 72 79 20 29 20 7b 0a 20 20 20 20 20 20 20 20 69 66 20 28 24 74 68 69 73 2d 3e 6f 70 74 69 6f ery.).{.........if.($this->optio
4a240 6e 73 5b 27 6f 70 74 69 6d 69 7a 65 27 5d 20 3d 3d 20 27 70 6f 72 74 61 62 69 6c 69 74 79 27 29 ns['optimize'].==.'portability')
4a260 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 2f .{.............if.(preg_match('/
4a280 5e 5c 73 2a 44 45 4c 45 54 45 5c 73 2b 46 52 4f 4d 5c 73 2b 28 5c 53 2b 29 5c 73 2a 24 2f 69 27 ^\s*DELETE\s+FROM\s+(\S+)\s*$/i'
4a2a0 2c 20 24 71 75 65 72 79 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 71 75 ,.$query)).{.................$qu
4a2c0 65 72 79 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 2f 5e 5c 73 2a 44 45 4c 45 54 45 5c ery.=.preg_replace('/^\s*DELETE\
4a2e0 73 2b 46 52 4f 4d 5c 73 2b 28 5c 53 2b 29 5c 73 2a 24 2f 27 2c 0a 20 20 20 20 20 20 20 20 20 20 s+FROM\s+(\S+)\s*$/',...........
4a300 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 44 45 4c ............................'DEL
4a320 45 54 45 20 46 52 4f 4d 20 5c 31 20 57 48 45 52 45 20 31 3d 31 27 2c 20 24 71 75 65 72 79 29 3b ETE.FROM.\1.WHERE.1=1',.$query);
4a340 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 .............}.........}........
4a360 20 72 65 74 75 72 6e 20 24 71 75 65 72 79 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d .return.$query;.....}......//.}}
4a380 7d 0a 20 20 20 20 2f 2f 20 7b 7b 7b 20 73 71 6c 69 74 65 52 61 69 73 65 45 72 72 6f 72 28 29 0a }.....//.{{{.sqliteRaiseError().
4a3a0 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 2a 20 48 61 6e 64 6c 69 6e 67 20 50 45 41 52 20 45 72 72 ...../**.....*.Handling.PEAR.Err
4a3c0 6f 72 73 0a 20 20 20 20 2a 0a 20 20 20 20 2a 20 40 70 61 72 61 6d 20 69 6e 74 20 24 65 72 72 6e ors.....*.....*.@param.int.$errn
4a3e0 6f 20 20 61 20 50 45 41 52 20 65 72 72 6f 72 20 63 6f 64 65 0a 20 20 20 20 2a 20 40 72 65 74 75 o..a.PEAR.error.code.....*.@retu
4a400 72 6e 20 6f 62 6a 65 63 74 20 20 61 20 50 45 41 52 20 65 72 72 6f 72 20 6f 62 6a 65 63 74 0a 20 rn.object..a.PEAR.error.object..
4a420 20 20 20 2a 2f 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 73 71 6c 69 74 65 52 61 69 73 65 45 72 ...*/.....function.sqliteRaiseEr
4a440 72 6f 72 28 24 65 72 72 6e 6f 20 3d 20 6e 75 6c 6c 29 20 7b 0a 20 20 20 20 20 20 20 20 69 66 20 ror($errno.=.null).{.........if.
4a460 28 24 65 72 72 6e 6f 20 3d 3d 3d 20 6e 75 6c 6c 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 ($errno.===.null).{.............
4a480 24 65 72 72 6e 6f 20 3d 20 24 74 68 69 73 2d 3e 65 72 72 6f 72 43 6f 64 65 28 73 71 6c 69 74 65 $errno.=.$this->errorCode(sqlite
4a4a0 5f 6c 61 73 74 5f 65 72 72 6f 72 28 24 74 68 69 73 2d 3e 63 6f 6e 6e 65 63 74 69 6f 6e 29 29 3b _last_error($this->connection));
4a4c0 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d .........}.........return.$this-
4a4e0 3e 72 61 69 73 65 45 72 72 6f 72 28 24 65 72 72 6e 6f 2c 20 6e 75 6c 6c 2c 20 6e 75 6c 6c 2c 20 >raiseError($errno,.null,.null,.
4a500 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 null,...........................
4a520 20 20 20 20 20 20 20 40 73 71 6c 69 74 65 5f 6c 61 73 74 5f 65 72 72 6f 72 28 24 74 68 69 73 2d .......@sqlite_last_error($this-
4a540 3e 63 6f 6e 6e 65 63 74 69 6f 6e 29 20 2e 20 22 20 2a 2a 20 22 20 2e 0a 20 20 20 20 20 20 20 20 >connection)...".**."...........
4a560 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 40 73 71 6c 69 74 65 .........................@sqlite
4a580 5f 65 72 72 6f 72 5f 73 74 72 69 6e 67 28 24 74 68 69 73 2d 3e 63 6f 6e 6e 65 63 74 69 6f 6e 29 _error_string($this->connection)
4a5a0 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 7d 7d 7d 0a 7d 0a 0a 2f 2f 20 7d 7d 7d 0a 0a );.....}......//.}}}.}..//.}}}..
4a5c0 3f 3e 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ?>..............................
4a5e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4a600 44 42 2d 31 2e 35 2e 30 52 43 31 2f 64 6f 63 2f 49 44 45 41 53 00 00 00 00 00 00 00 00 00 00 00 DB-1.5.0RC1/doc/IDEAS...........
4a620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4a640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4a660 00 00 00 00 31 30 30 36 34 34 20 00 20 20 20 37 36 34 20 00 20 20 20 31 34 34 20 00 20 20 20 20 ....100644.....764.....144......
4a680 20 20 20 36 35 33 37 20 20 37 36 32 31 31 34 33 30 31 36 20 20 20 37 30 30 32 20 00 00 00 00 00 ...6537..7621143016...7002......
4a6a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4a6c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4a6e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4a700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4a720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4a740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4a760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4a780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4a7a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4a7c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4a7e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4a800 41 62 73 74 72 61 63 74 65 64 20 54 79 70 65 73 20 28 53 74 69 67 29 0a 2d 2d 2d 2d 2d 2d 2d 2d Abstracted.Types.(Stig).--------
4a820 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 0a 44 42 20 6e 65 65 64 73 20 61 20 73 65 74 20 ---------------..DB.needs.a.set.
4a840 6f 66 20 74 79 70 65 73 20 72 65 70 72 65 73 65 6e 74 69 6e 67 20 74 68 65 20 6d 6f 73 74 20 63 of.types.representing.the.most.c
4a860 6f 6d 6d 6f 6e 6c 79 20 75 73 65 64 20 74 79 70 65 73 20 69 6e 0a 61 6c 6c 20 62 61 63 6b 65 6e ommonly.used.types.in.all.backen
4a880 64 73 2e 20 20 54 68 69 73 20 74 79 70 65 20 73 65 74 20 63 6f 75 6c 64 20 61 6c 73 6f 20 62 65 ds...This.type.set.could.also.be
4a8a0 20 67 65 61 72 65 64 20 74 6f 77 61 72 64 73 20 69 6e 74 65 67 72 61 74 69 6f 6e 0a 77 69 74 68 .geared.towards.integration.with
4a8c0 20 74 68 69 6e 67 73 20 6c 69 6b 65 20 58 4d 4c 2d 52 50 43 2f 53 4f 41 50 20 69 6d 70 6c 65 6d .things.like.XML-RPC/SOAP.implem
4a8e0 65 6e 74 61 74 69 6f 6e 73 2c 20 48 54 4d 4c 20 66 6f 72 6d 20 63 6c 61 73 73 65 73 2c 20 65 74 entations,.HTML.form.classes,.et
4a900 63 2e 0a 0a 52 65 61 6c 20 51 75 65 72 79 20 50 61 72 73 65 72 20 28 53 74 69 67 29 0a 2d 2d 2d c...Real.Query.Parser.(Stig).---
4a920 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 0a 57 69 74 68 20 61 20 72 65 ---------------------..With.a.re
4a940 61 6c 20 71 75 65 72 79 20 70 61 72 73 65 72 2c 20 44 42 20 63 61 6e 20 69 6d 70 6c 65 6d 65 6e al.query.parser,.DB.can.implemen
4a960 74 20 6d 6f 72 65 20 6f 66 20 69 74 73 20 70 6f 72 74 61 62 69 6c 69 74 79 0a 62 61 73 65 64 20 t.more.of.its.portability.based.
4a980 6f 6e 20 74 68 65 20 71 75 65 72 79 2c 20 69 6e 73 74 65 61 64 20 6f 66 20 68 61 76 69 6e 67 20 on.the.query,.instead.of.having.
4a9a0 73 75 70 70 6f 72 74 20 66 75 6e 63 74 69 6f 6e 73 20 66 6f 72 0a 65 76 65 72 79 74 68 69 6e 67 support.functions.for.everything
4a9c0 2e 20 20 4f 6e 65 20 65 78 61 6d 70 6c 65 20 77 6f 75 6c 64 20 62 65 20 4c 49 4d 49 54 2c 20 61 ...One.example.would.be.LIMIT,.a
4a9e0 6e 6f 74 68 65 72 20 22 49 4e 53 45 52 54 0a 2e 2e 2e 20 52 45 54 55 52 4e 49 4e 47 22 2e 0a 0a nother."INSERT.....RETURNING"...
4aa00 50 6f 72 74 61 62 6c 65 20 74 72 61 6e 73 61 63 74 69 6f 6e 73 20 28 53 74 69 67 29 0a 2d 2d 2d Portable.transactions.(Stig).---
4aa20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 0a 49 66 20 44 42 -------------------------..If.DB
4aa40 20 63 61 6e 20 70 61 72 73 65 20 71 75 65 72 69 65 73 20 65 6e 6f 75 67 68 20 74 6f 20 64 65 74 .can.parse.queries.enough.to.det
4aa60 65 72 6d 69 6e 65 20 77 68 61 74 20 74 61 62 6c 65 73 20 61 72 65 20 61 66 66 65 63 74 65 64 0a ermine.what.tables.are.affected.
4aa80 62 79 20 71 75 65 72 69 65 73 2c 20 69 74 20 73 68 6f 75 6c 64 20 62 65 20 70 6f 73 73 69 62 6c by.queries,.it.should.be.possibl
4aaa0 65 20 74 6f 20 6d 61 6b 65 20 61 20 72 65 70 6c 61 79 61 62 6c 65 20 74 72 61 6e 73 61 63 74 69 e.to.make.a.replayable.transacti
4aac0 6f 6e 0a 6c 6f 67 2e 20 20 47 4e 4f 4d 45 20 75 73 65 73 20 61 6e 20 58 4d 4c 20 66 6f 72 6d 61 on.log...GNOME.uses.an.XML.forma
4aae0 74 20 66 6f 72 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 64 61 74 61 20 74 68 61 74 20 6c 65 t.for.configuration.data.that.le
4ab00 74 73 20 79 6f 75 0a 63 68 65 63 6b 70 6f 69 6e 74 20 73 74 61 74 65 20 6f 6e 63 65 20 69 6e 20 ts.you.checkpoint.state.once.in.
4ab20 61 20 77 68 69 6c 65 2c 20 61 6e 64 20 72 65 76 65 72 74 20 74 6f 20 74 68 61 74 20 73 74 61 74 a.while,.and.revert.to.that.stat
4ab40 65 20 6c 61 74 65 72 2e 0a 57 69 74 68 20 61 20 73 69 6d 69 6c 61 72 20 61 70 70 72 6f 61 63 68 e.later..With.a.similar.approach
4ab60 20 66 6f 72 20 74 72 61 6e 73 61 63 74 69 6f 6e 73 20 69 6e 20 44 42 20 77 65 20 63 61 6e 20 69 .for.transactions.in.DB.we.can.i
4ab80 6d 70 6c 65 6d 65 6e 74 0a 70 6f 72 74 61 62 6c 65 20 74 72 61 6e 73 61 63 74 69 6f 6e 73 20 61 mplement.portable.transactions.a
4aba0 6e 64 20 63 68 65 63 6b 70 6f 69 6e 74 69 6e 67 20 65 76 65 6e 20 66 6f 72 20 74 68 65 20 64 61 nd.checkpointing.even.for.the.da
4abc0 74 61 62 61 73 65 73 20 74 68 61 74 0a 64 6f 6e 27 74 20 73 75 70 70 6f 72 74 20 74 68 65 6d 2e tabases.that.don't.support.them.
4abe0 0a 0a 0a 45 72 72 6f 72 20 72 65 70 6f 72 74 69 6e 67 20 63 6c 65 61 6e 2d 75 70 2f 64 65 62 75 ...Error.reporting.clean-up/debu
4ac00 67 20 28 54 6f 6d 61 73 29 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d g.(Tomas).----------------------
4ac20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 4e 6f 77 20 65 61 63 68 20 64 72 69 76 65 72 20 ---------------.Now.each.driver.
4ac40 68 61 73 20 69 74 73 20 6f 77 6e 20 72 61 69 73 65 45 72 72 6f 72 20 6d 65 74 68 6f 64 2c 20 63 has.its.own.raiseError.method,.c
4ac60 6f 6d 6d 6f 6e 20 68 61 73 20 61 20 72 61 69 73 65 45 72 72 6f 72 20 61 6e 64 0a 44 42 20 68 61 ommon.has.a.raiseError.and.DB.ha
4ac80 73 20 61 20 44 42 5f 65 72 72 6f 72 20 63 6c 61 73 73 20 61 6e 64 20 69 74 73 20 6f 77 6e 20 69 s.a.DB_error.class.and.its.own.i
4aca0 73 45 72 72 6f 72 28 29 20 6d 65 74 68 6f 64 2e 20 54 68 69 73 20 65 72 72 6f 72 20 73 74 75 66 sError().method..This.error.stuf
4acc0 66 20 0a 6f 76 65 72 68 65 61 64 20 63 6f 75 6c 64 20 62 65 20 73 69 6d 70 6c 69 66 69 65 64 20 f..overhead.could.be.simplified.
4ace0 77 69 74 68 20 6f 6e 6c 79 20 6f 6e 65 20 72 61 69 73 65 45 72 72 6f 72 2c 20 64 72 6f 70 69 6e with.only.one.raiseError,.dropin
4ad00 67 20 74 68 65 20 44 42 20 45 72 72 6f 72 0a 63 6c 61 73 73 20 61 6e 64 20 61 6c 73 6f 20 74 68 g.the.DB.Error.class.and.also.th
4ad20 65 20 44 42 3a 3a 69 73 45 72 72 6f 72 28 29 20 28 75 73 65 20 74 68 65 20 50 45 41 52 2e 70 68 e.DB::isError().(use.the.PEAR.ph
4ad40 70 20 6f 6e 65 73 20 69 6e 73 74 65 61 64 29 2e 0a 4f 74 68 65 72 20 69 64 65 61 20 63 6f 75 6c p.ones.instead)..Other.idea.coul
4ad60 64 20 62 65 20 74 6f 20 61 64 64 20 61 20 73 79 73 74 65 6d 20 66 6f 72 20 61 6c 6c 6f 77 69 6e d.be.to.add.a.system.for.allowin
4ad80 67 20 70 65 6f 70 6c 65 20 61 63 63 65 73 73 20 74 6f 20 61 6c 6c 20 74 68 65 0a 71 75 65 72 69 g.people.access.to.all.the.queri
4ada0 65 73 20 73 65 6e 64 65 64 20 62 79 20 50 45 41 52 20 44 42 20 74 6f 20 74 68 65 20 62 61 63 6b es.sended.by.PEAR.DB.to.the.back
4adc0 65 6e 64 2e 20 41 6c 73 6f 20 61 20 6e 65 77 20 50 45 41 52 5f 45 52 52 4f 52 5f 44 45 42 55 47 end..Also.a.new.PEAR_ERROR_DEBUG
4ade0 0a 66 6c 61 67 20 74 68 61 74 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 28 73 68 6f 77 7c 74 .flag.that.automatically.(show|t
4ae00 72 69 67 67 65 72 73 29 20 64 65 62 75 67 20 69 6e 66 6f 2c 20 70 65 72 68 61 70 73 0a 77 69 74 riggers).debug.info,.perhaps.wit
4ae20 68 20 61 20 6e 65 77 20 50 45 41 52 5f 28 57 61 72 6e 69 6e 67 7c 44 65 62 75 67 29 20 6f 62 6a h.a.new.PEAR_(Warning|Debug).obj
4ae40 65 63 74 2e 0a 0a 51 75 6f 74 65 20 63 6c 65 61 6e 2d 75 70 20 28 53 74 69 67 29 0a 2d 2d 2d 2d ect...Quote.clean-up.(Stig).----
4ae60 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 31 2e 20 4b 65 65 70 20 71 75 6f 74 65 20 -----------------.1..Keep.quote.
4ae80 61 6e 64 20 71 75 6f 74 65 53 74 72 69 6e 67 2c 20 62 75 74 20 6d 6f 76 65 20 71 75 6f 74 69 6e and.quoteString,.but.move.quotin
4aea0 67 20 6f 66 20 73 74 72 69 6e 67 73 20 62 61 63 6b 20 69 6e 74 6f 0a 20 20 20 71 75 6f 74 65 53 g.of.strings.back.into....quoteS
4aec0 74 72 69 6e 67 20 61 6e 64 20 6d 61 6b 65 20 71 75 6f 74 65 20 63 61 6c 6c 20 69 74 20 66 6f 72 tring.and.make.quote.call.it.for
4aee0 20 73 74 72 69 6e 67 73 2e 0a 0a 32 2e 20 41 64 64 20 61 6e 20 6f 70 74 69 6f 6e 61 6c 20 22 6f .strings...2..Add.an.optional."o
4af00 70 65 72 61 74 6f 72 22 20 70 61 72 61 6d 65 74 65 72 20 74 6f 20 71 75 6f 74 65 20 74 68 61 74 perator".parameter.to.quote.that
4af20 20 69 73 20 6f 6e 65 20 6f 66 20 22 3d 22 2c 0a 20 20 20 22 3c 22 2c 20 22 3e 22 20 6f 72 20 22 .is.one.of."=",...."<",.">".or."
4af40 3c 3e 22 20 74 68 61 74 20 77 69 6c 6c 20 62 65 20 69 6e 73 65 72 74 65 64 20 69 6e 20 66 72 6f <>".that.will.be.inserted.in.fro
4af60 6e 74 20 6f 66 20 74 68 65 20 71 75 6f 74 65 64 20 76 61 6c 75 65 0a 20 20 20 75 6e 6c 65 73 73 nt.of.the.quoted.value....unless
4af80 20 69 74 20 69 73 20 4e 55 4c 4c 2c 20 69 6e 20 77 68 69 63 68 20 63 61 73 65 20 69 74 20 77 69 .it.is.NULL,.in.which.case.it.wi
4afa0 6c 6c 20 62 65 20 63 6f 6e 76 65 72 74 65 64 20 74 6f 20 22 49 53 22 20 28 66 6f 72 0a 20 20 20 ll.be.converted.to."IS".(for....
4afc0 22 3d 22 29 20 6f 72 20 22 49 53 20 4e 4f 54 22 20 28 66 6f 72 20 74 68 65 20 6f 74 68 65 72 73 "=").or."IS.NOT".(for.the.others
4afe0 29 2e 0a 0a 41 75 74 6f 20 66 72 65 65 20 73 74 61 74 65 6d 65 6e 74 73 20 28 54 6f 6d 61 73 29 )...Auto.free.statements.(Tomas)
4b000 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 42 79 .----------------------------.By
4b020 20 73 65 74 74 69 6e 67 20 61 20 70 61 72 61 6d 20 69 6e 20 71 75 65 72 79 28 29 20 6f 72 20 66 .setting.a.param.in.query().or.f
4b040 6f 72 20 74 68 65 20 68 6f 6c 65 20 44 42 20 69 6e 73 74 61 6e 63 65 2c 20 50 45 41 52 20 44 42 or.the.hole.DB.instance,.PEAR.DB
4b060 0a 63 6f 75 6c 64 20 61 75 74 6f 2d 66 72 65 65 20 72 65 73 75 6c 74 73 20 69 6e 20 44 42 5f 72 .could.auto-free.results.in.DB_r
4b080 65 73 75 6c 74 2d 3e 66 65 74 63 68 28 49 6e 74 6f 7c 52 6f 77 29 20 77 68 65 6e 20 74 68 65 20 esult->fetch(Into|Row).when.the.
4b0a0 64 72 69 76 65 72 0a 72 65 74 75 72 6e 73 20 66 61 6c 73 65 2e 0a 0a 44 61 74 61 74 79 70 65 73 driver.returns.false...Datatypes
4b0c0 20 69 6e 20 70 72 65 70 61 72 65 20 73 79 6e 74 61 78 20 28 54 6f 6d 61 73 29 0a 2d 2d 2d 2d 2d .in.prepare.syntax.(Tomas).-----
4b0e0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 45 ------------------------------.E
4b100 78 74 65 6e 64 20 74 68 65 20 61 63 74 75 61 6c 20 70 72 65 70 61 72 65 2f 65 78 65 63 75 74 65 xtend.the.actual.prepare/execute
4b120 20 70 6c 61 63 65 68 6f 6c 64 65 72 73 20 74 6f 20 73 75 70 70 6f 72 74 20 64 61 74 61 20 74 79 .placeholders.to.support.data.ty
4b140 70 65 73 2c 20 62 6f 74 68 0a 74 6f 20 63 68 65 63 6b 20 74 68 65 20 64 61 74 61 20 69 6e 74 72 pes,.both.to.check.the.data.intr
4b160 6f 64 75 63 65 64 20 74 6f 20 74 68 65 20 71 75 65 72 79 20 61 6e 64 20 74 6f 20 22 63 61 73 74 oduced.to.the.query.and.to."cast
4b180 22 20 74 68 65 20 72 65 73 75 6c 74 0a 74 6f 20 6e 61 74 69 76 65 20 70 68 70 20 64 61 74 61 20 ".the.result.to.native.php.data.
4b1a0 74 79 70 65 73 2e 20 45 78 3a 0a 0a 24 73 71 6c 20 3d 20 22 49 4e 53 45 52 54 20 49 4e 54 4f 20 types..Ex:..$sql.=."INSERT.INTO.
4b1c0 74 61 62 6c 65 20 56 41 4c 55 45 53 20 28 7b 7b 69 6e 74 28 34 29 7d 7d 2c 20 7b 7b 62 6f 6f 6c table.VALUES.({{int(4)}},.{{bool
4b1e0 7d 7d 2c 20 7b 7b 64 61 74 65 28 27 59 2d 6d 2d 64 27 29 7d 7d 29 22 3b 0a 24 72 6f 77 20 3d 20 }},.{{date('Y-m-d')}})";.$row.=.
4b200 24 64 62 2d 3e 71 75 65 72 79 28 24 73 71 6c 2c 20 61 72 72 61 79 28 38 2c 20 27 74 27 2c 20 27 $db->query($sql,.array(8,.'t',.'
4b220 32 30 30 31 2d 30 34 2d 31 27 29 29 3b 0a 0a 46 6f 72 6d 61 74 3a 20 7b 7b 3c 64 61 74 61 5f 74 2001-04-1'));..Format:.{{<data_t
4b240 79 70 65 3e 28 3c 70 61 72 61 6d 31 3e 2c 3c 70 61 72 61 6d 32 3e 29 7d 7d 0a 0a 22 70 61 72 61 ype>(<param1>,<param2>)}}.."para
4b260 6d 22 20 63 6f 75 6c 64 20 62 65 20 74 68 65 20 6d 61 78 20 6c 65 6e 67 68 74 20 6f 66 20 74 68 m".could.be.the.max.lenght.of.th
4b280 65 20 64 61 74 61 2c 20 64 61 74 65 20 66 6f 72 6d 61 74 73 2c 20 6e 6f 74 5f 6e 75 6c 6c 0a 63 e.data,.date.formats,.not_null.c
4b2a0 68 65 63 6b 73 20 6f 72 20 64 65 66 61 75 6c 74 20 76 61 6c 75 65 73 2e 0a 0a 4f 74 68 65 72 20 hecks.or.default.values...Other.
4b2c0 69 64 65 61 73 20 63 6f 75 6c 64 20 62 65 3a 0a 0a 31 29 0a 24 73 71 6c 20 3d 20 22 49 4e 53 45 ideas.could.be:..1).$sql.=."INSE
4b2e0 52 54 20 49 4e 54 4f 20 74 61 62 6c 65 20 56 41 4c 55 45 53 20 28 3f 2c 20 3f 2c 20 3f 29 22 3b RT.INTO.table.VALUES.(?,.?,.?)";
4b300 0a 24 73 74 68 20 3d 20 24 64 62 2d 3e 70 72 65 70 61 72 65 28 24 73 71 6c 2c 20 61 72 72 61 79 .$sth.=.$db->prepare($sql,.array
4b320 28 27 69 6e 74 28 34 29 27 2c 20 27 62 6f 6f 6c 27 2c 20 27 64 61 74 65 27 29 3b 0a 24 72 65 73 ('int(4)',.'bool',.'date');.$res
4b340 20 3d 20 24 64 62 2d 3e 65 78 65 63 75 74 65 28 24 73 74 68 2c 20 61 72 72 61 79 28 24 61 2c 20 .=.$db->execute($sth,.array($a,.
4b360 24 62 2c 20 24 63 29 3b 0a 0a 32 29 0a 24 73 71 6c 20 3d 20 22 49 4e 53 45 52 54 20 49 4e 54 4f $b,.$c);..2).$sql.=."INSERT.INTO
4b380 20 74 61 62 6c 65 20 56 41 4c 55 45 53 20 28 3f 2c 20 3f 2c 20 3f 29 22 3b 0a 24 70 61 72 61 6d .table.VALUES.(?,.?,.?)";.$param
4b3a0 73 20 3d 20 61 72 72 61 79 28 0a 09 30 20 3d 3e 20 61 72 72 61 79 28 24 61 2c 20 27 69 6e 74 28 s.=.array(..0.=>.array($a,.'int(
4b3c0 34 29 27 29 2c 0a 09 31 20 3d 3e 20 61 72 72 61 79 28 24 62 2c 20 27 62 6f 6f 6c 27 29 0a 29 3b 4)'),..1.=>.array($b,.'bool').);
4b3e0 0a 24 72 65 73 20 3d 20 24 64 62 2d 3e 71 75 65 72 79 28 24 73 71 6c 2c 20 24 70 61 72 61 6d 73 .$res.=.$db->query($sql,.$params
4b400 29 3b 0a 0a 41 75 74 6f 20 63 6f 6e 6e 65 63 74 20 66 65 61 74 75 72 65 20 28 54 6f 6d 61 73 29 );..Auto.connect.feature.(Tomas)
4b420 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 41 64 .----------------------------.Ad
4b440 64 20 74 68 65 20 61 62 69 6c 69 74 79 20 74 6f 20 63 72 65 61 74 65 20 66 6f 72 20 65 78 61 6d d.the.ability.to.create.for.exam
4b460 70 6c 65 20 61 20 6c 69 67 68 74 20 61 6e 64 20 64 75 6d 70 20 44 42 20 6f 62 6a 65 63 74 20 77 ple.a.light.and.dump.DB.object.w
4b480 68 69 63 68 0a 77 69 6c 6c 20 6f 6e 6c 79 20 73 65 74 20 75 70 20 74 68 65 20 63 6f 6e 6e 65 63 hich.will.only.set.up.the.connec
4b4a0 74 69 6f 6e 20 77 68 65 6e 20 6e 65 65 64 65 64 2e 20 57 69 74 68 20 74 68 61 74 20 70 65 6f 70 tion.when.needed..With.that.peop
4b4c0 6c 65 20 63 6f 75 6c 64 0a 63 72 65 61 74 65 20 74 68 65 20 44 42 20 6f 62 6a 65 63 74 20 69 6e le.could.create.the.DB.object.in
4b4e0 20 61 20 63 6f 6d 6d 6f 6e 20 70 72 65 70 65 6e 64 20 6f 72 20 64 65 66 61 75 6c 74 20 66 69 6c .a.common.prepend.or.default.fil
4b500 65 20 77 69 74 68 6f 75 74 20 74 68 65 0a 6e 65 65 64 20 74 6f 20 77 61 73 74 65 20 73 79 73 74 e.without.the.need.to.waste.syst
4b520 65 6d 20 72 65 73 6f 75 72 63 65 73 20 69 66 20 74 68 65 20 75 73 65 20 6f 66 20 74 68 65 20 64 em.resources.if.the.use.of.the.d
4b540 61 74 61 62 61 73 65 20 69 73 20 66 69 6e 61 6c 6c 79 0a 6e 6f 74 20 6e 65 65 64 65 64 2e 0a 00 atabase.is.finally.not.needed...
4b560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4b580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4b5a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4b5c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4b5e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4b600 44 42 2d 31 2e 35 2e 30 52 43 31 2f 64 6f 63 2f 4d 41 49 4e 54 41 49 4e 45 52 53 00 00 00 00 00 DB-1.5.0RC1/doc/MAINTAINERS.....
4b620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4b640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4b660 00 00 00 00 31 30 30 36 34 34 20 00 20 20 20 37 36 34 20 00 20 20 20 31 34 34 20 00 20 20 20 20 ....100644.....764.....144......
4b680 20 20 20 31 32 30 33 20 20 37 36 37 30 31 32 35 35 37 35 20 20 20 37 37 32 36 20 00 00 00 00 00 ...1203..7670125575...7726......
4b6a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4b6c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4b6e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4b700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4b720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4b740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4b760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4b780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4b7a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4b7c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4b7e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4b800 4d 61 69 6e 74 61 69 6e 65 72 73 20 66 6f 72 20 44 42 20 64 61 74 61 62 61 73 65 20 62 61 63 6b Maintainers.for.DB.database.back
4b820 65 6e 64 73 2f 64 72 69 76 65 72 73 3a 0a 0a 69 62 61 73 65 20 20 20 20 20 3a 20 4c 75 64 6f 76 ends/drivers:..ibase.....:.Ludov
4b840 69 63 6f 20 4d 61 67 6e 6f 63 61 76 61 6c 6c 6f 20 3c 6c 75 64 6f 40 73 75 6d 61 74 72 61 73 6f ico.Magnocavallo.<ludo@sumatraso
4b860 6c 75 74 69 6f 6e 73 2e 63 6f 6d 3e 0a 6d 73 71 6c 20 20 20 20 20 20 3a 20 0a 6d 73 73 71 6c 20 lutions.com>.msql......:..mssql.
4b880 20 20 20 20 3a 20 46 72 61 6e 6b 20 4d 2e 20 4b 72 6f 6d 61 6e 6e 20 3c 66 72 61 6e 6b 40 6b 72 ....:.Frank.M..Kromann.<frank@kr
4b8a0 6f 6d 61 6e 6e 2e 69 6e 66 6f 3e 0a 6d 79 73 71 6c 20 20 20 20 20 3a 20 53 74 69 67 20 42 61 6b omann.info>.mysql.....:.Stig.Bak
4b8c0 6b 65 6e 20 3c 73 73 62 40 70 68 70 2e 6e 65 74 3e 0a 6d 79 73 71 6c 34 09 20 20 3a 20 43 68 61 ken.<ssb@php.net>.mysql4...:.Cha
4b8e0 69 6c 6c 61 6e 20 4e 69 63 6f 6c 61 73 20 3c 6e 69 63 6f 73 40 70 68 70 2e 6e 65 74 3e 0a 6f 63 illan.Nicolas.<nicos@php.net>.oc
4b900 69 38 20 20 20 20 20 20 3a 20 54 6f 6d 61 73 20 56 2e 56 2e 43 6f 78 20 3c 63 6f 78 40 69 64 65 i8......:.Tomas.V.V.Cox.<cox@ide
4b920 63 6e 65 74 2e 63 6f 6d 3e 0a 6f 64 62 63 20 20 20 20 20 20 3a 20 54 6f 6d 61 73 20 56 2e 56 2e cnet.com>.odbc......:.Tomas.V.V.
4b940 43 6f 78 20 3c 63 6f 78 40 69 64 65 63 6e 65 74 2e 63 6f 6d 3e 0a 70 67 73 71 6c 20 20 20 20 20 Cox.<cox@idecnet.com>.pgsql.....
4b960 3a 20 52 75 69 20 48 69 72 6f 6b 61 77 61 20 3c 72 75 69 5f 68 69 72 6f 6b 61 77 61 40 79 62 62 :.Rui.Hirokawa.<rui_hirokawa@ybb
4b980 2e 6e 65 2e 6a 70 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 53 74 69 67 20 42 61 6b 6b 65 6e 20 .ne.jp>.............Stig.Bakken.
4b9a0 3c 73 73 62 40 70 68 70 2e 6e 65 74 3e 0a 73 79 62 61 73 65 20 20 20 20 3a 20 0a 69 66 78 20 20 <ssb@php.net>.sybase....:..ifx..
4b9c0 20 20 20 20 20 3a 20 54 6f 6d 61 73 20 56 2e 56 2e 43 6f 78 20 3c 63 6f 78 40 69 64 65 63 6e 65 .....:.Tomas.V.V.Cox.<cox@idecne
4b9e0 74 2e 63 6f 6d 3e 0a 66 62 73 71 6c 20 20 20 20 20 3a 20 46 72 61 6e 6b 20 4d 2e 20 4b 72 6f 6d t.com>.fbsql.....:.Frank.M..Krom
4ba00 61 6e 6e 20 3c 66 72 61 6e 6b 40 6b 72 6f 6d 61 6e 6e 2e 69 6e 66 6f 3e 0a 64 62 61 73 65 20 20 ann.<frank@kromann.info>.dbase..
4ba20 20 20 20 3a 20 54 6f 6d 61 73 20 56 2e 56 2e 43 6f 78 20 3c 63 6f 78 40 69 64 65 63 6e 65 74 2e ...:.Tomas.V.V.Cox.<cox@idecnet.
4ba40 63 6f 6d 3e 0a 6c 64 61 70 20 20 20 20 20 20 3a 20 4c 75 64 6f 76 69 63 6f 20 4d 61 67 6e 6f 63 com>.ldap......:.Ludovico.Magnoc
4ba60 61 76 61 6c 6c 6f 20 3c 6c 75 64 6f 40 73 75 6d 61 74 72 61 73 6f 6c 75 74 69 6f 6e 73 2e 63 6f avallo.<ludo@sumatrasolutions.co
4ba80 6d 3e 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 m>..............................
4baa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4bac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4bae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4bb00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4bb20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4bb40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4bb60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4bb80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4bba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4bbc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4bbe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4bc00 44 42 2d 31 2e 35 2e 30 52 43 31 2f 64 6f 63 2f 53 54 41 54 55 53 00 00 00 00 00 00 00 00 00 00 DB-1.5.0RC1/doc/STATUS..........
4bc20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4bc40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4bc60 00 00 00 00 31 30 30 36 34 34 20 00 20 20 20 37 36 34 20 00 20 20 20 31 34 34 20 00 20 20 20 20 ....100644.....764.....144......
4bc80 20 20 20 35 36 33 35 20 20 37 36 37 35 33 30 33 31 30 35 20 20 20 37 32 30 34 20 00 00 00 00 00 ...5635..7675303105...7204......
4bca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4bcc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4bce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4bd00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4bd20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4bd40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4bd60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4bd80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4bda0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4bdc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4bde0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4be00 44 42 20 64 72 69 76 65 72 20 66 65 61 74 75 72 65 20 6d 61 74 72 69 78 3a 0a 0a 53 79 6d 62 6f DB.driver.feature.matrix:..Symbo
4be20 6c 73 3a 0a 20 20 22 78 22 20 2d 20 69 6d 70 6c 65 6d 65 6e 74 65 64 2c 20 62 75 74 20 77 69 74 ls:..."x".-.implemented,.but.wit
4be40 68 6f 75 74 20 74 65 73 74 73 0a 20 20 22 74 22 20 2d 20 69 6d 70 6c 65 6d 65 6e 74 65 64 2c 20 hout.tests..."t".-.implemented,.
4be60 62 75 74 20 6f 6e 65 20 6f 72 20 6d 6f 72 65 20 74 65 73 74 73 20 66 61 69 6c 0a 20 20 22 54 22 but.one.or.more.tests.fail..."T"
4be80 20 2d 20 69 6d 70 6c 65 6d 65 6e 74 65 64 2c 20 70 61 73 73 69 6e 67 20 61 6c 6c 20 74 65 73 74 .-.implemented,.passing.all.test
4bea0 73 0a 20 20 22 65 22 20 2d 20 65 6d 75 6c 61 74 65 64 2c 20 77 69 74 68 6f 75 74 20 74 65 73 74 s..."e".-.emulated,.without.test
4bec0 73 0a 20 20 22 45 22 20 2d 20 65 6d 75 6c 61 74 65 64 2c 20 70 61 73 73 69 6e 67 20 61 6c 6c 20 s..."E".-.emulated,.passing.all.
4bee0 74 65 73 74 73 0a 20 20 22 6e 22 20 2d 20 72 65 74 75 72 6e 73 20 22 6e 6f 74 20 63 61 70 61 62 tests..."n".-.returns."not.capab
4bf00 6c 65 22 0a 20 20 22 2d 22 20 2d 20 6e 6f 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 20 6f 66 le"..."-".-.no.implementation.of
4bf20 20 74 68 69 73 20 66 65 61 74 75 72 65 0a 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .this.feature...................
4bf40 20 20 20 66 62 73 71 6c 20 20 20 20 20 20 69 66 78 20 20 20 20 20 20 6d 73 73 71 6c 09 20 6d 79 ...fbsql......ifx......mssql..my
4bf60 73 71 6c 34 20 20 20 20 20 6f 64 62 63 20 20 20 20 20 73 79 62 61 73 65 0a 46 45 41 54 55 52 45 sql4.....odbc.....sybase.FEATURE
4bf80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 20 20 69 62 61 73 65 20 20 7c 20 20 6d 73 71 6c 20 ..............|..ibase..|..msql.
4bfa0 20 20 7c 20 20 20 6d 79 73 71 6c 20 7c 20 20 20 6f 63 69 38 20 20 7c 20 20 20 70 67 73 71 6c 20 ..|...mysql.|...oci8..|...pgsql.
4bfc0 7c 0a 73 69 6d 70 6c 65 51 75 65 72 79 20 20 20 20 20 20 20 20 20 20 78 20 20 20 20 54 20 20 20 |.simpleQuery..........x....T...
4bfe0 20 78 20 20 20 20 78 20 20 20 20 78 20 20 20 20 54 20 20 20 20 2d 20 20 20 20 54 20 20 20 20 78 .x....x....x....T....-....T....x
4c000 20 20 20 20 54 20 20 20 20 78 0a 6e 75 6d 43 6f 6c 73 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ....T....x.numCols..............
4c020 78 20 20 20 20 54 20 20 20 20 78 20 20 20 20 78 20 20 20 20 78 20 20 20 20 54 20 20 20 20 2d 20 x....T....x....x....x....T....-.
4c040 20 20 20 54 20 20 20 20 78 20 20 20 20 54 20 20 20 20 78 0a 6e 75 6d 52 6f 77 73 20 20 20 20 20 ...T....x....T....x.numRows.....
4c060 20 20 20 20 20 20 20 20 20 78 20 20 20 20 6e 20 20 20 20 6e 20 20 20 20 78 20 20 20 20 78 20 20 .........x....n....n....x....x..
4c080 20 20 54 20 20 20 20 2d 20 20 20 20 45 20 20 20 20 78 20 20 20 20 54 20 20 20 20 6e 0a 65 72 72 ..T....-....E....x....T....n.err
4c0a0 6f 72 4e 61 74 69 76 65 20 20 20 20 20 20 20 20 20 20 78 20 20 20 20 6e 20 20 20 20 78 20 20 20 orNative..........x....n....x...
4c0c0 20 6e 20 20 20 20 6e 20 20 20 20 54 20 20 20 20 2d 20 20 20 20 78 20 20 20 20 78 20 20 20 20 54 .n....n....T....-....x....x....T
4c0e0 20 20 20 20 6e 0a 70 72 65 70 61 72 65 2f 65 78 65 63 75 74 65 20 20 20 20 20 20 65 20 20 20 20 ....n.prepare/execute......e....
4c100 78 20 20 20 20 65 20 20 20 20 65 20 20 20 20 65 20 20 20 20 45 20 20 20 20 2d 20 20 20 20 54 20 x....e....e....e....E....-....T.
4c120 20 20 20 65 20 20 20 20 45 20 20 20 20 65 0a 73 65 71 75 65 6e 63 65 73 20 20 20 20 20 20 20 20 ...e....E....e.sequences........
4c140 20 20 20 20 65 20 20 20 20 54 20 20 20 20 6e 20 20 20 20 6e 20 20 20 20 78 20 20 20 20 45 20 20 ....e....T....n....n....x....E..
4c160 20 20 2d 20 20 20 20 54 20 20 20 20 6e 20 20 20 20 54 20 20 20 20 6e 0a 61 66 66 65 63 74 65 64 ..-....T....n....T....n.affected
4c180 52 6f 77 73 20 20 20 20 20 20 20 20 20 78 20 20 20 20 6e 20 20 20 20 78 20 20 20 20 78 20 20 20 Rows.........x....n....x....x...
4c1a0 20 6e 20 20 20 20 54 20 20 20 20 2d 20 20 20 20 54 20 20 20 20 78 20 20 20 20 54 20 20 20 20 78 .n....T....-....T....x....T....x
4c1c0 0a 66 65 74 63 68 20 6d 6f 64 65 73 20 20 20 20 20 20 20 20 20 20 78 20 20 20 20 54 20 20 20 20 .fetch.modes..........x....T....
4c1e0 78 20 20 20 20 78 20 20 20 20 78 20 20 20 20 54 20 20 20 20 2d 20 20 20 20 54 20 20 20 20 78 20 x....x....x....T....-....T....x.
4c200 20 20 20 54 20 20 20 20 78 0a 66 65 74 63 68 20 72 6f 77 20 62 79 20 6e 75 6d 62 65 72 20 20 78 ...T....x.fetch.row.by.number..x
4c220 20 20 20 20 6e 20 20 20 20 78 20 20 20 20 78 20 20 20 20 78 20 20 20 20 78 20 20 20 20 2d 20 20 ....n....x....x....x....x....-..
4c240 20 20 6e 20 20 20 20 78 20 20 20 20 78 20 20 20 20 78 0a 74 72 61 6e 73 61 63 74 69 6f 6e 73 20 ..n....x....x....x.transactions.
4c260 20 20 20 20 20 20 20 20 78 20 20 20 20 78 20 20 20 20 6e 20 20 20 20 6e 20 20 20 20 78 20 20 20 ........x....x....n....n....x...
4c280 20 78 20 20 20 20 2d 20 20 20 20 78 20 20 20 20 78 20 20 20 20 78 20 20 20 20 6e 0a 61 75 74 6f .x....-....x....x....x....n.auto
4c2a0 2d 63 6f 6d 6d 69 74 20 20 20 20 20 20 20 20 20 20 78 20 20 20 20 78 20 20 20 20 6e 20 20 20 20 -commit..........x....x....n....
4c2c0 6e 20 20 20 20 6e 20 20 20 20 6e 20 20 20 20 2d 20 20 20 20 78 20 20 20 20 78 20 20 20 20 78 20 n....n....n....-....x....x....x.
4c2e0 20 20 20 6e 0a 65 72 72 6f 72 20 6d 61 70 70 69 6e 67 20 20 20 20 20 20 20 20 78 20 20 20 20 78 ...n.error.mapping........x....x
4c300 20 20 20 20 65 20 20 20 20 2d 20 20 20 20 2d 20 20 20 20 54 20 20 20 20 2d 20 20 20 20 54 20 20 ....e....-....-....T....-....T..
4c320 20 20 78 20 20 20 20 45 20 20 20 20 2d 0a 74 61 62 6c 65 49 6e 66 6f 20 20 20 20 20 20 20 20 20 ..x....E....-.tableInfo.........
4c340 20 20 20 78 20 20 20 20 6e 20 20 20 20 6e 20 20 20 20 6e 20 20 20 20 78 20 20 20 20 54 20 20 20 ...x....n....n....n....x....T...
4c360 20 2d 20 20 20 20 54 20 20 20 20 6e 20 20 20 20 78 20 20 20 20 6e 0a 0a 54 59 50 45 20 28 67 65 .-....T....n....x....n..TYPE.(ge
4c380 74 4c 69 73 74 4f 66 29 0a 74 61 62 6c 65 73 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 78 20 tListOf).tables...............x.
4c3a0 20 20 20 2d 20 20 20 20 2d 20 20 20 20 2d 20 20 20 20 78 20 20 20 20 78 20 20 20 20 2d 20 20 20 ...-....-....-....x....x....-...
4c3c0 20 78 20 20 20 20 2d 20 20 20 20 78 20 20 20 20 78 0a 76 69 65 77 73 20 20 20 20 20 20 20 20 20 .x....-....x....x.views.........
4c3e0 20 20 20 20 20 20 20 2d 20 20 20 20 2d 20 20 20 20 2d 20 20 20 20 2d 20 20 20 20 78 20 20 20 20 .......-....-....-....-....x....
4c400 6e 20 20 20 20 2d 20 20 20 20 2d 20 20 20 20 2d 20 20 20 20 78 20 20 20 20 78 0a 75 73 65 72 73 n....-....-....-....x....x.users
4c420 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2d 20 20 20 20 2d 20 20 20 20 2d 20 20 20 20 2d ................-....-....-....-
4c440 20 20 20 20 2d 20 20 20 20 78 20 20 20 20 2d 20 20 20 20 2d 20 20 20 20 2d 20 20 20 20 78 20 20 ....-....x....-....-....-....x..
4c460 20 20 2d 0a 64 61 74 61 62 61 73 65 73 20 20 20 20 20 20 20 20 20 20 20 20 2d 20 20 20 20 2d 20 ..-.databases............-....-.
4c480 20 20 20 2d 20 20 20 20 2d 20 20 20 20 2d 20 20 20 20 78 20 20 20 20 2d 20 20 20 20 2d 20 20 20 ...-....-....-....x....-....-...
4c4a0 20 2d 20 20 20 20 78 20 20 20 20 2d 0a 66 75 6e 63 74 69 6f 6e 73 20 20 20 20 20 20 20 20 20 20 .-....x....-.functions..........
4c4c0 20 20 2d 20 20 20 20 2d 20 20 20 20 2d 20 20 20 20 2d 20 20 20 20 2d 20 20 20 20 2d 20 20 20 20 ..-....-....-....-....-....-....
4c4e0 2d 20 20 20 20 2d 20 20 20 20 2d 20 20 20 20 78 20 20 20 20 2d 0a 0a 20 20 20 20 20 20 20 20 20 -....-....-....x....-...........
4c500 20 20 20 20 20 20 20 20 20 20 66 62 73 71 6c 20 20 20 20 20 20 69 66 78 20 20 20 20 20 20 6d 73 ..........fbsql......ifx......ms
4c520 73 71 6c 09 20 6d 79 73 71 6c 34 20 20 20 20 20 6f 64 62 63 20 20 20 20 20 73 79 62 61 73 65 0a sql..mysql4.....odbc.....sybase.
4c540 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 20 20 69 62 61 73 65 20 20 7c .....................|..ibase..|
4c560 20 20 6d 73 71 6c 20 20 20 7c 20 20 20 6d 79 73 71 6c 20 7c 20 20 20 6f 63 69 38 20 20 7c 20 20 ..msql...|...mysql.|...oci8..|..
4c580 20 70 67 73 71 6c 20 7c 0a 0a 54 45 53 54 53 20 43 4f 4e 46 4f 52 4d 41 4e 43 45 0a 30 31 63 6f .pgsql.|..TESTS.CONFORMANCE.01co
4c5a0 6e 6e 65 63 74 20 20 20 20 20 20 20 20 20 20 20 20 2d 20 20 20 20 6f 20 20 20 20 2d 20 20 20 20 nnect............-....o....-....
4c5c0 2d 20 20 20 20 6f 20 20 20 20 6f 20 20 20 20 2d 20 20 20 20 2d 20 20 20 20 6f 20 20 20 20 6f 20 -....o....o....-....-....o....o.
4c5e0 20 20 20 2d 0a 30 32 66 65 74 63 68 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2d 20 20 20 20 6f ...-.02fetch..............-....o
4c600 20 20 20 20 2d 20 20 20 20 2d 20 20 20 20 6f 20 20 20 20 6f 20 20 20 20 2d 20 20 20 20 2d 20 20 ....-....-....o....o....-....-..
4c620 20 20 6f 20 20 20 20 6f 20 20 20 20 2d 0a 30 33 73 69 6d 70 6c 65 71 75 65 72 79 20 20 20 20 20 ..o....o....-.03simplequery.....
4c640 20 20 20 2d 20 20 20 20 6f 20 20 20 20 2d 20 20 20 20 2d 20 20 20 20 6f 20 20 20 20 6f 20 20 20 ...-....o....-....-....o....o...
4c660 20 2d 20 20 20 20 2d 20 20 20 20 6f 20 20 20 20 6f 20 20 20 20 2d 0a 30 34 6e 75 6d 63 6f 6c 73 .-....-....o....o....-.04numcols
4c680 20 20 20 20 20 20 20 20 20 20 20 20 2d 20 20 20 20 6f 20 20 20 20 2d 20 20 20 20 2d 20 20 20 20 ............-....o....-....-....
4c6a0 6f 20 20 20 20 6f 20 20 20 20 2d 20 20 20 20 2d 20 20 20 20 6f 20 20 20 20 6f 20 20 20 20 2d 0a o....o....-....-....o....o....-.
4c6c0 30 35 73 65 71 75 65 6e 63 65 73 20 20 20 20 20 20 20 20 20 20 2d 20 20 20 20 6f 20 20 20 20 2d 05sequences..........-....o....-
4c6e0 20 20 20 20 2d 20 20 20 20 6f 20 20 20 20 6f 20 20 20 20 2d 20 20 20 20 2d 20 20 20 20 6f 20 20 ....-....o....o....-....-....o..
4c700 20 20 6f 20 20 20 20 2d 0a 30 36 70 72 65 70 65 78 65 63 20 20 20 20 20 20 20 20 20 20 20 2d 20 ..o....-.06prepexec...........-.
4c720 20 20 20 6f 20 20 20 20 2d 20 20 20 20 2d 20 20 20 20 6f 20 20 20 20 6f 20 20 20 20 2d 20 20 20 ...o....-....-....o....o....-...
4c740 20 2d 20 20 20 20 6f 20 20 20 20 6f 20 20 20 20 2d 0a 30 38 61 66 66 65 63 74 65 64 72 6f 77 73 .-....o....o....-.08affectedrows
4c760 20 20 20 20 20 20 20 2d 20 20 20 20 58 20 20 20 20 2d 20 20 20 20 2d 20 20 20 20 6f 20 20 20 20 .......-....X....-....-....o....
4c780 6f 20 20 20 20 2d 20 20 20 20 2d 20 20 20 20 6f 20 20 20 20 6f 20 20 20 20 2d 0a 30 39 6e 75 6d o....-....-....o....o....-.09num
4c7a0 72 6f 77 73 20 20 20 20 20 20 20 20 20 20 20 20 2d 20 20 20 20 58 20 20 20 20 2d 20 20 20 20 2d rows............-....X....-....-
4c7c0 20 20 20 20 6f 20 20 20 20 6f 20 20 20 20 2d 20 20 20 20 2d 20 20 20 20 6f 20 20 20 20 6f 20 20 ....o....o....-....-....o....o..
4c7e0 20 20 2d 0a 31 30 65 72 72 6f 72 6d 61 70 20 20 20 20 20 20 20 20 20 20 20 2d 20 20 20 20 6f 20 ..-.10errormap...........-....o.
4c800 20 20 20 2d 20 20 20 20 2d 20 20 20 20 58 20 20 20 20 58 20 20 20 20 2d 20 20 20 20 2d 20 20 20 ...-....-....X....X....-....-...
4c820 20 6f 20 20 20 20 6f 20 20 20 20 2d 0a 31 33 6c 69 6d 69 74 20 20 20 20 20 20 20 20 20 20 20 20 .o....o....-.13limit............
4c840 20 20 2d 20 20 20 20 6f 20 20 20 20 2d 20 20 20 20 2d 20 20 20 20 6f 20 20 20 20 6f 20 20 20 20 ..-....o....-....-....o....o....
4c860 2d 20 20 20 20 2d 20 20 20 20 6f 20 20 20 20 6f 20 20 20 20 2d 0a 31 34 66 65 74 63 68 6d 6f 64 -....-....o....o....-.14fetchmod
4c880 65 5f 6f 62 6a 65 63 74 20 20 20 2d 20 20 20 20 6f 20 20 20 20 2d 20 20 20 20 2d 20 20 20 20 6f e_object...-....o....-....-....o
4c8a0 20 20 20 20 6f 20 20 20 20 2d 20 20 20 20 2d 20 20 20 20 6f 20 20 20 20 6f 20 20 20 20 2d 0a 31 ....o....-....-....o....o....-.1
4c8c0 35 71 75 6f 74 65 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2d 20 20 20 20 58 20 20 20 20 2d 20 5quote..............-....X....-.
4c8e0 20 20 20 2d 20 20 20 20 6f 20 20 20 20 6f 20 20 20 20 2d 20 20 20 20 2d 20 20 20 20 58 20 20 20 ...-....o....o....-....-....X...
4c900 20 6f 20 20 20 20 2d 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .o....-.........................
4c920 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
4c940 20 20 6f 20 2d 3e 20 54 65 73 74 20 70 61 73 73 65 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ..o.->.Test.passed..............
4c960 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
4c980 20 20 20 20 20 20 20 20 20 20 20 20 58 20 2d 3e 20 54 65 73 74 20 66 61 69 6c 65 64 0a 00 00 00 ............X.->.Test.failed....
4c9a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4c9c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4c9e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4ca00 44 42 2d 31 2e 35 2e 30 52 43 31 2f 64 6f 63 2f 54 45 53 54 45 52 53 00 00 00 00 00 00 00 00 00 DB-1.5.0RC1/doc/TESTERS.........
4ca20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4ca40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4ca60 00 00 00 00 31 30 30 36 34 34 20 00 20 20 20 37 36 34 20 00 20 20 20 31 34 34 20 00 20 20 20 20 ....100644.....764.....144......
4ca80 20 20 20 34 36 36 34 20 20 37 36 37 33 36 35 31 35 30 30 20 20 20 37 33 31 36 20 00 00 00 00 00 ...4664..7673651500...7316......
4caa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4cac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4cae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4cb00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4cb20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4cb40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4cb60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4cb80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4cba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4cbc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4cbe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4cc00 48 6f 77 20 74 6f 20 72 75 6e 20 74 65 73 74 73 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d How.to.run.tests.---------------
4cc20 2d 0a 0a 4c 6f 67 20 74 6f 20 74 68 65 20 72 65 70 6f 73 69 74 6f 72 79 20 28 75 73 65 20 22 70 -..Log.to.the.repository.(use."p
4cc40 68 70 66 69 22 20 61 73 20 70 61 73 73 77 6f 72 64 29 3a 0a 24 20 63 76 73 20 2d 64 20 3a 70 73 hpfi".as.password):.$.cvs.-d.:ps
4cc60 65 72 76 65 72 3a 63 76 73 72 65 61 64 40 63 76 73 2e 70 68 70 2e 6e 65 74 3a 2f 72 65 70 6f 73 erver:cvsread@cvs.php.net:/repos
4cc80 69 74 6f 72 79 20 6c 6f 67 69 6e 0a 24 20 63 76 73 20 2d 64 20 3a 70 73 65 72 76 65 72 3a 63 76 itory.login.$.cvs.-d.:pserver:cv
4cca0 73 72 65 61 64 40 63 76 73 2e 70 68 70 2e 6e 65 74 3a 2f 72 65 70 6f 73 69 74 6f 72 79 20 63 6f sread@cvs.php.net:/repository.co
4ccc0 20 70 68 70 34 2f 70 65 61 72 0a 24 20 63 64 20 70 65 61 72 2f 44 42 2f 74 65 73 74 73 2f 64 72 .php4/pear.$.cd.pear/DB/tests/dr
4cce0 69 76 65 72 0d 0a 24 20 76 69 20 73 65 74 75 70 2e 69 6e 63 20 20 20 20 20 20 20 23 20 61 64 64 iver..$.vi.setup.inc.......#.add
4cd00 20 61 20 77 6f 72 6b 69 6e 67 20 64 73 6e 20 66 6f 72 20 79 6f 75 72 20 64 61 74 61 62 61 73 65 .a.working.dsn.for.your.database
4cd20 0d 0a 24 20 70 65 61 72 20 72 75 6e 2d 74 65 73 74 73 20 2e 20 20 20 23 20 72 75 6e 73 20 61 6c ..$.pear.run-tests.....#.runs.al
4cd40 6c 20 74 65 73 74 73 20 28 74 68 65 20 2e 70 68 70 74 20 66 69 6c 65 73 29 0a 24 20 70 65 61 72 l.tests.(the..phpt.files).$.pear
4cd60 20 72 75 6e 2d 74 65 73 74 73 20 30 32 66 65 74 63 68 2e 70 68 70 74 20 23 20 72 75 6e 20 6f 6e .run-tests.02fetch.phpt.#.run.on
4cd80 6c 79 20 74 68 69 73 20 74 65 73 74 0d 0a 0d 0a 45 61 63 68 20 74 65 73 74 20 74 68 61 74 20 66 ly.this.test....Each.test.that.f
4cda0 61 69 6c 73 20 67 65 6e 65 72 61 74 65 73 20 61 20 2e 70 68 70 20 28 77 68 69 63 68 20 79 6f 75 ails.generates.a..php.(which.you
4cdc0 20 63 61 6e 20 65 78 65 63 75 74 65 29 2c 20 61 20 2e 65 78 70 0d 0a 28 74 68 65 20 65 78 70 65 .can.execute),.a..exp..(the.expe
4cde0 63 74 65 64 20 6f 75 74 70 75 74 29 2c 20 61 20 2e 6f 75 74 20 28 74 68 65 20 74 65 73 74 20 6f cted.output),.a..out.(the.test.o
4ce00 75 74 70 75 74 29 20 61 6e 64 20 61 20 2e 64 69 66 66 20 28 61 20 64 69 66 66 20 2d 75 0d 0a 66 utput).and.a..diff.(a.diff.-u..f
4ce20 72 6f 6d 20 74 68 65 20 2e 65 78 70 20 61 6e 64 20 2e 6f 75 74 20 66 69 6c 65 73 29 2e 0a 0a 3c rom.the..exp.and..out.files)...<
4ce40 74 65 73 74 20 66 69 6c 65 20 6f 72 20 64 69 72 65 63 74 6f 72 79 3e 20 63 61 6e 20 62 65 3a 0a test.file.or.directory>.can.be:.
4ce60 0a 70 65 61 72 2f 44 42 2f 74 65 73 74 73 3a 20 20 20 20 20 20 20 20 20 20 20 20 43 6f 6d 6d 6f .pear/DB/tests:............Commo
4ce80 6e 20 50 45 41 52 20 44 42 20 74 65 73 74 73 0a 70 65 61 72 2f 44 42 2f 74 65 73 74 73 2f 3c 62 n.PEAR.DB.tests.pear/DB/tests/<b
4cea0 61 63 6b 65 6e 64 3e 3a 20 20 53 70 65 63 69 66 69 63 20 62 61 63 6b 65 6e 64 20 74 65 73 74 73 ackend>:..Specific.backend.tests
4cec0 20 28 6f 6c 64 20 74 65 73 74 73 2c 20 64 6f 6e 27 74 20 75 73 65 64 20 74 68 65 6d 29 0a 70 65 .(old.tests,.don't.used.them).pe
4cee0 61 72 2f 44 42 2f 74 65 73 74 73 2f 64 72 69 76 65 72 3a 20 20 20 20 20 43 6f 6d 6d 6f 6e 20 74 ar/DB/tests/driver:.....Common.t
4cf00 65 73 74 73 20 66 6f 72 20 61 6c 6c 20 74 68 65 20 64 72 69 76 65 72 73 0a 0a 49 66 20 79 6f 75 ests.for.all.the.drivers..If.you
4cf20 20 72 75 6e 20 74 68 65 20 74 65 73 74 73 2c 20 70 6c 65 61 73 65 20 72 65 70 6f 72 74 20 6f 72 .run.the.tests,.please.report.or
4cf40 20 66 69 6c 6c 20 74 68 65 20 54 45 53 54 20 43 4f 4e 46 4f 52 4d 41 4e 43 45 20 74 61 62 6c 65 .fill.the.TEST.CONFORMANCE.table
4cf60 0a 69 6e 20 74 68 65 20 53 54 41 54 55 53 20 64 6f 63 75 6d 65 6e 74 2e 20 42 65 66 6f 72 65 20 .in.the.STATUS.document..Before.
4cf80 61 6e 79 20 63 6f 6d 6d 69 74 20 74 6f 20 43 56 53 20 62 65 20 73 75 72 65 20 74 6f 20 72 75 6e any.commit.to.CVS.be.sure.to.run
4cfa0 20 74 68 65 20 74 65 73 74 73 0a 61 6e 64 20 6e 6f 74 68 69 6e 67 20 67 6f 74 20 62 72 6f 6b 65 .the.tests.and.nothing.got.broke
4cfc0 6e 20 77 69 74 68 20 74 68 65 20 63 68 61 6e 67 65 2e 0a 0a 49 66 20 79 6f 75 20 67 65 74 20 74 n.with.the.change...If.you.get.t
4cfe0 68 65 20 6d 65 73 73 61 67 65 20 22 73 6b 69 70 22 2c 20 6d 65 61 6e 73 20 74 68 61 74 20 74 68 he.message."skip",.means.that.th
4d000 65 20 74 65 73 74 20 69 74 27 73 20 6e 6f 74 20 65 78 65 63 75 74 65 64 2e 20 4c 6f 6f 6b 0a 61 e.test.it's.not.executed..Look.a
4d020 74 20 74 68 65 20 44 42 2f 74 65 73 74 73 2f 64 72 69 76 65 72 2f 73 6b 69 70 69 66 2e 69 6e 63 t.the.DB/tests/driver/skipif.inc
4d040 20 74 6f 20 73 65 65 20 77 68 61 74 27 73 20 74 68 65 20 70 72 6f 62 6c 65 6d 20 28 70 72 6f 62 .to.see.what's.the.problem.(prob
4d060 61 62 6c 79 0a 61 20 63 6f 6e 6e 65 63 74 69 6f 6e 20 70 72 6f 62 6c 65 6d 29 2e 0a 0a 0a 44 42 ably.a.connection.problem)....DB
4d080 20 74 65 73 74 65 72 20 6d 61 74 72 69 78 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a .tester.matrix.----------------.
4d0a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
4d0c0 20 20 20 42 20 2d 20 41 20 2d 20 43 20 2d 20 4b 20 2d 20 45 20 2d 20 4e 20 2d 20 44 20 2d 20 53 ...B.-.A.-.C.-.K.-.E.-.N.-.D.-.S
4d0e0 0a 54 45 53 54 45 52 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 62 61 73 65 20 .TESTER...................ibase.
4d100 69 66 78 20 20 20 6d 73 71 6c 20 20 6d 73 73 71 6c 20 6d 79 73 71 6c 20 6d 79 73 71 6c 34 20 6f ifx...msql..mssql.mysql.mysql4.o
4d120 63 69 38 20 20 6f 64 62 63 20 20 70 67 73 71 6c 20 73 79 62 61 73 65 20 20 66 62 73 71 6c 0a 4a ci8..odbc..pgsql.sybase..fbsql.J
4d140 6f 68 6e 20 48 6f 72 74 6f 6e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2d 20 20 20 20 20 58 ohn.Horton...............-.....X
4d160 20 20 20 20 20 2d 20 20 20 20 20 2d 20 20 20 20 20 2d 20 20 20 20 20 20 2d 20 20 20 20 20 2d 20 .....-.....-.....-......-.....-.
4d180 20 20 20 20 2d 20 20 20 20 20 2d 20 20 20 20 20 20 2d 20 20 20 20 20 20 20 2d 0a 54 69 6d 20 5a ....-.....-......-.......-.Tim.Z
4d1a0 69 63 6b 75 73 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2d 20 20 20 20 20 2d 20 20 20 20 ickus................-.....-....
4d1c0 20 2d 20 20 20 20 20 2d 20 20 20 20 20 2d 20 20 20 20 20 20 2d 20 20 20 20 20 58 20 20 20 20 20 .-.....-.....-......-.....X.....
4d1e0 2d 20 20 20 20 20 2d 20 20 20 20 20 20 2d 20 20 20 20 20 20 20 2d 0a 54 69 6d 20 50 61 72 6b 69 -.....-......-.......-.Tim.Parki
4d200 6e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2d 20 20 20 20 20 2d 20 20 20 20 20 2d 20 20 n................-.....-.....-..
4d220 20 20 20 2d 20 20 20 20 20 2d 20 20 20 20 20 20 2d 20 20 20 20 20 58 20 20 20 20 20 2d 20 20 20 ...-.....-......-.....X.....-...
4d240 20 20 2d 20 20 20 20 20 20 2d 20 20 20 20 20 20 20 2d 0a 50 61 75 6c 20 47 61 72 64 69 6e 65 72 ..-......-.......-.Paul.Gardiner
4d260 20 20 20 20 20 20 20 20 20 20 20 20 20 2d 20 20 20 20 20 58 20 20 20 20 20 2d 20 20 20 20 20 2d .............-.....X.....-.....-
4d280 20 20 20 20 20 2d 20 20 20 20 20 20 2d 20 20 20 20 20 2d 20 20 20 20 20 2d 20 20 20 20 20 2d 20 .....-......-.....-.....-.....-.
4d2a0 20 20 20 20 20 2d 20 20 20 20 20 20 20 2d 0a 44 61 6e 69 65 6c 2c 20 41 64 61 6d 20 20 20 20 20 .....-.......-.Daniel,.Adam.....
4d2c0 20 20 20 20 20 20 20 20 20 2d 20 20 20 20 20 2d 20 20 20 20 20 2d 20 20 20 20 20 2d 20 20 20 20 .........-.....-.....-.....-....
4d2e0 20 2d 20 20 20 20 20 20 2d 20 20 20 20 20 58 20 20 20 20 20 2d 20 20 20 20 20 2d 20 20 20 20 20 .-......-.....X.....-.....-.....
4d300 20 2d 20 20 20 20 20 20 20 2d 0a 73 7a 69 69 40 73 7a 69 69 73 6f 66 74 2e 63 6f 6d 20 20 20 20 .-.......-.szii@sziisoft.com....
4d320 20 20 20 20 20 2d 20 20 20 20 20 2d 20 20 20 20 20 2d 20 20 20 20 20 2d 20 20 20 20 20 2d 20 20 .....-.....-.....-.....-.....-..
4d340 20 20 20 20 2d 20 20 20 20 20 2d 20 20 20 20 20 58 b9 20 20 20 20 2d 20 20 20 20 20 20 2d 20 20 ....-.....-.....X.....-......-..
4d360 20 20 20 20 20 2d 0a 6a 6d 68 33 40 6c 69 6e 75 78 66 72 65 61 6b 2e 63 6f 6d 20 20 20 20 20 20 .....-.jmh3@linuxfreak.com......
4d380 20 2d 20 20 20 20 20 2d 20 20 20 20 20 2d 20 20 20 20 20 2d 20 20 20 20 20 2d 20 20 20 20 20 20 .-.....-.....-.....-.....-......
4d3a0 2d 20 20 20 20 20 2d 20 20 20 20 20 2d 20 20 20 20 20 58 20 20 20 20 20 20 2d 20 20 20 20 20 20 -.....-.....-.....X......-......
4d3c0 20 2d 0a 4b 65 76 69 6e 20 48 65 6e 72 69 6b 73 6f 6e 20 20 20 20 20 20 20 20 20 20 20 2d 20 20 .-.Kevin.Henrikson...........-..
4d3e0 20 20 20 2d 20 20 20 20 20 2d 20 20 20 20 20 2d 20 20 20 20 20 2d 20 20 20 20 20 20 2d 20 20 20 ...-.....-.....-.....-......-...
4d400 20 20 58 20 20 20 20 20 2d 20 20 20 20 20 2d 20 20 20 20 20 20 2d 20 20 20 20 20 20 20 2d 0a 53 ..X.....-.....-......-.......-.S
4d420 74 69 67 20 42 61 6b 6b 65 6e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2d 20 20 20 20 20 2d tig.Bakken...............-.....-
4d440 20 20 20 20 20 2d 20 20 20 20 20 2d 20 20 20 20 20 58 20 20 20 20 20 20 2d 20 20 20 20 20 2d 20 .....-.....-.....X......-.....-.
4d460 20 20 20 20 2d 20 20 20 20 20 58 20 20 20 20 20 20 2d 20 20 20 20 20 20 20 2d 0a 43 68 75 63 6b ....-.....X......-.......-.Chuck
4d480 20 48 61 67 65 6e 62 75 63 68 20 20 20 20 20 20 20 20 20 20 20 2d 20 20 20 20 20 2d 20 20 20 20 .Hagenbuch...........-.....-....
4d4a0 20 2d 20 20 20 20 20 58 20 20 20 20 20 2d 20 20 20 20 20 20 2d 20 20 20 20 20 2d 20 20 20 20 20 .-.....X.....-......-.....-.....
4d4c0 2d 20 20 20 20 20 2d 20 20 20 20 20 20 2d 20 20 20 20 20 20 20 2d 0a 4c 75 64 6f 76 69 63 6f 20 -.....-......-.......-.Ludovico.
4d4e0 4d 61 67 6e 6f 63 61 76 61 6c 6c 6f 20 20 20 20 20 58 20 20 20 20 20 2d 20 20 20 20 20 2d 20 20 Magnocavallo.....X.....-.....-..
4d500 20 20 20 2d 20 20 20 20 20 2d 20 20 20 20 20 20 2d 20 20 20 20 20 2d 20 20 20 20 20 2d 20 20 20 ...-.....-......-.....-.....-...
4d520 20 20 2d 20 20 20 20 20 20 2d 20 20 20 20 20 20 20 2d 0a 0a 4d 49 53 53 49 4e 47 20 54 45 53 54 ..-......-.......-..MISSING.TEST
4d540 45 52 53 20 20 20 20 20 20 20 20 20 20 20 2d 20 20 20 20 20 2d 20 20 20 20 20 58 20 20 20 20 20 ERS...........-.....-.....X.....
4d560 2d 20 20 20 20 20 2d 20 20 20 20 20 20 58 20 20 20 20 20 2d 20 20 20 20 20 2d 20 20 20 20 20 2d -.....-......X.....-.....-.....-
4d580 20 20 20 20 20 20 58 20 20 20 20 20 20 20 58 0a 0a 43 6f 6d 6d 65 6e 74 73 3a 0a 0a 5b 31 5d 3a ......X.......X..Comments:..[1]:
4d5a0 20 4f 44 42 43 20 75 73 69 6e 67 20 49 42 4d 20 44 42 32 0a 00 00 00 00 00 00 00 00 00 00 00 00 .ODBC.using.IBM.DB2.............
4d5c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4d5e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4d600 44 42 2d 31 2e 35 2e 30 52 43 31 2f 74 65 73 74 73 2f 64 62 5f 65 72 72 6f 72 2e 70 68 70 74 00 DB-1.5.0RC1/tests/db_error.phpt.
4d620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4d640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4d660 00 00 00 00 31 30 30 36 34 34 20 00 20 20 20 37 36 34 20 00 20 20 20 31 34 34 20 00 20 20 20 20 ....100644.....764.....144......
4d680 20 20 20 35 34 32 36 20 20 37 36 37 35 34 34 35 35 37 30 20 20 31 31 33 34 31 20 00 00 00 00 00 ...5426..7675445570..11341......
4d6a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4d6c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4d6e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4d700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4d720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4d740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4d760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4d780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4d7a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4d7c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4d7e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4d800 2d 2d 54 45 53 54 2d 2d 0a 44 42 5f 45 72 72 6f 72 0a 2d 2d 53 4b 49 50 49 46 2d 2d 0a 3c 3f 70 --TEST--.DB_Error.--SKIPIF--.<?p
4d820 68 70 20 69 66 20 28 21 40 69 6e 63 6c 75 64 65 28 22 44 42 2e 70 68 70 22 29 29 20 70 72 69 6e hp.if.(!@include("DB.php")).prin
4d840 74 20 22 73 6b 69 70 22 3b 20 3f 3e 0a 2d 2d 46 49 4c 45 2d 2d 0a 3c 3f 70 68 70 20 2f 2f 20 2d t."skip";.?>.--FILE--.<?php.//.-
4d860 2a 2d 20 43 2b 2b 20 2d 2a 2d 0a 69 6e 63 6c 75 64 65 5f 6f 6e 63 65 20 27 2e 2f 69 6e 63 6c 75 *-.C++.-*-.include_once.'./inclu
4d880 64 65 2e 69 6e 63 27 3b 0a 2f 2f 20 54 65 73 74 20 66 6f 72 3a 20 44 42 2e 70 68 70 0a 2f 2f 20 de.inc';.//.Test.for:.DB.php.//.
4d8a0 50 61 72 74 73 20 74 65 73 74 65 64 3a 20 44 42 5f 45 72 72 6f 72 0a 0a 66 75 6e 63 74 69 6f 6e Parts.tested:.DB_Error..function
4d8c0 20 74 65 73 74 5f 65 72 72 6f 72 5f 68 61 6e 64 6c 65 72 28 24 65 72 72 6e 6f 2c 20 24 65 72 72 .test_error_handler($errno,.$err
4d8e0 6d 73 67 2c 20 24 66 69 6c 65 2c 20 24 6c 69 6e 65 2c 20 24 76 61 72 73 29 20 7b 0a 20 20 20 20 msg,.$file,.$line,.$vars).{.....
4d900 20 20 20 20 24 65 72 72 6f 72 74 79 70 65 20 3d 20 61 72 72 61 79 20 28 0a 20 20 20 20 20 20 20 ....$errortype.=.array.(........
4d920 20 20 20 20 20 20 20 20 20 31 20 20 20 3d 3e 20 20 22 45 72 72 6f 72 22 2c 0a 20 20 20 20 20 20 .........1...=>.."Error",.......
4d940 20 20 20 20 20 20 20 20 20 20 32 20 20 20 3d 3e 20 20 22 57 61 72 6e 69 6e 67 22 2c 0a 20 20 20 ..........2...=>.."Warning",....
4d960 20 20 20 20 20 20 20 20 20 20 20 20 20 34 20 20 20 3d 3e 20 20 22 50 61 72 73 69 6e 67 20 45 72 .............4...=>.."Parsing.Er
4d980 72 6f 72 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 38 20 20 20 3d 3e 20 20 22 4e ror",.................8...=>.."N
4d9a0 6f 74 69 63 65 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 31 36 20 20 3d 3e 20 20 otice",.................16..=>..
4d9c0 22 43 6f 72 65 20 45 72 72 6f 72 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 33 32 "Core.Error",.................32
4d9e0 20 20 3d 3e 20 20 22 43 6f 72 65 20 57 61 72 6e 69 6e 67 22 2c 0a 20 20 20 20 20 20 20 20 20 20 ..=>.."Core.Warning",...........
4da00 20 20 20 20 20 20 36 34 20 20 3d 3e 20 20 22 43 6f 6d 70 69 6c 65 20 45 72 72 6f 72 22 2c 0a 20 ......64..=>.."Compile.Error",..
4da20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 31 32 38 20 3d 3e 20 20 22 43 6f 6d 70 69 6c 65 20 ...............128.=>.."Compile.
4da40 57 61 72 6e 69 6e 67 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 32 35 36 20 3d 3e Warning",.................256.=>
4da60 20 20 22 55 73 65 72 20 45 72 72 6f 72 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .."User.Error",.................
4da80 35 31 32 20 3d 3e 20 20 22 55 73 65 72 20 57 61 72 6e 69 6e 67 22 2c 0a 20 20 20 20 20 20 20 20 512.=>.."User.Warning",.........
4daa0 20 20 20 20 20 20 20 20 31 30 32 34 3d 3e 20 20 22 55 73 65 72 20 4e 6f 74 69 63 65 22 0a 20 20 ........1024=>.."User.Notice"...
4dac0 20 20 20 20 20 20 29 3b 0a 20 20 20 20 20 20 20 20 24 70 72 65 66 69 78 20 3d 20 24 65 72 72 6f ......);.........$prefix.=.$erro
4dae0 72 74 79 70 65 5b 24 65 72 72 6e 6f 5d 3b 0a 20 20 20 20 20 20 20 20 24 66 69 6c 65 20 3d 20 62 rtype[$errno];.........$file.=.b
4db00 61 73 65 6e 61 6d 65 28 24 66 69 6c 65 29 3b 0a 20 20 20 20 20 20 20 20 70 72 69 6e 74 20 22 5c asename($file);.........print."\
4db20 6e 24 70 72 65 66 69 78 3a 20 24 65 72 72 6d 73 67 20 69 6e 20 24 66 69 6c 65 20 6f 6e 20 6c 69 n$prefix:.$errmsg.in.$file.on.li
4db40 6e 65 20 58 58 58 5c 6e 22 3b 0a 7d 0a 0a 65 72 72 6f 72 5f 72 65 70 6f 72 74 69 6e 67 28 45 5f ne.XXX\n";.}..error_reporting(E_
4db60 41 4c 4c 29 3b 0a 73 65 74 5f 65 72 72 6f 72 5f 68 61 6e 64 6c 65 72 28 22 74 65 73 74 5f 65 72 ALL);.set_error_handler("test_er
4db80 72 6f 72 5f 68 61 6e 64 6c 65 72 22 29 3b 0a 72 65 71 75 69 72 65 5f 6f 6e 63 65 20 22 44 42 2e ror_handler");.require_once."DB.
4dba0 70 68 70 22 3b 0a 0a 70 72 69 6e 74 20 22 74 65 73 74 69 6e 67 20 64 69 66 66 65 72 65 6e 74 20 php";..print."testing.different.
4dbc0 65 72 72 6f 72 20 63 6f 64 65 73 2e 2e 2e 5c 6e 22 3b 0a 24 65 20 3d 20 6e 65 77 20 44 42 5f 45 error.codes...\n";.$e.=.new.DB_E
4dbe0 72 72 6f 72 28 29 3b 20 70 72 69 6e 74 20 24 65 2d 3e 74 6f 53 74 72 69 6e 67 28 29 2e 22 5c 6e rror();.print.$e->toString()."\n
4dc00 22 3b 0a 24 65 20 3d 20 6e 65 77 20 44 42 5f 45 72 72 6f 72 28 22 74 65 73 74 20 65 72 72 6f 72 ";.$e.=.new.DB_Error("test.error
4dc20 22 29 3b 20 70 72 69 6e 74 20 24 65 2d 3e 74 6f 53 74 72 69 6e 67 28 29 2e 22 5c 6e 22 3b 0a 24 ");.print.$e->toString()."\n";.$
4dc40 65 20 3d 20 6e 65 77 20 44 42 5f 45 72 72 6f 72 28 44 42 5f 4f 4b 29 3b 20 70 72 69 6e 74 20 24 e.=.new.DB_Error(DB_OK);.print.$
4dc60 65 2d 3e 74 6f 53 74 72 69 6e 67 28 29 2e 22 5c 6e 22 3b 0a 24 65 20 3d 20 6e 65 77 20 44 42 5f e->toString()."\n";.$e.=.new.DB_
4dc80 45 72 72 6f 72 28 44 42 5f 45 52 52 4f 52 29 3b 20 70 72 69 6e 74 20 24 65 2d 3e 74 6f 53 74 72 Error(DB_ERROR);.print.$e->toStr
4dca0 69 6e 67 28 29 2e 22 5c 6e 22 3b 0a 24 65 20 3d 20 6e 65 77 20 44 42 5f 45 72 72 6f 72 28 44 42 ing()."\n";.$e.=.new.DB_Error(DB
4dcc0 5f 45 52 52 4f 52 5f 53 59 4e 54 41 58 29 3b 20 70 72 69 6e 74 20 24 65 2d 3e 74 6f 53 74 72 69 _ERROR_SYNTAX);.print.$e->toStri
4dce0 6e 67 28 29 2e 22 5c 6e 22 3b 0a 24 65 20 3d 20 6e 65 77 20 44 42 5f 45 72 72 6f 72 28 44 42 5f ng()."\n";.$e.=.new.DB_Error(DB_
4dd00 45 52 52 4f 52 5f 44 49 56 5a 45 52 4f 29 3b 20 70 72 69 6e 74 20 24 65 2d 3e 74 6f 53 74 72 69 ERROR_DIVZERO);.print.$e->toStri
4dd20 6e 67 28 29 2e 22 5c 6e 22 3b 0a 0a 70 72 69 6e 74 20 22 74 65 73 74 69 6e 67 20 64 69 66 66 65 ng()."\n";..print."testing.diffe
4dd40 72 65 6e 74 20 65 72 72 6f 72 20 6d 6f 64 65 73 2e 2e 2e 5c 6e 22 3b 0a 24 65 20 3d 20 6e 65 77 rent.error.modes...\n";.$e.=.new
4dd60 20 44 42 5f 45 72 72 6f 72 28 44 42 5f 45 52 52 4f 52 2c 20 50 45 41 52 5f 45 52 52 4f 52 5f 50 .DB_Error(DB_ERROR,.PEAR_ERROR_P
4dd80 52 49 4e 54 29 3b 20 70 72 69 6e 74 20 24 65 2d 3e 74 6f 53 74 72 69 6e 67 28 29 2e 22 5c 6e 22 RINT);.print.$e->toString()."\n"
4dda0 3b 0a 24 65 20 3d 20 6e 65 77 20 44 42 5f 45 72 72 6f 72 28 44 42 5f 45 52 52 4f 52 5f 53 59 4e ;.$e.=.new.DB_Error(DB_ERROR_SYN
4ddc0 54 41 58 2c 20 50 45 41 52 5f 45 52 52 4f 52 5f 54 52 49 47 47 45 52 29 3b 0a 0a 70 72 69 6e 74 TAX,.PEAR_ERROR_TRIGGER);..print
4dde0 20 22 74 65 73 74 69 6e 67 20 64 69 66 66 65 72 65 6e 74 20 65 72 72 6f 72 20 73 65 72 76 65 72 ."testing.different.error.server
4de00 69 74 69 65 73 2e 2e 2e 5c 6e 22 3b 0a 24 65 20 3d 20 6e 65 77 20 44 42 5f 45 72 72 6f 72 28 44 ities...\n";.$e.=.new.DB_Error(D
4de20 42 5f 45 52 52 4f 52 5f 53 59 4e 54 41 58 2c 20 50 45 41 52 5f 45 52 52 4f 52 5f 54 52 49 47 47 B_ERROR_SYNTAX,.PEAR_ERROR_TRIGG
4de40 45 52 2c 20 45 5f 55 53 45 52 5f 4e 4f 54 49 43 45 29 3b 0a 24 65 20 3d 20 6e 65 77 20 44 42 5f ER,.E_USER_NOTICE);.$e.=.new.DB_
4de60 45 72 72 6f 72 28 44 42 5f 45 52 52 4f 52 5f 53 59 4e 54 41 58 2c 20 50 45 41 52 5f 45 52 52 4f Error(DB_ERROR_SYNTAX,.PEAR_ERRO
4de80 52 5f 54 52 49 47 47 45 52 2c 20 45 5f 55 53 45 52 5f 57 41 52 4e 49 4e 47 29 3b 0a 24 65 20 3d R_TRIGGER,.E_USER_WARNING);.$e.=
4dea0 20 6e 65 77 20 44 42 5f 45 72 72 6f 72 28 44 42 5f 45 52 52 4f 52 5f 53 59 4e 54 41 58 2c 20 50 .new.DB_Error(DB_ERROR_SYNTAX,.P
4dec0 45 41 52 5f 45 52 52 4f 52 5f 54 52 49 47 47 45 52 2c 20 45 5f 55 53 45 52 5f 45 52 52 4f 52 29 EAR_ERROR_TRIGGER,.E_USER_ERROR)
4dee0 3b 0a 0a 3f 3e 0a 2d 2d 47 45 54 2d 2d 0a 2d 2d 50 4f 53 54 2d 2d 0a 2d 2d 45 58 50 45 43 54 2d ;..?>.--GET--.--POST--.--EXPECT-
4df00 2d 0a 74 65 73 74 69 6e 67 20 64 69 66 66 65 72 65 6e 74 20 65 72 72 6f 72 20 63 6f 64 65 73 2e -.testing.different.error.codes.
4df20 2e 2e 0a 5b 64 62 5f 65 72 72 6f 72 3a 20 6d 65 73 73 61 67 65 3d 22 44 42 20 45 72 72 6f 72 3a ...[db_error:.message="DB.Error:
4df40 20 75 6e 6b 6e 6f 77 6e 20 65 72 72 6f 72 22 20 63 6f 64 65 3d 2d 31 20 6d 6f 64 65 3d 72 65 74 .unknown.error".code=-1.mode=ret
4df60 75 72 6e 20 6c 65 76 65 6c 3d 6e 6f 74 69 63 65 20 70 72 65 66 69 78 3d 22 22 20 69 6e 66 6f 3d urn.level=notice.prefix="".info=
4df80 22 22 5d 0a 5b 64 62 5f 65 72 72 6f 72 3a 20 6d 65 73 73 61 67 65 3d 22 44 42 20 45 72 72 6f 72 ""].[db_error:.message="DB.Error
4dfa0 3a 20 74 65 73 74 20 65 72 72 6f 72 22 20 63 6f 64 65 3d 2d 31 20 6d 6f 64 65 3d 72 65 74 75 72 :.test.error".code=-1.mode=retur
4dfc0 6e 20 6c 65 76 65 6c 3d 6e 6f 74 69 63 65 20 70 72 65 66 69 78 3d 22 22 20 69 6e 66 6f 3d 22 22 n.level=notice.prefix="".info=""
4dfe0 5d 0a 5b 64 62 5f 65 72 72 6f 72 3a 20 6d 65 73 73 61 67 65 3d 22 44 42 20 45 72 72 6f 72 3a 20 ].[db_error:.message="DB.Error:.
4e000 6e 6f 20 65 72 72 6f 72 22 20 63 6f 64 65 3d 31 20 6d 6f 64 65 3d 72 65 74 75 72 6e 20 6c 65 76 no.error".code=1.mode=return.lev
4e020 65 6c 3d 6e 6f 74 69 63 65 20 70 72 65 66 69 78 3d 22 22 20 69 6e 66 6f 3d 22 22 5d 0a 5b 64 62 el=notice.prefix="".info=""].[db
4e040 5f 65 72 72 6f 72 3a 20 6d 65 73 73 61 67 65 3d 22 44 42 20 45 72 72 6f 72 3a 20 75 6e 6b 6e 6f _error:.message="DB.Error:.unkno
4e060 77 6e 20 65 72 72 6f 72 22 20 63 6f 64 65 3d 2d 31 20 6d 6f 64 65 3d 72 65 74 75 72 6e 20 6c 65 wn.error".code=-1.mode=return.le
4e080 76 65 6c 3d 6e 6f 74 69 63 65 20 70 72 65 66 69 78 3d 22 22 20 69 6e 66 6f 3d 22 22 5d 0a 5b 64 vel=notice.prefix="".info=""].[d
4e0a0 62 5f 65 72 72 6f 72 3a 20 6d 65 73 73 61 67 65 3d 22 44 42 20 45 72 72 6f 72 3a 20 73 79 6e 74 b_error:.message="DB.Error:.synt
4e0c0 61 78 20 65 72 72 6f 72 22 20 63 6f 64 65 3d 2d 32 20 6d 6f 64 65 3d 72 65 74 75 72 6e 20 6c 65 ax.error".code=-2.mode=return.le
4e0e0 76 65 6c 3d 6e 6f 74 69 63 65 20 70 72 65 66 69 78 3d 22 22 20 69 6e 66 6f 3d 22 22 5d 0a 5b 64 vel=notice.prefix="".info=""].[d
4e100 62 5f 65 72 72 6f 72 3a 20 6d 65 73 73 61 67 65 3d 22 44 42 20 45 72 72 6f 72 3a 20 64 69 76 69 b_error:.message="DB.Error:.divi
4e120 73 69 6f 6e 20 62 79 20 7a 65 72 6f 22 20 63 6f 64 65 3d 2d 31 33 20 6d 6f 64 65 3d 72 65 74 75 sion.by.zero".code=-13.mode=retu
4e140 72 6e 20 6c 65 76 65 6c 3d 6e 6f 74 69 63 65 20 70 72 65 66 69 78 3d 22 22 20 69 6e 66 6f 3d 22 rn.level=notice.prefix="".info="
4e160 22 5d 0a 74 65 73 74 69 6e 67 20 64 69 66 66 65 72 65 6e 74 20 65 72 72 6f 72 20 6d 6f 64 65 73 "].testing.different.error.modes
4e180 2e 2e 2e 0a 44 42 20 45 72 72 6f 72 3a 20 75 6e 6b 6e 6f 77 6e 20 65 72 72 6f 72 5b 64 62 5f 65 ....DB.Error:.unknown.error[db_e
4e1a0 72 72 6f 72 3a 20 6d 65 73 73 61 67 65 3d 22 44 42 20 45 72 72 6f 72 3a 20 75 6e 6b 6e 6f 77 6e rror:.message="DB.Error:.unknown
4e1c0 20 65 72 72 6f 72 22 20 63 6f 64 65 3d 2d 31 20 6d 6f 64 65 3d 70 72 69 6e 74 20 6c 65 76 65 6c .error".code=-1.mode=print.level
4e1e0 3d 6e 6f 74 69 63 65 20 70 72 65 66 69 78 3d 22 22 20 69 6e 66 6f 3d 22 22 5d 0a 0a 55 73 65 72 =notice.prefix="".info=""]..User
4e200 20 4e 6f 74 69 63 65 3a 20 44 42 20 45 72 72 6f 72 3a 20 73 79 6e 74 61 78 20 65 72 72 6f 72 20 .Notice:.DB.Error:.syntax.error.
4e220 69 6e 20 50 45 41 52 2e 70 68 70 20 6f 6e 20 6c 69 6e 65 20 58 58 58 0a 74 65 73 74 69 6e 67 20 in.PEAR.php.on.line.XXX.testing.
4e240 64 69 66 66 65 72 65 6e 74 20 65 72 72 6f 72 20 73 65 72 76 65 72 69 74 69 65 73 2e 2e 2e 0a 0a different.error.serverities.....
4e260 55 73 65 72 20 4e 6f 74 69 63 65 3a 20 44 42 20 45 72 72 6f 72 3a 20 73 79 6e 74 61 78 20 65 72 User.Notice:.DB.Error:.syntax.er
4e280 72 6f 72 20 69 6e 20 50 45 41 52 2e 70 68 70 20 6f 6e 20 6c 69 6e 65 20 58 58 58 0a 0a 55 73 65 ror.in.PEAR.php.on.line.XXX..Use
4e2a0 72 20 57 61 72 6e 69 6e 67 3a 20 44 42 20 45 72 72 6f 72 3a 20 73 79 6e 74 61 78 20 65 72 72 6f r.Warning:.DB.Error:.syntax.erro
4e2c0 72 20 69 6e 20 50 45 41 52 2e 70 68 70 20 6f 6e 20 6c 69 6e 65 20 58 58 58 0a 0a 55 73 65 72 20 r.in.PEAR.php.on.line.XXX..User.
4e2e0 45 72 72 6f 72 3a 20 44 42 20 45 72 72 6f 72 3a 20 73 79 6e 74 61 78 20 65 72 72 6f 72 20 69 6e Error:.DB.Error:.syntax.error.in
4e300 20 50 45 41 52 2e 70 68 70 20 6f 6e 20 6c 69 6e 65 20 58 58 58 0a 00 00 00 00 00 00 00 00 00 00 .PEAR.php.on.line.XXX...........
4e320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4e340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4e360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4e380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4e3a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4e3c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4e3e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4e400 44 42 2d 31 2e 35 2e 30 52 43 31 2f 74 65 73 74 73 2f 64 62 5f 70 61 72 73 65 64 73 6e 2e 70 68 DB-1.5.0RC1/tests/db_parsedsn.ph
4e420 70 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 pt..............................
4e440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4e460 00 00 00 00 31 30 30 36 34 34 20 00 20 20 20 37 36 34 20 00 20 20 20 31 34 34 20 00 20 20 20 20 ....100644.....764.....144......
4e480 20 20 31 35 33 31 30 20 20 37 36 37 35 34 34 36 36 32 30 20 20 31 32 30 33 35 20 00 00 00 00 00 ..15310..7675446620..12035......
4e4a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4e4c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4e4e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4e500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4e520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4e540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4e560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4e580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4e5a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4e5c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4e5e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4e600 2d 2d 54 45 53 54 2d 2d 0a 44 42 3a 3a 70 61 72 73 65 44 53 4e 20 74 65 73 74 0a 2d 2d 53 4b 49 --TEST--.DB::parseDSN.test.--SKI
4e620 50 49 46 2d 2d 0a 3c 3f 70 68 70 20 69 66 20 28 21 40 69 6e 63 6c 75 64 65 28 64 69 72 6e 61 6d PIF--.<?php.if.(!@include(dirnam
4e640 65 28 5f 5f 46 49 4c 45 5f 5f 29 2e 22 2f 2e 2e 2f 44 42 2e 70 68 70 22 29 29 20 70 72 69 6e 74 e(__FILE__)."/../DB.php")).print
4e660 20 22 73 6b 69 70 22 3b 20 3f 3e 0a 2d 2d 46 49 4c 45 2d 2d 0a 3c 3f 70 68 70 20 2f 2f 20 2d 2a ."skip";.?>.--FILE--.<?php.//.-*
4e680 2d 20 43 2b 2b 20 2d 2a 2d 0a 69 6e 63 6c 75 64 65 5f 6f 6e 63 65 20 27 2e 2f 69 6e 63 6c 75 64 -.C++.-*-.include_once.'./includ
4e6a0 65 2e 69 6e 63 27 3b 0a 2f 2f 20 54 65 73 74 20 66 6f 72 3a 20 44 42 3a 3a 70 61 72 73 65 44 53 e.inc';.//.Test.for:.DB::parseDS
4e6c0 4e 28 29 0a 0a 69 6e 63 6c 75 64 65 5f 6f 6e 63 65 20 64 69 72 6e 61 6d 65 28 5f 5f 46 49 4c 45 N()..include_once.dirname(__FILE
4e6e0 5f 5f 29 2e 22 2f 2e 2e 2f 44 42 2e 70 68 70 22 3b 0a 0a 66 75 6e 63 74 69 6f 6e 20 74 65 73 74 __)."/../DB.php";..function.test
4e700 28 24 64 73 6e 29 20 7b 0a 20 20 20 20 65 63 68 6f 20 22 44 53 4e 3a 20 24 64 73 6e 5c 6e 22 3b ($dsn).{.....echo."DSN:.$dsn\n";
4e720 0a 20 20 20 20 70 72 69 6e 74 5f 72 28 44 42 3a 3a 70 61 72 73 65 44 53 4e 28 24 64 73 6e 29 29 .....print_r(DB::parseDSN($dsn))
4e740 3b 0a 7d 0a 0a 70 72 69 6e 74 20 22 74 65 73 74 69 6e 67 20 44 42 3a 3a 70 61 72 73 65 44 53 4e ;.}..print."testing.DB::parseDSN
4e760 2e 2e 2e 5c 6e 5c 6e 22 3b 0a 0a 74 65 73 74 28 22 6d 79 73 71 6c 22 29 3b 0a 74 65 73 74 28 22 ...\n\n";..test("mysql");.test("
4e780 6f 64 62 63 28 6d 73 73 71 6c 29 22 29 3b 0a 74 65 73 74 28 22 6d 79 73 71 6c 3a 2f 2f 6c 6f 63 odbc(mssql)");.test("mysql://loc
4e7a0 61 6c 68 6f 73 74 22 29 3b 0a 74 65 73 74 28 22 6d 79 73 71 6c 3a 2f 2f 72 65 6d 6f 74 65 2e 68 alhost");.test("mysql://remote.h
4e7c0 6f 73 74 2e 63 6f 6d 2f 64 62 22 29 3b 0a 74 65 73 74 28 22 6f 63 69 38 3a 2f 2f 73 79 73 74 65 ost.com/db");.test("oci8://syste
4e7e0 6d 3a 6d 61 6e 61 67 65 72 40 22 29 3b 0a 74 65 73 74 28 22 6f 63 69 38 3a 2f 2f 75 73 65 72 3a m:manager@");.test("oci8://user:
4e800 70 61 73 73 40 74 6e 73 2d 6e 61 6d 65 22 29 3b 0a 74 65 73 74 28 22 6f 64 62 63 28 73 6f 6c 69 pass@tns-name");.test("odbc(soli
4e820 64 29 3a 2f 2f 66 6f 6f 3a 62 61 72 40 74 63 70 2b 6c 6f 63 61 6c 68 6f 73 74 2b 31 33 31 33 22 d)://foo:bar@tcp+localhost+1313"
4e840 29 3b 20 20 2f 2f 20 64 65 70 72 65 63 61 74 65 64 0a 74 65 73 74 28 22 70 67 73 71 6c 3a 2f 2f );..//.deprecated.test("pgsql://
4e860 75 73 65 72 40 75 6e 69 78 2b 6c 6f 63 61 6c 68 6f 73 74 2f 70 65 61 72 22 29 3b 20 20 20 20 20 user@unix+localhost/pear");.....
4e880 20 20 20 20 20 2f 2f 20 64 65 70 72 65 63 61 74 65 64 0a 74 65 73 74 28 22 69 62 61 73 65 3a 2f .....//.deprecated.test("ibase:/
4e8a0 2f 75 73 65 72 25 34 30 64 6f 6d 61 69 6e 3a 70 61 73 73 77 6f 72 64 40 68 6f 73 74 22 29 3b 0a /user%40domain:password@host");.
4e8c0 74 65 73 74 28 22 69 62 61 73 65 3a 2f 2f 75 73 65 72 40 64 6f 6d 61 69 6e 3a 70 61 73 73 40 77 test("ibase://user@domain:pass@w
4e8e0 6f 72 64 40 2f 64 61 74 61 62 61 73 65 22 29 3b 20 20 20 2f 2f 20 61 6c 73 6f 20 73 75 70 70 6f ord@/database");...//.also.suppo
4e900 72 74 65 64 0a 74 65 73 74 28 22 69 66 78 3a 2f 2f 75 73 65 72 40 64 6f 6d 61 69 6e 3a 70 61 73 rted.test("ifx://user@domain:pas
4e920 73 40 77 6f 72 64 40 68 6f 73 74 2e 63 6f 6d 2f 2f 75 73 72 2f 64 62 2f 67 65 6e 65 72 61 6c 2e s@word@host.com//usr/db/general.
4e940 64 62 22 29 3b 0a 74 65 73 74 28 27 69 66 78 3a 2f 2f 72 65 6d 6f 74 65 2e 68 6f 73 74 2e 63 6f db");.test('ifx://remote.host.co
4e960 6d 2f 63 3a 5c 77 69 6e 64 6f 77 73 5c 6d 79 2e 64 62 27 29 3b 0a 74 65 73 74 28 27 6f 63 69 38 m/c:\windows\my.db');.test('oci8
4e980 3a 2f 2f 53 48 4f 4f 54 4f 55 54 3a 2a 2a 2a 2a 2a 2a 40 28 44 45 53 43 52 49 50 54 49 4f 4e 3d ://SHOOTOUT:******@(DESCRIPTION=
4e9a0 28 41 44 44 52 45 53 53 5f 4c 49 53 54 3d 28 41 44 44 52 45 53 53 3d 28 50 52 4f 54 4f 43 4f 4c (ADDRESS_LIST=(ADDRESS=(PROTOCOL
4e9c0 3d 54 43 50 29 28 48 4f 53 54 3d 31 39 32 2e 31 36 38 2e 31 30 31 2e 31 36 31 29 28 50 4f 52 54 =TCP)(HOST=192.168.101.161)(PORT
4e9e0 3d 31 35 32 31 29 29 29 28 43 4f 4e 4e 45 43 54 5f 44 41 54 41 3d 28 53 45 52 56 49 43 45 5f 4e =1521)))(CONNECT_DATA=(SERVICE_N
4ea00 41 4d 45 3d 54 49 53 29 29 29 27 29 3b 0a 0a 2f 2f 20 6e 65 77 20 66 6f 72 6d 61 74 73 0a 74 65 AME=TIS)))');..//.new.formats.te
4ea20 73 74 28 22 6f 64 62 63 28 73 6f 6c 69 64 29 3a 2f 2f 66 6f 6f 3a 62 61 72 40 6c 6f 63 61 6c 68 st("odbc(solid)://foo:bar@localh
4ea40 6f 73 74 3a 31 33 31 33 22 29 3b 0a 74 65 73 74 28 22 70 67 73 71 6c 3a 2f 2f 75 73 65 72 40 75 ost:1313");.test("pgsql://user@u
4ea60 6e 69 78 28 29 2f 70 65 61 72 22 29 3b 0a 74 65 73 74 28 22 6d 79 73 71 6c 3a 2f 2f 75 73 65 72 nix()/pear");.test("mysql://user
4ea80 40 75 6e 69 78 28 2f 70 61 74 68 2f 74 6f 2f 73 6f 63 6b 65 74 29 2f 70 65 61 72 22 29 3b 0a 74 @unix(/path/to/socket)/pear");.t
4eaa0 65 73 74 28 22 70 67 73 71 6c 3a 2f 2f 75 73 65 72 40 74 63 70 28 29 2f 70 65 61 72 22 29 3b 0a est("pgsql://user@tcp()/pear");.
4eac0 74 65 73 74 28 22 70 67 73 71 6c 3a 2f 2f 75 73 65 72 40 74 63 70 28 73 6f 6d 65 68 6f 73 74 29 test("pgsql://user@tcp(somehost)
4eae0 2f 70 65 61 72 22 29 3b 0a 74 65 73 74 28 22 70 67 73 71 6c 3a 2f 2f 75 73 65 72 3a 70 61 73 73 /pear");.test("pgsql://user:pass
4eb00 40 77 6f 72 64 40 74 63 70 28 73 6f 6d 65 68 6f 73 74 3a 37 37 37 37 29 2f 70 65 61 72 22 29 3b @word@tcp(somehost:7777)/pear");
4eb20 0a 0a 2f 2f 20 73 70 65 63 69 61 6c 20 62 61 63 6b 65 6e 64 20 6f 70 74 69 6f 6e 73 0a 74 65 73 ..//.special.backend.options.tes
4eb40 74 28 27 69 62 61 73 65 3a 2f 2f 75 73 65 72 3a 70 61 73 73 40 6c 6f 63 61 6c 68 6f 73 74 2f 2f t('ibase://user:pass@localhost//
4eb60 76 61 72 2f 6c 69 62 2f 64 62 61 73 65 2e 64 62 66 3f 72 6f 6c 65 3d 66 6f 6f 27 29 3b 0a 74 65 var/lib/dbase.dbf?role=foo');.te
4eb80 73 74 28 27 64 62 61 73 65 3a 2f 2f 40 2f 3f 72 6f 6c 65 3d 66 6f 6f 26 64 69 61 6c 65 63 74 3d st('dbase://@/?role=foo&dialect=
4eba0 62 61 72 27 29 3b 0a 3f 3e 0a 2d 2d 47 45 54 2d 2d 0a 2d 2d 50 4f 53 54 2d 2d 0a 2d 2d 45 58 50 bar');.?>.--GET--.--POST--.--EXP
4ebc0 45 43 54 2d 2d 0a 74 65 73 74 69 6e 67 20 44 42 3a 3a 70 61 72 73 65 44 53 4e 2e 2e 2e 0a 0a 44 ECT--.testing.DB::parseDSN.....D
4ebe0 53 4e 3a 20 6d 79 73 71 6c 0a 41 72 72 61 79 0a 28 0a 20 20 20 20 5b 70 68 70 74 79 70 65 5d 20 SN:.mysql.Array.(.....[phptype].
4ec00 3d 3e 20 6d 79 73 71 6c 0a 20 20 20 20 5b 64 62 73 79 6e 74 61 78 5d 20 3d 3e 20 6d 79 73 71 6c =>.mysql.....[dbsyntax].=>.mysql
4ec20 0a 20 20 20 20 5b 75 73 65 72 6e 61 6d 65 5d 20 3d 3e 20 0a 20 20 20 20 5b 70 61 73 73 77 6f 72 .....[username].=>......[passwor
4ec40 64 5d 20 3d 3e 20 0a 20 20 20 20 5b 70 72 6f 74 6f 63 6f 6c 5d 20 3d 3e 20 0a 20 20 20 20 5b 68 d].=>......[protocol].=>......[h
4ec60 6f 73 74 73 70 65 63 5d 20 3d 3e 20 0a 20 20 20 20 5b 70 6f 72 74 5d 20 3d 3e 20 0a 20 20 20 20 ostspec].=>......[port].=>......
4ec80 5b 73 6f 63 6b 65 74 5d 20 3d 3e 20 0a 20 20 20 20 5b 64 61 74 61 62 61 73 65 5d 20 3d 3e 20 0a [socket].=>......[database].=>..
4eca0 29 0a 44 53 4e 3a 20 6f 64 62 63 28 6d 73 73 71 6c 29 0a 41 72 72 61 79 0a 28 0a 20 20 20 20 5b ).DSN:.odbc(mssql).Array.(.....[
4ecc0 70 68 70 74 79 70 65 5d 20 3d 3e 20 6f 64 62 63 0a 20 20 20 20 5b 64 62 73 79 6e 74 61 78 5d 20 phptype].=>.odbc.....[dbsyntax].
4ece0 3d 3e 20 6d 73 73 71 6c 0a 20 20 20 20 5b 75 73 65 72 6e 61 6d 65 5d 20 3d 3e 20 0a 20 20 20 20 =>.mssql.....[username].=>......
4ed00 5b 70 61 73 73 77 6f 72 64 5d 20 3d 3e 20 0a 20 20 20 20 5b 70 72 6f 74 6f 63 6f 6c 5d 20 3d 3e [password].=>......[protocol].=>
4ed20 20 0a 20 20 20 20 5b 68 6f 73 74 73 70 65 63 5d 20 3d 3e 20 0a 20 20 20 20 5b 70 6f 72 74 5d 20 ......[hostspec].=>......[port].
4ed40 3d 3e 20 0a 20 20 20 20 5b 73 6f 63 6b 65 74 5d 20 3d 3e 20 0a 20 20 20 20 5b 64 61 74 61 62 61 =>......[socket].=>......[databa
4ed60 73 65 5d 20 3d 3e 20 0a 29 0a 44 53 4e 3a 20 6d 79 73 71 6c 3a 2f 2f 6c 6f 63 61 6c 68 6f 73 74 se].=>..).DSN:.mysql://localhost
4ed80 0a 41 72 72 61 79 0a 28 0a 20 20 20 20 5b 70 68 70 74 79 70 65 5d 20 3d 3e 20 6d 79 73 71 6c 0a .Array.(.....[phptype].=>.mysql.
4eda0 20 20 20 20 5b 64 62 73 79 6e 74 61 78 5d 20 3d 3e 20 6d 79 73 71 6c 0a 20 20 20 20 5b 75 73 65 ....[dbsyntax].=>.mysql.....[use
4edc0 72 6e 61 6d 65 5d 20 3d 3e 20 0a 20 20 20 20 5b 70 61 73 73 77 6f 72 64 5d 20 3d 3e 20 0a 20 20 rname].=>......[password].=>....
4ede0 20 20 5b 70 72 6f 74 6f 63 6f 6c 5d 20 3d 3e 20 74 63 70 0a 20 20 20 20 5b 68 6f 73 74 73 70 65 ..[protocol].=>.tcp.....[hostspe
4ee00 63 5d 20 3d 3e 20 6c 6f 63 61 6c 68 6f 73 74 0a 20 20 20 20 5b 70 6f 72 74 5d 20 3d 3e 20 0a 20 c].=>.localhost.....[port].=>...
4ee20 20 20 20 5b 73 6f 63 6b 65 74 5d 20 3d 3e 20 0a 20 20 20 20 5b 64 61 74 61 62 61 73 65 5d 20 3d ...[socket].=>......[database].=
4ee40 3e 20 0a 29 0a 44 53 4e 3a 20 6d 79 73 71 6c 3a 2f 2f 72 65 6d 6f 74 65 2e 68 6f 73 74 2e 63 6f >..).DSN:.mysql://remote.host.co
4ee60 6d 2f 64 62 0a 41 72 72 61 79 0a 28 0a 20 20 20 20 5b 70 68 70 74 79 70 65 5d 20 3d 3e 20 6d 79 m/db.Array.(.....[phptype].=>.my
4ee80 73 71 6c 0a 20 20 20 20 5b 64 62 73 79 6e 74 61 78 5d 20 3d 3e 20 6d 79 73 71 6c 0a 20 20 20 20 sql.....[dbsyntax].=>.mysql.....
4eea0 5b 75 73 65 72 6e 61 6d 65 5d 20 3d 3e 20 0a 20 20 20 20 5b 70 61 73 73 77 6f 72 64 5d 20 3d 3e [username].=>......[password].=>
4eec0 20 0a 20 20 20 20 5b 70 72 6f 74 6f 63 6f 6c 5d 20 3d 3e 20 74 63 70 0a 20 20 20 20 5b 68 6f 73 ......[protocol].=>.tcp.....[hos
4eee0 74 73 70 65 63 5d 20 3d 3e 20 72 65 6d 6f 74 65 2e 68 6f 73 74 2e 63 6f 6d 0a 20 20 20 20 5b 70 tspec].=>.remote.host.com.....[p
4ef00 6f 72 74 5d 20 3d 3e 20 0a 20 20 20 20 5b 73 6f 63 6b 65 74 5d 20 3d 3e 20 0a 20 20 20 20 5b 64 ort].=>......[socket].=>......[d
4ef20 61 74 61 62 61 73 65 5d 20 3d 3e 20 64 62 0a 29 0a 44 53 4e 3a 20 6f 63 69 38 3a 2f 2f 73 79 73 atabase].=>.db.).DSN:.oci8://sys
4ef40 74 65 6d 3a 6d 61 6e 61 67 65 72 40 0a 41 72 72 61 79 0a 28 0a 20 20 20 20 5b 70 68 70 74 79 70 tem:manager@.Array.(.....[phptyp
4ef60 65 5d 20 3d 3e 20 6f 63 69 38 0a 20 20 20 20 5b 64 62 73 79 6e 74 61 78 5d 20 3d 3e 20 6f 63 69 e].=>.oci8.....[dbsyntax].=>.oci
4ef80 38 0a 20 20 20 20 5b 75 73 65 72 6e 61 6d 65 5d 20 3d 3e 20 73 79 73 74 65 6d 0a 20 20 20 20 5b 8.....[username].=>.system.....[
4efa0 70 61 73 73 77 6f 72 64 5d 20 3d 3e 20 6d 61 6e 61 67 65 72 0a 20 20 20 20 5b 70 72 6f 74 6f 63 password].=>.manager.....[protoc
4efc0 6f 6c 5d 20 3d 3e 20 74 63 70 0a 20 20 20 20 5b 68 6f 73 74 73 70 65 63 5d 20 3d 3e 20 0a 20 20 ol].=>.tcp.....[hostspec].=>....
4efe0 20 20 5b 70 6f 72 74 5d 20 3d 3e 20 0a 20 20 20 20 5b 73 6f 63 6b 65 74 5d 20 3d 3e 20 0a 20 20 ..[port].=>......[socket].=>....
4f000 20 20 5b 64 61 74 61 62 61 73 65 5d 20 3d 3e 20 0a 29 0a 44 53 4e 3a 20 6f 63 69 38 3a 2f 2f 75 ..[database].=>..).DSN:.oci8://u
4f020 73 65 72 3a 70 61 73 73 40 74 6e 73 2d 6e 61 6d 65 0a 41 72 72 61 79 0a 28 0a 20 20 20 20 5b 70 ser:pass@tns-name.Array.(.....[p
4f040 68 70 74 79 70 65 5d 20 3d 3e 20 6f 63 69 38 0a 20 20 20 20 5b 64 62 73 79 6e 74 61 78 5d 20 3d hptype].=>.oci8.....[dbsyntax].=
4f060 3e 20 6f 63 69 38 0a 20 20 20 20 5b 75 73 65 72 6e 61 6d 65 5d 20 3d 3e 20 75 73 65 72 0a 20 20 >.oci8.....[username].=>.user...
4f080 20 20 5b 70 61 73 73 77 6f 72 64 5d 20 3d 3e 20 70 61 73 73 0a 20 20 20 20 5b 70 72 6f 74 6f 63 ..[password].=>.pass.....[protoc
4f0a0 6f 6c 5d 20 3d 3e 20 74 63 70 0a 20 20 20 20 5b 68 6f 73 74 73 70 65 63 5d 20 3d 3e 20 74 6e 73 ol].=>.tcp.....[hostspec].=>.tns
4f0c0 2d 6e 61 6d 65 0a 20 20 20 20 5b 70 6f 72 74 5d 20 3d 3e 20 0a 20 20 20 20 5b 73 6f 63 6b 65 74 -name.....[port].=>......[socket
4f0e0 5d 20 3d 3e 20 0a 20 20 20 20 5b 64 61 74 61 62 61 73 65 5d 20 3d 3e 20 0a 29 0a 44 53 4e 3a 20 ].=>......[database].=>..).DSN:.
4f100 6f 64 62 63 28 73 6f 6c 69 64 29 3a 2f 2f 66 6f 6f 3a 62 61 72 40 74 63 70 2b 6c 6f 63 61 6c 68 odbc(solid)://foo:bar@tcp+localh
4f120 6f 73 74 2b 31 33 31 33 0a 41 72 72 61 79 0a 28 0a 20 20 20 20 5b 70 68 70 74 79 70 65 5d 20 3d ost+1313.Array.(.....[phptype].=
4f140 3e 20 6f 64 62 63 0a 20 20 20 20 5b 64 62 73 79 6e 74 61 78 5d 20 3d 3e 20 73 6f 6c 69 64 0a 20 >.odbc.....[dbsyntax].=>.solid..
4f160 20 20 20 5b 75 73 65 72 6e 61 6d 65 5d 20 3d 3e 20 66 6f 6f 0a 20 20 20 20 5b 70 61 73 73 77 6f ...[username].=>.foo.....[passwo
4f180 72 64 5d 20 3d 3e 20 62 61 72 0a 20 20 20 20 5b 70 72 6f 74 6f 63 6f 6c 5d 20 3d 3e 20 74 63 70 rd].=>.bar.....[protocol].=>.tcp
4f1a0 0a 20 20 20 20 5b 68 6f 73 74 73 70 65 63 5d 20 3d 3e 20 6c 6f 63 61 6c 68 6f 73 74 2b 31 33 31 .....[hostspec].=>.localhost+131
4f1c0 33 0a 20 20 20 20 5b 70 6f 72 74 5d 20 3d 3e 20 0a 20 20 20 20 5b 73 6f 63 6b 65 74 5d 20 3d 3e 3.....[port].=>......[socket].=>
4f1e0 20 0a 20 20 20 20 5b 64 61 74 61 62 61 73 65 5d 20 3d 3e 20 0a 29 0a 44 53 4e 3a 20 70 67 73 71 ......[database].=>..).DSN:.pgsq
4f200 6c 3a 2f 2f 75 73 65 72 40 75 6e 69 78 2b 6c 6f 63 61 6c 68 6f 73 74 2f 70 65 61 72 0a 41 72 72 l://user@unix+localhost/pear.Arr
4f220 61 79 0a 28 0a 20 20 20 20 5b 70 68 70 74 79 70 65 5d 20 3d 3e 20 70 67 73 71 6c 0a 20 20 20 20 ay.(.....[phptype].=>.pgsql.....
4f240 5b 64 62 73 79 6e 74 61 78 5d 20 3d 3e 20 70 67 73 71 6c 0a 20 20 20 20 5b 75 73 65 72 6e 61 6d [dbsyntax].=>.pgsql.....[usernam
4f260 65 5d 20 3d 3e 20 75 73 65 72 0a 20 20 20 20 5b 70 61 73 73 77 6f 72 64 5d 20 3d 3e 20 0a 20 20 e].=>.user.....[password].=>....
4f280 20 20 5b 70 72 6f 74 6f 63 6f 6c 5d 20 3d 3e 20 75 6e 69 78 0a 20 20 20 20 5b 68 6f 73 74 73 70 ..[protocol].=>.unix.....[hostsp
4f2a0 65 63 5d 20 3d 3e 20 0a 20 20 20 20 5b 70 6f 72 74 5d 20 3d 3e 20 0a 20 20 20 20 5b 73 6f 63 6b ec].=>......[port].=>......[sock
4f2c0 65 74 5d 20 3d 3e 20 6c 6f 63 61 6c 68 6f 73 74 0a 20 20 20 20 5b 64 61 74 61 62 61 73 65 5d 20 et].=>.localhost.....[database].
4f2e0 3d 3e 20 70 65 61 72 0a 29 0a 44 53 4e 3a 20 69 62 61 73 65 3a 2f 2f 75 73 65 72 25 34 30 64 6f =>.pear.).DSN:.ibase://user%40do
4f300 6d 61 69 6e 3a 70 61 73 73 77 6f 72 64 40 68 6f 73 74 0a 41 72 72 61 79 0a 28 0a 20 20 20 20 5b main:password@host.Array.(.....[
4f320 70 68 70 74 79 70 65 5d 20 3d 3e 20 69 62 61 73 65 0a 20 20 20 20 5b 64 62 73 79 6e 74 61 78 5d phptype].=>.ibase.....[dbsyntax]
4f340 20 3d 3e 20 69 62 61 73 65 0a 20 20 20 20 5b 75 73 65 72 6e 61 6d 65 5d 20 3d 3e 20 75 73 65 72 .=>.ibase.....[username].=>.user
4f360 40 64 6f 6d 61 69 6e 0a 20 20 20 20 5b 70 61 73 73 77 6f 72 64 5d 20 3d 3e 20 70 61 73 73 77 6f @domain.....[password].=>.passwo
4f380 72 64 0a 20 20 20 20 5b 70 72 6f 74 6f 63 6f 6c 5d 20 3d 3e 20 74 63 70 0a 20 20 20 20 5b 68 6f rd.....[protocol].=>.tcp.....[ho
4f3a0 73 74 73 70 65 63 5d 20 3d 3e 20 68 6f 73 74 0a 20 20 20 20 5b 70 6f 72 74 5d 20 3d 3e 20 0a 20 stspec].=>.host.....[port].=>...
4f3c0 20 20 20 5b 73 6f 63 6b 65 74 5d 20 3d 3e 20 0a 20 20 20 20 5b 64 61 74 61 62 61 73 65 5d 20 3d ...[socket].=>......[database].=
4f3e0 3e 20 0a 29 0a 44 53 4e 3a 20 69 62 61 73 65 3a 2f 2f 75 73 65 72 40 64 6f 6d 61 69 6e 3a 70 61 >..).DSN:.ibase://user@domain:pa
4f400 73 73 40 77 6f 72 64 40 2f 64 61 74 61 62 61 73 65 0a 41 72 72 61 79 0a 28 0a 20 20 20 20 5b 70 ss@word@/database.Array.(.....[p
4f420 68 70 74 79 70 65 5d 20 3d 3e 20 69 62 61 73 65 0a 20 20 20 20 5b 64 62 73 79 6e 74 61 78 5d 20 hptype].=>.ibase.....[dbsyntax].
4f440 3d 3e 20 69 62 61 73 65 0a 20 20 20 20 5b 75 73 65 72 6e 61 6d 65 5d 20 3d 3e 20 75 73 65 72 40 =>.ibase.....[username].=>.user@
4f460 64 6f 6d 61 69 6e 0a 20 20 20 20 5b 70 61 73 73 77 6f 72 64 5d 20 3d 3e 20 70 61 73 73 40 77 6f domain.....[password].=>.pass@wo
4f480 72 64 0a 20 20 20 20 5b 70 72 6f 74 6f 63 6f 6c 5d 20 3d 3e 20 74 63 70 0a 20 20 20 20 5b 68 6f rd.....[protocol].=>.tcp.....[ho
4f4a0 73 74 73 70 65 63 5d 20 3d 3e 20 0a 20 20 20 20 5b 70 6f 72 74 5d 20 3d 3e 20 0a 20 20 20 20 5b stspec].=>......[port].=>......[
4f4c0 73 6f 63 6b 65 74 5d 20 3d 3e 20 0a 20 20 20 20 5b 64 61 74 61 62 61 73 65 5d 20 3d 3e 20 64 61 socket].=>......[database].=>.da
4f4e0 74 61 62 61 73 65 0a 29 0a 44 53 4e 3a 20 69 66 78 3a 2f 2f 75 73 65 72 40 64 6f 6d 61 69 6e 3a tabase.).DSN:.ifx://user@domain:
4f500 70 61 73 73 40 77 6f 72 64 40 68 6f 73 74 2e 63 6f 6d 2f 2f 75 73 72 2f 64 62 2f 67 65 6e 65 72 pass@word@host.com//usr/db/gener
4f520 61 6c 2e 64 62 0a 41 72 72 61 79 0a 28 0a 20 20 20 20 5b 70 68 70 74 79 70 65 5d 20 3d 3e 20 69 al.db.Array.(.....[phptype].=>.i
4f540 66 78 0a 20 20 20 20 5b 64 62 73 79 6e 74 61 78 5d 20 3d 3e 20 69 66 78 0a 20 20 20 20 5b 75 73 fx.....[dbsyntax].=>.ifx.....[us
4f560 65 72 6e 61 6d 65 5d 20 3d 3e 20 75 73 65 72 40 64 6f 6d 61 69 6e 0a 20 20 20 20 5b 70 61 73 73 ername].=>.user@domain.....[pass
4f580 77 6f 72 64 5d 20 3d 3e 20 70 61 73 73 40 77 6f 72 64 0a 20 20 20 20 5b 70 72 6f 74 6f 63 6f 6c word].=>.pass@word.....[protocol
4f5a0 5d 20 3d 3e 20 74 63 70 0a 20 20 20 20 5b 68 6f 73 74 73 70 65 63 5d 20 3d 3e 20 68 6f 73 74 2e ].=>.tcp.....[hostspec].=>.host.
4f5c0 63 6f 6d 0a 20 20 20 20 5b 70 6f 72 74 5d 20 3d 3e 20 0a 20 20 20 20 5b 73 6f 63 6b 65 74 5d 20 com.....[port].=>......[socket].
4f5e0 3d 3e 20 0a 20 20 20 20 5b 64 61 74 61 62 61 73 65 5d 20 3d 3e 20 2f 75 73 72 2f 64 62 2f 67 65 =>......[database].=>./usr/db/ge
4f600 6e 65 72 61 6c 2e 64 62 0a 29 0a 44 53 4e 3a 20 69 66 78 3a 2f 2f 72 65 6d 6f 74 65 2e 68 6f 73 neral.db.).DSN:.ifx://remote.hos
4f620 74 2e 63 6f 6d 2f 63 3a 5c 77 69 6e 64 6f 77 73 5c 6d 79 2e 64 62 0a 41 72 72 61 79 0a 28 0a 20 t.com/c:\windows\my.db.Array.(..
4f640 20 20 20 5b 70 68 70 74 79 70 65 5d 20 3d 3e 20 69 66 78 0a 20 20 20 20 5b 64 62 73 79 6e 74 61 ...[phptype].=>.ifx.....[dbsynta
4f660 78 5d 20 3d 3e 20 69 66 78 0a 20 20 20 20 5b 75 73 65 72 6e 61 6d 65 5d 20 3d 3e 20 0a 20 20 20 x].=>.ifx.....[username].=>.....
4f680 20 5b 70 61 73 73 77 6f 72 64 5d 20 3d 3e 20 0a 20 20 20 20 5b 70 72 6f 74 6f 63 6f 6c 5d 20 3d .[password].=>......[protocol].=
4f6a0 3e 20 74 63 70 0a 20 20 20 20 5b 68 6f 73 74 73 70 65 63 5d 20 3d 3e 20 72 65 6d 6f 74 65 2e 68 >.tcp.....[hostspec].=>.remote.h
4f6c0 6f 73 74 2e 63 6f 6d 0a 20 20 20 20 5b 70 6f 72 74 5d 20 3d 3e 20 0a 20 20 20 20 5b 73 6f 63 6b ost.com.....[port].=>......[sock
4f6e0 65 74 5d 20 3d 3e 20 0a 20 20 20 20 5b 64 61 74 61 62 61 73 65 5d 20 3d 3e 20 63 3a 5c 77 69 6e et].=>......[database].=>.c:\win
4f700 64 6f 77 73 5c 6d 79 2e 64 62 0a 29 0a 44 53 4e 3a 20 6f 63 69 38 3a 2f 2f 53 48 4f 4f 54 4f 55 dows\my.db.).DSN:.oci8://SHOOTOU
4f720 54 3a 2a 2a 2a 2a 2a 2a 40 28 44 45 53 43 52 49 50 54 49 4f 4e 3d 28 41 44 44 52 45 53 53 5f 4c T:******@(DESCRIPTION=(ADDRESS_L
4f740 49 53 54 3d 28 41 44 44 52 45 53 53 3d 28 50 52 4f 54 4f 43 4f 4c 3d 54 43 50 29 28 48 4f 53 54 IST=(ADDRESS=(PROTOCOL=TCP)(HOST
4f760 3d 31 39 32 2e 31 36 38 2e 31 30 31 2e 31 36 31 29 28 50 4f 52 54 3d 31 35 32 31 29 29 29 28 43 =192.168.101.161)(PORT=1521)))(C
4f780 4f 4e 4e 45 43 54 5f 44 41 54 41 3d 28 53 45 52 56 49 43 45 5f 4e 41 4d 45 3d 54 49 53 29 29 29 ONNECT_DATA=(SERVICE_NAME=TIS)))
4f7a0 0a 41 72 72 61 79 0a 28 0a 20 20 20 20 5b 70 68 70 74 79 70 65 5d 20 3d 3e 20 6f 63 69 38 0a 20 .Array.(.....[phptype].=>.oci8..
4f7c0 20 20 20 5b 64 62 73 79 6e 74 61 78 5d 20 3d 3e 20 6f 63 69 38 0a 20 20 20 20 5b 75 73 65 72 6e ...[dbsyntax].=>.oci8.....[usern
4f7e0 61 6d 65 5d 20 3d 3e 20 53 48 4f 4f 54 4f 55 54 0a 20 20 20 20 5b 70 61 73 73 77 6f 72 64 5d 20 ame].=>.SHOOTOUT.....[password].
4f800 3d 3e 20 2a 2a 2a 2a 2a 2a 0a 20 20 20 20 5b 70 72 6f 74 6f 63 6f 6c 5d 20 3d 3e 20 74 63 70 0a =>.******.....[protocol].=>.tcp.
4f820 20 20 20 20 5b 68 6f 73 74 73 70 65 63 5d 20 3d 3e 20 28 44 45 53 43 52 49 50 54 49 4f 4e 3d 28 ....[hostspec].=>.(DESCRIPTION=(
4f840 41 44 44 52 45 53 53 5f 4c 49 53 54 3d 28 41 44 44 52 45 53 53 3d 28 50 52 4f 54 4f 43 4f 4c 3d ADDRESS_LIST=(ADDRESS=(PROTOCOL=
4f860 54 43 50 29 28 48 4f 53 54 3d 31 39 32 2e 31 36 38 2e 31 30 31 2e 31 36 31 29 28 50 4f 52 54 3d TCP)(HOST=192.168.101.161)(PORT=
4f880 31 35 32 31 29 29 29 28 43 4f 4e 4e 45 43 54 5f 44 41 54 41 3d 28 53 45 52 56 49 43 45 5f 4e 41 1521)))(CONNECT_DATA=(SERVICE_NA
4f8a0 4d 45 3d 54 49 53 29 29 29 0a 20 20 20 20 5b 70 6f 72 74 5d 20 3d 3e 20 0a 20 20 20 20 5b 73 6f ME=TIS))).....[port].=>......[so
4f8c0 63 6b 65 74 5d 20 3d 3e 20 0a 20 20 20 20 5b 64 61 74 61 62 61 73 65 5d 20 3d 3e 20 0a 29 0a 44 cket].=>......[database].=>..).D
4f8e0 53 4e 3a 20 6f 64 62 63 28 73 6f 6c 69 64 29 3a 2f 2f 66 6f 6f 3a 62 61 72 40 6c 6f 63 61 6c 68 SN:.odbc(solid)://foo:bar@localh
4f900 6f 73 74 3a 31 33 31 33 0a 41 72 72 61 79 0a 28 0a 20 20 20 20 5b 70 68 70 74 79 70 65 5d 20 3d ost:1313.Array.(.....[phptype].=
4f920 3e 20 6f 64 62 63 0a 20 20 20 20 5b 64 62 73 79 6e 74 61 78 5d 20 3d 3e 20 73 6f 6c 69 64 0a 20 >.odbc.....[dbsyntax].=>.solid..
4f940 20 20 20 5b 75 73 65 72 6e 61 6d 65 5d 20 3d 3e 20 66 6f 6f 0a 20 20 20 20 5b 70 61 73 73 77 6f ...[username].=>.foo.....[passwo
4f960 72 64 5d 20 3d 3e 20 62 61 72 0a 20 20 20 20 5b 70 72 6f 74 6f 63 6f 6c 5d 20 3d 3e 20 74 63 70 rd].=>.bar.....[protocol].=>.tcp
4f980 0a 20 20 20 20 5b 68 6f 73 74 73 70 65 63 5d 20 3d 3e 20 6c 6f 63 61 6c 68 6f 73 74 0a 20 20 20 .....[hostspec].=>.localhost....
4f9a0 20 5b 70 6f 72 74 5d 20 3d 3e 20 31 33 31 33 0a 20 20 20 20 5b 73 6f 63 6b 65 74 5d 20 3d 3e 20 .[port].=>.1313.....[socket].=>.
4f9c0 0a 20 20 20 20 5b 64 61 74 61 62 61 73 65 5d 20 3d 3e 20 0a 29 0a 44 53 4e 3a 20 70 67 73 71 6c .....[database].=>..).DSN:.pgsql
4f9e0 3a 2f 2f 75 73 65 72 40 75 6e 69 78 28 29 2f 70 65 61 72 0a 41 72 72 61 79 0a 28 0a 20 20 20 20 ://user@unix()/pear.Array.(.....
4fa00 5b 70 68 70 74 79 70 65 5d 20 3d 3e 20 70 67 73 71 6c 0a 20 20 20 20 5b 64 62 73 79 6e 74 61 78 [phptype].=>.pgsql.....[dbsyntax
4fa20 5d 20 3d 3e 20 70 67 73 71 6c 0a 20 20 20 20 5b 75 73 65 72 6e 61 6d 65 5d 20 3d 3e 20 75 73 65 ].=>.pgsql.....[username].=>.use
4fa40 72 0a 20 20 20 20 5b 70 61 73 73 77 6f 72 64 5d 20 3d 3e 20 0a 20 20 20 20 5b 70 72 6f 74 6f 63 r.....[password].=>......[protoc
4fa60 6f 6c 5d 20 3d 3e 20 75 6e 69 78 0a 20 20 20 20 5b 68 6f 73 74 73 70 65 63 5d 20 3d 3e 20 0a 20 ol].=>.unix.....[hostspec].=>...
4fa80 20 20 20 5b 70 6f 72 74 5d 20 3d 3e 20 0a 20 20 20 20 5b 73 6f 63 6b 65 74 5d 20 3d 3e 20 0a 20 ...[port].=>......[socket].=>...
4faa0 20 20 20 5b 64 61 74 61 62 61 73 65 5d 20 3d 3e 20 70 65 61 72 0a 29 0a 44 53 4e 3a 20 6d 79 73 ...[database].=>.pear.).DSN:.mys
4fac0 71 6c 3a 2f 2f 75 73 65 72 40 75 6e 69 78 28 2f 70 61 74 68 2f 74 6f 2f 73 6f 63 6b 65 74 29 2f ql://user@unix(/path/to/socket)/
4fae0 70 65 61 72 0a 41 72 72 61 79 0a 28 0a 20 20 20 20 5b 70 68 70 74 79 70 65 5d 20 3d 3e 20 6d 79 pear.Array.(.....[phptype].=>.my
4fb00 73 71 6c 0a 20 20 20 20 5b 64 62 73 79 6e 74 61 78 5d 20 3d 3e 20 6d 79 73 71 6c 0a 20 20 20 20 sql.....[dbsyntax].=>.mysql.....
4fb20 5b 75 73 65 72 6e 61 6d 65 5d 20 3d 3e 20 75 73 65 72 0a 20 20 20 20 5b 70 61 73 73 77 6f 72 64 [username].=>.user.....[password
4fb40 5d 20 3d 3e 20 0a 20 20 20 20 5b 70 72 6f 74 6f 63 6f 6c 5d 20 3d 3e 20 75 6e 69 78 0a 20 20 20 ].=>......[protocol].=>.unix....
4fb60 20 5b 68 6f 73 74 73 70 65 63 5d 20 3d 3e 20 0a 20 20 20 20 5b 70 6f 72 74 5d 20 3d 3e 20 0a 20 .[hostspec].=>......[port].=>...
4fb80 20 20 20 5b 73 6f 63 6b 65 74 5d 20 3d 3e 20 2f 70 61 74 68 2f 74 6f 2f 73 6f 63 6b 65 74 0a 20 ...[socket].=>./path/to/socket..
4fba0 20 20 20 5b 64 61 74 61 62 61 73 65 5d 20 3d 3e 20 70 65 61 72 0a 29 0a 44 53 4e 3a 20 70 67 73 ...[database].=>.pear.).DSN:.pgs
4fbc0 71 6c 3a 2f 2f 75 73 65 72 40 74 63 70 28 29 2f 70 65 61 72 0a 41 72 72 61 79 0a 28 0a 20 20 20 ql://user@tcp()/pear.Array.(....
4fbe0 20 5b 70 68 70 74 79 70 65 5d 20 3d 3e 20 70 67 73 71 6c 0a 20 20 20 20 5b 64 62 73 79 6e 74 61 .[phptype].=>.pgsql.....[dbsynta
4fc00 78 5d 20 3d 3e 20 70 67 73 71 6c 0a 20 20 20 20 5b 75 73 65 72 6e 61 6d 65 5d 20 3d 3e 20 75 73 x].=>.pgsql.....[username].=>.us
4fc20 65 72 0a 20 20 20 20 5b 70 61 73 73 77 6f 72 64 5d 20 3d 3e 20 0a 20 20 20 20 5b 70 72 6f 74 6f er.....[password].=>......[proto
4fc40 63 6f 6c 5d 20 3d 3e 20 74 63 70 0a 20 20 20 20 5b 68 6f 73 74 73 70 65 63 5d 20 3d 3e 20 0a 20 col].=>.tcp.....[hostspec].=>...
4fc60 20 20 20 5b 70 6f 72 74 5d 20 3d 3e 20 0a 20 20 20 20 5b 73 6f 63 6b 65 74 5d 20 3d 3e 20 0a 20 ...[port].=>......[socket].=>...
4fc80 20 20 20 5b 64 61 74 61 62 61 73 65 5d 20 3d 3e 20 70 65 61 72 0a 29 0a 44 53 4e 3a 20 70 67 73 ...[database].=>.pear.).DSN:.pgs
4fca0 71 6c 3a 2f 2f 75 73 65 72 40 74 63 70 28 73 6f 6d 65 68 6f 73 74 29 2f 70 65 61 72 0a 41 72 72 ql://user@tcp(somehost)/pear.Arr
4fcc0 61 79 0a 28 0a 20 20 20 20 5b 70 68 70 74 79 70 65 5d 20 3d 3e 20 70 67 73 71 6c 0a 20 20 20 20 ay.(.....[phptype].=>.pgsql.....
4fce0 5b 64 62 73 79 6e 74 61 78 5d 20 3d 3e 20 70 67 73 71 6c 0a 20 20 20 20 5b 75 73 65 72 6e 61 6d [dbsyntax].=>.pgsql.....[usernam
4fd00 65 5d 20 3d 3e 20 75 73 65 72 0a 20 20 20 20 5b 70 61 73 73 77 6f 72 64 5d 20 3d 3e 20 0a 20 20 e].=>.user.....[password].=>....
4fd20 20 20 5b 70 72 6f 74 6f 63 6f 6c 5d 20 3d 3e 20 74 63 70 0a 20 20 20 20 5b 68 6f 73 74 73 70 65 ..[protocol].=>.tcp.....[hostspe
4fd40 63 5d 20 3d 3e 20 73 6f 6d 65 68 6f 73 74 0a 20 20 20 20 5b 70 6f 72 74 5d 20 3d 3e 20 0a 20 20 c].=>.somehost.....[port].=>....
4fd60 20 20 5b 73 6f 63 6b 65 74 5d 20 3d 3e 20 0a 20 20 20 20 5b 64 61 74 61 62 61 73 65 5d 20 3d 3e ..[socket].=>......[database].=>
4fd80 20 70 65 61 72 0a 29 0a 44 53 4e 3a 20 70 67 73 71 6c 3a 2f 2f 75 73 65 72 3a 70 61 73 73 40 77 .pear.).DSN:.pgsql://user:pass@w
4fda0 6f 72 64 40 74 63 70 28 73 6f 6d 65 68 6f 73 74 3a 37 37 37 37 29 2f 70 65 61 72 0a 41 72 72 61 ord@tcp(somehost:7777)/pear.Arra
4fdc0 79 0a 28 0a 20 20 20 20 5b 70 68 70 74 79 70 65 5d 20 3d 3e 20 70 67 73 71 6c 0a 20 20 20 20 5b y.(.....[phptype].=>.pgsql.....[
4fde0 64 62 73 79 6e 74 61 78 5d 20 3d 3e 20 70 67 73 71 6c 0a 20 20 20 20 5b 75 73 65 72 6e 61 6d 65 dbsyntax].=>.pgsql.....[username
4fe00 5d 20 3d 3e 20 75 73 65 72 0a 20 20 20 20 5b 70 61 73 73 77 6f 72 64 5d 20 3d 3e 20 70 61 73 73 ].=>.user.....[password].=>.pass
4fe20 40 77 6f 72 64 0a 20 20 20 20 5b 70 72 6f 74 6f 63 6f 6c 5d 20 3d 3e 20 74 63 70 0a 20 20 20 20 @word.....[protocol].=>.tcp.....
4fe40 5b 68 6f 73 74 73 70 65 63 5d 20 3d 3e 20 73 6f 6d 65 68 6f 73 74 0a 20 20 20 20 5b 70 6f 72 74 [hostspec].=>.somehost.....[port
4fe60 5d 20 3d 3e 20 37 37 37 37 0a 20 20 20 20 5b 73 6f 63 6b 65 74 5d 20 3d 3e 20 0a 20 20 20 20 5b ].=>.7777.....[socket].=>......[
4fe80 64 61 74 61 62 61 73 65 5d 20 3d 3e 20 70 65 61 72 0a 29 0a 44 53 4e 3a 20 69 62 61 73 65 3a 2f database].=>.pear.).DSN:.ibase:/
4fea0 2f 75 73 65 72 3a 70 61 73 73 40 6c 6f 63 61 6c 68 6f 73 74 2f 2f 76 61 72 2f 6c 69 62 2f 64 62 /user:pass@localhost//var/lib/db
4fec0 61 73 65 2e 64 62 66 3f 72 6f 6c 65 3d 66 6f 6f 0a 41 72 72 61 79 0a 28 0a 20 20 20 20 5b 70 68 ase.dbf?role=foo.Array.(.....[ph
4fee0 70 74 79 70 65 5d 20 3d 3e 20 69 62 61 73 65 0a 20 20 20 20 5b 64 62 73 79 6e 74 61 78 5d 20 3d ptype].=>.ibase.....[dbsyntax].=
4ff00 3e 20 69 62 61 73 65 0a 20 20 20 20 5b 75 73 65 72 6e 61 6d 65 5d 20 3d 3e 20 75 73 65 72 0a 20 >.ibase.....[username].=>.user..
4ff20 20 20 20 5b 70 61 73 73 77 6f 72 64 5d 20 3d 3e 20 70 61 73 73 0a 20 20 20 20 5b 70 72 6f 74 6f ...[password].=>.pass.....[proto
4ff40 63 6f 6c 5d 20 3d 3e 20 74 63 70 0a 20 20 20 20 5b 68 6f 73 74 73 70 65 63 5d 20 3d 3e 20 6c 6f col].=>.tcp.....[hostspec].=>.lo
4ff60 63 61 6c 68 6f 73 74 0a 20 20 20 20 5b 70 6f 72 74 5d 20 3d 3e 20 0a 20 20 20 20 5b 73 6f 63 6b calhost.....[port].=>......[sock
4ff80 65 74 5d 20 3d 3e 20 0a 20 20 20 20 5b 64 61 74 61 62 61 73 65 5d 20 3d 3e 20 2f 76 61 72 2f 6c et].=>......[database].=>./var/l
4ffa0 69 62 2f 64 62 61 73 65 2e 64 62 66 0a 20 20 20 20 5b 72 6f 6c 65 5d 20 3d 3e 20 66 6f 6f 0a 29 ib/dbase.dbf.....[role].=>.foo.)
4ffc0 0a 44 53 4e 3a 20 64 62 61 73 65 3a 2f 2f 40 2f 3f 72 6f 6c 65 3d 66 6f 6f 26 64 69 61 6c 65 63 .DSN:.dbase://@/?role=foo&dialec
4ffe0 74 3d 62 61 72 0a 41 72 72 61 79 0a 28 0a 20 20 20 20 5b 70 68 70 74 79 70 65 5d 20 3d 3e 20 64 t=bar.Array.(.....[phptype].=>.d
50000 62 61 73 65 0a 20 20 20 20 5b 64 62 73 79 6e 74 61 78 5d 20 3d 3e 20 64 62 61 73 65 0a 20 20 20 base.....[dbsyntax].=>.dbase....
50020 20 5b 75 73 65 72 6e 61 6d 65 5d 20 3d 3e 20 0a 20 20 20 20 5b 70 61 73 73 77 6f 72 64 5d 20 3d .[username].=>......[password].=
50040 3e 20 0a 20 20 20 20 5b 70 72 6f 74 6f 63 6f 6c 5d 20 3d 3e 20 74 63 70 0a 20 20 20 20 5b 68 6f >......[protocol].=>.tcp.....[ho
50060 73 74 73 70 65 63 5d 20 3d 3e 20 0a 20 20 20 20 5b 70 6f 72 74 5d 20 3d 3e 20 0a 20 20 20 20 5b stspec].=>......[port].=>......[
50080 73 6f 63 6b 65 74 5d 20 3d 3e 20 0a 20 20 20 20 5b 64 61 74 61 62 61 73 65 5d 20 3d 3e 20 0a 20 socket].=>......[database].=>...
500a0 20 20 20 5b 72 6f 6c 65 5d 20 3d 3e 20 66 6f 6f 0a 20 20 20 20 5b 64 69 61 6c 65 63 74 5d 20 3d ...[role].=>.foo.....[dialect].=
500c0 3e 20 62 61 72 0a 29 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 >.bar.).........................
500e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
50100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
50120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
50140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
50160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
50180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
501a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
501c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
501e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
50200 44 42 2d 31 2e 35 2e 30 52 43 31 2f 74 65 73 74 73 2f 64 62 5f 66 61 63 74 6f 72 79 2e 70 68 70 DB-1.5.0RC1/tests/db_factory.php
50220 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 t...............................
50240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
50260 00 00 00 00 31 30 30 36 34 34 20 00 20 20 20 37 36 34 20 00 20 20 20 31 34 34 20 00 20 20 20 20 ....100644.....764.....144......
50280 20 20 20 32 32 30 30 20 20 37 36 37 35 34 34 36 30 31 32 20 20 31 31 36 33 32 20 00 00 00 00 00 ...2200..7675446012..11632......
502a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
502c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
502e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
50300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
50320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
50340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
50360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
50380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
503a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
503c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
503e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
50400 2d 2d 54 45 53 54 2d 2d 0a 44 42 3a 3a 66 61 63 74 6f 72 79 20 74 65 73 74 0a 2d 2d 53 4b 49 50 --TEST--.DB::factory.test.--SKIP
50420 49 46 2d 2d 0a 3c 3f 70 68 70 20 69 66 20 28 21 40 69 6e 63 6c 75 64 65 28 22 44 42 2e 70 68 70 IF--.<?php.if.(!@include("DB.php
50440 22 29 29 20 70 72 69 6e 74 20 22 73 6b 69 70 22 3b 20 3f 3e 0a 2d 2d 46 49 4c 45 2d 2d 0a 3c 3f ")).print."skip";.?>.--FILE--.<?
50460 70 68 70 20 2f 2f 20 2d 2a 2d 20 43 2b 2b 20 2d 2a 2d 0a 69 6e 63 6c 75 64 65 5f 6f 6e 63 65 20 php.//.-*-.C++.-*-.include_once.
50480 27 2e 2f 69 6e 63 6c 75 64 65 2e 69 6e 63 27 3b 0a 2f 2f 20 54 65 73 74 20 66 6f 72 3a 20 44 42 './include.inc';.//.Test.for:.DB
504a0 2e 70 68 70 0a 2f 2f 20 50 61 72 74 73 20 74 65 73 74 65 64 3a 20 44 42 5f 45 72 72 6f 72 2c 20 .php.//.Parts.tested:.DB_Error,.
504c0 44 42 5f 57 61 72 6e 69 6e 67 0a 0a 72 65 71 75 69 72 65 5f 6f 6e 63 65 20 22 44 42 2e 70 68 70 DB_Warning..require_once."DB.php
504e0 22 3b 0a 0a 24 62 61 63 6b 65 6e 64 73 20 3d 20 61 72 72 61 79 28 0a 20 20 20 20 22 69 62 61 73 ";..$backends.=.array(....."ibas
50500 65 22 2c 0a 20 20 20 20 22 6d 73 71 6c 22 2c 0a 20 20 20 20 22 6d 73 73 71 6c 22 2c 0a 20 20 20 e",....."msql",....."mssql",....
50520 20 22 6d 79 73 71 6c 22 2c 0a 20 20 20 20 22 6f 63 69 38 22 2c 0a 20 20 20 20 22 6f 64 62 63 22 ."mysql",....."oci8",....."odbc"
50540 2c 0a 20 20 20 20 22 70 67 73 71 6c 22 2c 0a 20 20 20 20 22 73 79 62 61 73 65 22 0a 29 3b 0a 0a ,....."pgsql",....."sybase".);..
50560 72 65 73 65 74 28 24 62 61 63 6b 65 6e 64 73 29 3b 0a 77 68 69 6c 65 20 28 6c 69 73 74 28 24 69 reset($backends);.while.(list($i
50580 2c 20 24 6e 61 6d 65 29 20 3d 20 65 61 63 68 28 24 62 61 63 6b 65 6e 64 73 29 29 20 7b 0a 20 20 ,.$name).=.each($backends)).{...
505a0 20 20 70 72 69 6e 74 20 22 74 65 73 74 69 6e 67 20 24 6e 61 6d 65 3a 20 22 3b 0a 20 20 20 20 24 ..print."testing.$name:.";.....$
505c0 6f 62 6a 20 3d 20 44 42 3a 3a 66 61 63 74 6f 72 79 28 24 6e 61 6d 65 29 3b 0a 20 20 20 20 69 66 obj.=.DB::factory($name);.....if
505e0 20 28 44 42 3a 3a 69 73 45 72 72 6f 72 28 24 6f 62 6a 29 29 20 7b 0a 09 70 72 69 6e 74 20 22 65 .(DB::isError($obj)).{..print."e
50600 72 72 6f 72 3a 20 22 2e 24 6f 62 6a 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 2e 22 5c 6e 22 3b rror:.".$obj->getMessage()."\n";
50620 0a 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 09 70 72 69 6e 74 20 22 6f 62 6a 65 63 74 3a 20 22 2e .....}.else.{..print."object:.".
50640 24 6f 62 6a 2d 3e 74 6f 53 74 72 69 6e 67 28 29 2e 22 5c 6e 22 3b 0a 20 20 20 20 7d 0a 7d 0a 0a $obj->toString()."\n";.....}.}..
50660 3f 3e 0a 2d 2d 47 45 54 2d 2d 0a 2d 2d 50 4f 53 54 2d 2d 0a 2d 2d 45 58 50 45 43 54 2d 2d 0a 74 ?>.--GET--.--POST--.--EXPECT--.t
50680 65 73 74 69 6e 67 20 69 62 61 73 65 3a 20 6f 62 6a 65 63 74 3a 20 64 62 5f 69 62 61 73 65 3a 20 esting.ibase:.object:.db_ibase:.
506a0 28 70 68 70 74 79 70 65 3d 69 62 61 73 65 2c 20 64 62 73 79 6e 74 61 78 3d 69 62 61 73 65 29 0a (phptype=ibase,.dbsyntax=ibase).
506c0 74 65 73 74 69 6e 67 20 6d 73 71 6c 3a 20 6f 62 6a 65 63 74 3a 20 64 62 5f 6d 73 71 6c 3a 20 28 testing.msql:.object:.db_msql:.(
506e0 70 68 70 74 79 70 65 3d 6d 73 71 6c 2c 20 64 62 73 79 6e 74 61 78 3d 6d 73 71 6c 29 0a 74 65 73 phptype=msql,.dbsyntax=msql).tes
50700 74 69 6e 67 20 6d 73 73 71 6c 3a 20 6f 62 6a 65 63 74 3a 20 64 62 5f 6d 73 73 71 6c 3a 20 28 70 ting.mssql:.object:.db_mssql:.(p
50720 68 70 74 79 70 65 3d 6d 73 73 71 6c 2c 20 64 62 73 79 6e 74 61 78 3d 6d 73 73 71 6c 29 0a 74 65 hptype=mssql,.dbsyntax=mssql).te
50740 73 74 69 6e 67 20 6d 79 73 71 6c 3a 20 6f 62 6a 65 63 74 3a 20 64 62 5f 6d 79 73 71 6c 3a 20 28 sting.mysql:.object:.db_mysql:.(
50760 70 68 70 74 79 70 65 3d 6d 79 73 71 6c 2c 20 64 62 73 79 6e 74 61 78 3d 6d 79 73 71 6c 29 0a 74 phptype=mysql,.dbsyntax=mysql).t
50780 65 73 74 69 6e 67 20 6f 63 69 38 3a 20 6f 62 6a 65 63 74 3a 20 64 62 5f 6f 63 69 38 3a 20 28 70 esting.oci8:.object:.db_oci8:.(p
507a0 68 70 74 79 70 65 3d 6f 63 69 38 2c 20 64 62 73 79 6e 74 61 78 3d 6f 63 69 38 29 0a 74 65 73 74 hptype=oci8,.dbsyntax=oci8).test
507c0 69 6e 67 20 6f 64 62 63 3a 20 6f 62 6a 65 63 74 3a 20 64 62 5f 6f 64 62 63 3a 20 28 70 68 70 74 ing.odbc:.object:.db_odbc:.(phpt
507e0 79 70 65 3d 6f 64 62 63 2c 20 64 62 73 79 6e 74 61 78 3d 73 71 6c 39 32 29 0a 74 65 73 74 69 6e ype=odbc,.dbsyntax=sql92).testin
50800 67 20 70 67 73 71 6c 3a 20 6f 62 6a 65 63 74 3a 20 64 62 5f 70 67 73 71 6c 3a 20 28 70 68 70 74 g.pgsql:.object:.db_pgsql:.(phpt
50820 79 70 65 3d 70 67 73 71 6c 2c 20 64 62 73 79 6e 74 61 78 3d 70 67 73 71 6c 29 0a 74 65 73 74 69 ype=pgsql,.dbsyntax=pgsql).testi
50840 6e 67 20 73 79 62 61 73 65 3a 20 6f 62 6a 65 63 74 3a 20 64 62 5f 73 79 62 61 73 65 3a 20 28 70 ng.sybase:.object:.db_sybase:.(p
50860 68 70 74 79 70 65 3d 73 79 62 61 73 65 2c 20 64 62 73 79 6e 74 61 78 3d 73 79 62 61 73 65 29 0a hptype=sybase,.dbsyntax=sybase).
50880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
508a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
508c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
508e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
50900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
50920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
50940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
50960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
50980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
509a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
509c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
509e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
50a00 44 42 2d 31 2e 35 2e 30 52 43 31 2f 74 65 73 74 73 2f 64 62 5f 69 73 6d 61 6e 69 70 2e 70 68 70 DB-1.5.0RC1/tests/db_ismanip.php
50a20 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 t...............................
50a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
50a60 00 00 00 00 31 30 30 36 34 34 20 00 20 20 20 37 36 34 20 00 20 20 20 31 34 34 20 00 20 20 20 20 ....100644.....764.....144......
50a80 20 20 20 32 33 31 36 20 20 37 36 37 35 34 34 35 37 31 35 20 20 31 31 36 34 34 20 00 00 00 00 00 ...2316..7675445715..11644......
50aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
50ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
50ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
50b00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
50b20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
50b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
50b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
50b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
50ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
50bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
50be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
50c00 2d 2d 54 45 53 54 2d 2d 0a 44 42 3a 3a 69 73 4d 61 6e 69 70 20 74 65 73 74 0a 2d 2d 53 4b 49 50 --TEST--.DB::isManip.test.--SKIP
50c20 49 46 2d 2d 0a 3c 3f 70 68 70 20 69 66 20 28 21 40 69 6e 63 6c 75 64 65 28 22 44 42 2e 70 68 70 IF--.<?php.if.(!@include("DB.php
50c40 22 29 29 20 70 72 69 6e 74 20 22 73 6b 69 70 22 3b 20 3f 3e 0a 2d 2d 46 49 4c 45 2d 2d 0a 3c 3f ")).print."skip";.?>.--FILE--.<?
50c60 70 68 70 20 2f 2f 20 2d 2a 2d 20 43 2b 2b 20 2d 2a 2d 0a 69 6e 63 6c 75 64 65 5f 6f 6e 63 65 20 php.//.-*-.C++.-*-.include_once.
50c80 27 2e 2f 69 6e 63 6c 75 64 65 2e 69 6e 63 27 3b 0a 2f 2f 20 54 65 73 74 20 66 6f 72 3a 20 44 42 './include.inc';.//.Test.for:.DB
50ca0 2e 70 68 70 0a 2f 2f 20 50 61 72 74 73 20 74 65 73 74 65 64 3a 20 44 42 3a 3a 69 73 4d 61 6e 69 .php.//.Parts.tested:.DB::isMani
50cc0 70 0a 0a 72 65 71 75 69 72 65 5f 6f 6e 63 65 20 22 44 42 2e 70 68 70 22 3b 0a 0a 66 75 6e 63 74 p..require_once."DB.php";..funct
50ce0 69 6f 6e 20 74 65 73 74 28 24 71 75 65 72 79 29 20 7b 0a 20 20 20 20 70 72 69 6e 74 66 28 22 25 ion.test($query).{.....printf("%
50d00 73 20 3a 20 25 64 5c 6e 22 2c 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 2f 5c 73 2b 2e 2a 2f s.:.%d\n",.preg_replace('/\s+.*/
50d20 27 2c 20 27 27 2c 20 24 71 75 65 72 79 29 2c 0a 20 20 20 20 20 20 20 20 20 20 20 44 42 3a 3a 69 ',.'',.$query),............DB::i
50d40 73 4d 61 6e 69 70 28 24 71 75 65 72 79 29 29 3b 0a 7d 0a 0a 70 72 69 6e 74 20 22 74 65 73 74 69 sManip($query));.}..print."testi
50d60 6e 67 20 44 42 3a 3a 69 73 4d 61 6e 69 70 2e 2e 2e 5c 6e 22 3b 0a 0a 74 65 73 74 28 22 53 45 4c ng.DB::isManip...\n";..test("SEL
50d80 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 6c 65 22 29 3b 0a 74 65 73 74 28 22 53 65 6c 65 63 74 ECT.*.FROM.table");.test("Select
50da0 20 2a 20 66 72 6f 6d 20 74 61 62 6c 65 22 29 3b 0a 74 65 73 74 28 22 73 65 6c 65 63 74 20 2a 20 .*.from.table");.test("select.*.
50dc0 46 72 6f 6d 20 74 61 62 6c 65 22 29 3b 0a 74 65 73 74 28 22 73 45 6c 45 43 74 20 2a 20 66 72 4f From.table");.test("sElECt.*.frO
50de0 6d 20 74 61 62 6c 65 22 29 3b 0a 74 65 73 74 28 22 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 m.table");.test("SELECT.DISTINCT
50e00 20 6e 61 6d 65 20 46 52 4f 4d 20 74 61 62 6c 65 22 29 3b 0a 74 65 73 74 28 22 55 50 44 41 54 45 .name.FROM.table");.test("UPDATE
50e20 20 74 61 62 6c 65 20 53 45 54 20 66 6f 6f 20 3d 20 27 62 61 72 27 22 29 3b 0a 74 65 73 74 28 22 .table.SET.foo.=.'bar'");.test("
50e40 44 45 4c 45 54 45 20 46 52 4f 4d 20 74 61 62 6c 65 22 29 3b 0a 74 65 73 74 28 22 64 65 6c 65 74 DELETE.FROM.table");.test("delet
50e60 65 20 66 72 6f 6d 20 74 61 62 6c 65 20 77 68 65 72 65 20 69 64 20 69 73 20 6e 75 6c 6c 22 29 3b e.from.table.where.id.is.null");
50e80 0a 74 65 73 74 28 22 63 72 65 61 74 65 20 74 61 62 6c 65 20 28 69 64 20 69 6e 74 65 67 65 72 2c .test("create.table.(id.integer,
50ea0 20 6e 61 6d 65 20 76 61 72 63 68 61 72 28 31 30 30 29 29 22 29 3b 0a 74 65 73 74 28 22 43 52 45 .name.varchar(100))");.test("CRE
50ec0 41 54 45 20 53 45 51 55 45 4e 43 45 20 66 6f 6f 22 29 3b 0a 74 65 73 74 28 22 5c 22 43 52 45 41 ATE.SEQUENCE.foo");.test("\"CREA
50ee0 54 45 20 50 52 4f 43 45 44 55 52 45 20 66 6f 6f 5c 22 22 29 3b 0a 74 65 73 74 28 22 47 52 41 4e TE.PROCEDURE.foo\"");.test("GRAN
50f00 54 20 53 45 4c 45 43 54 20 4f 4e 20 74 61 62 6c 65 20 54 4f 20 75 73 65 72 22 29 3b 0a 74 65 73 T.SELECT.ON.table.TO.user");.tes
50f20 74 28 22 52 45 56 4f 4b 45 20 53 45 4c 45 43 54 20 4f 4e 20 74 61 62 6c 65 20 46 52 4f 4d 20 75 t("REVOKE.SELECT.ON.table.FROM.u
50f40 73 65 72 22 29 3b 0a 74 65 73 74 28 22 53 48 4f 57 20 4f 50 54 49 4f 4e 53 22 29 3b 0a 74 65 73 ser");.test("SHOW.OPTIONS");.tes
50f60 74 28 22 44 52 4f 50 20 54 41 42 4c 45 20 66 6f 6f 22 29 3b 0a 74 65 73 74 28 22 41 4c 54 45 52 t("DROP.TABLE.foo");.test("ALTER
50f80 20 54 41 42 4c 45 20 66 6f 6f 20 41 44 44 20 43 4f 4c 55 4d 4e 20 28 62 61 72 20 49 4e 54 45 47 .TABLE.foo.ADD.COLUMN.(bar.INTEG
50fa0 45 52 29 22 29 3b 0a 74 65 73 74 28 22 20 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 ER)");.test("..SELECT.*.FROM.tab
50fc0 6c 65 22 29 3b 0a 74 65 73 74 28 22 20 20 44 45 4c 45 54 45 20 46 52 4f 4d 20 74 61 62 6c 65 22 le");.test("..DELETE.FROM.table"
50fe0 29 3b 0a 3f 3e 0a 2d 2d 47 45 54 2d 2d 0a 2d 2d 50 4f 53 54 2d 2d 0a 2d 2d 45 58 50 45 43 54 2d );.?>.--GET--.--POST--.--EXPECT-
51000 2d 0a 74 65 73 74 69 6e 67 20 44 42 3a 3a 69 73 4d 61 6e 69 70 2e 2e 2e 0a 53 45 4c 45 43 54 20 -.testing.DB::isManip....SELECT.
51020 3a 20 30 0a 53 65 6c 65 63 74 20 3a 20 30 0a 73 65 6c 65 63 74 20 3a 20 30 0a 73 45 6c 45 43 74 :.0.Select.:.0.select.:.0.sElECt
51040 20 3a 20 30 0a 53 45 4c 45 43 54 20 3a 20 30 0a 55 50 44 41 54 45 20 3a 20 31 0a 44 45 4c 45 54 .:.0.SELECT.:.0.UPDATE.:.1.DELET
51060 45 20 3a 20 31 0a 64 65 6c 65 74 65 20 3a 20 31 0a 63 72 65 61 74 65 20 3a 20 31 0a 43 52 45 41 E.:.1.delete.:.1.create.:.1.CREA
51080 54 45 20 3a 20 31 0a 22 43 52 45 41 54 45 20 3a 20 31 0a 47 52 41 4e 54 20 3a 20 31 0a 52 45 56 TE.:.1."CREATE.:.1.GRANT.:.1.REV
510a0 4f 4b 45 20 3a 20 31 0a 53 48 4f 57 20 3a 20 30 0a 44 52 4f 50 20 3a 20 31 0a 41 4c 54 45 52 20 OKE.:.1.SHOW.:.0.DROP.:.1.ALTER.
510c0 3a 20 31 0a 20 3a 20 30 0a 20 3a 20 31 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 :.1..:.0..:.1...................
510e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
51100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
51120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
51140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
51160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
51180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
511a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
511c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
511e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
51200 44 42 2d 31 2e 35 2e 30 52 43 31 2f 74 65 73 74 73 2f 64 62 5f 65 72 72 6f 72 32 2e 70 68 70 74 DB-1.5.0RC1/tests/db_error2.phpt
51220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
51240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
51260 00 00 00 00 31 30 30 36 34 34 20 00 20 20 20 37 36 34 20 00 20 20 20 31 34 34 20 00 20 20 20 20 ....100644.....764.....144......
51280 20 20 20 35 31 35 36 20 20 37 36 37 35 34 34 35 36 33 35 20 20 31 31 34 32 35 20 00 00 00 00 00 ...5156..7675445635..11425......
512a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
512c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
512e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
51300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
51320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
51340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
51360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
51380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
513a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
513c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
513e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
51400 2d 2d 54 45 53 54 2d 2d 0a 44 42 20 63 6f 6e 66 69 67 75 72 61 62 6c 65 20 65 72 72 6f 72 20 68 --TEST--.DB.configurable.error.h
51420 61 6e 64 6c 65 72 20 74 65 73 74 0a 2d 2d 46 49 4c 45 2d 2d 0a 3c 3f 70 68 70 0a 69 6e 63 6c 75 andler.test.--FILE--.<?php.inclu
51440 64 65 5f 6f 6e 63 65 20 27 2e 2f 69 6e 63 6c 75 64 65 2e 69 6e 63 27 3b 0a 72 65 71 75 69 72 65 de_once.'./include.inc';.require
51460 5f 6f 6e 63 65 20 22 44 42 2e 70 68 70 22 3b 0a 65 72 72 6f 72 5f 72 65 70 6f 72 74 69 6e 67 28 _once."DB.php";.error_reporting(
51480 34 30 39 35 29 3b 0a 0a 66 75 6e 63 74 69 6f 6e 20 6d 79 66 75 6e 63 28 26 24 6f 62 6a 29 20 7b 4095);..function.myfunc(&$obj).{
514a0 0a 20 20 20 20 70 72 69 6e 74 20 22 6d 79 66 75 6e 63 20 68 65 72 65 2c 20 6f 62 6a 3d 22 2e 24 .....print."myfunc.here,.obj=".$
514c0 6f 62 6a 2d 3e 74 6f 53 74 72 69 6e 67 28 29 2e 22 5c 6e 22 3b 0a 7d 0a 66 75 6e 63 74 69 6f 6e obj->toString()."\n";.}.function
514e0 20 6d 79 66 75 6e 63 32 28 26 24 6f 62 6a 29 20 7b 0a 20 20 20 20 70 72 69 6e 74 20 22 6d 79 66 .myfunc2(&$obj).{.....print."myf
51500 75 6e 63 32 20 68 65 72 65 2c 20 6f 62 6a 3d 22 2e 24 6f 62 6a 2d 3e 74 6f 53 74 72 69 6e 67 28 unc2.here,.obj=".$obj->toString(
51520 29 2e 22 5c 6e 22 3b 0a 7d 0a 63 6c 61 73 73 20 6d 79 63 6c 61 73 73 20 7b 0a 20 20 20 20 66 75 )."\n";.}.class.myclass.{.....fu
51540 6e 63 74 69 6f 6e 20 6d 79 66 75 6e 63 28 26 24 6f 62 6a 29 20 7b 0a 20 20 20 20 20 20 20 20 70 nction.myfunc(&$obj).{.........p
51560 72 69 6e 74 20 22 6d 79 63 6c 61 73 73 3a 3a 6d 79 66 75 6e 63 20 68 65 72 65 2c 20 6f 62 6a 3d rint."myclass::myfunc.here,.obj=
51580 22 2e 24 6f 62 6a 2d 3e 74 6f 53 74 72 69 6e 67 28 29 2e 22 5c 6e 22 3b 0a 20 20 20 20 7d 0a 7d ".$obj->toString()."\n";.....}.}
515a0 0a 66 75 6e 63 74 69 6f 6e 20 74 65 73 74 5f 65 72 72 6f 72 5f 68 61 6e 64 6c 65 72 28 24 65 72 .function.test_error_handler($er
515c0 72 6e 6f 2c 20 24 65 72 72 6d 73 67 2c 20 24 66 69 6c 65 2c 20 24 6c 69 6e 65 2c 20 24 76 61 72 rno,.$errmsg,.$file,.$line,.$var
515e0 73 29 20 7b 0a 20 20 20 20 20 20 20 20 24 65 72 72 6f 72 74 79 70 65 20 3d 20 61 72 72 61 79 20 s).{.........$errortype.=.array.
51600 28 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 31 20 20 20 3d 3e 20 20 22 45 72 72 6f 72 (.................1...=>.."Error
51620 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 32 20 20 20 3d 3e 20 20 22 57 61 72 6e ",.................2...=>.."Warn
51640 69 6e 67 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 34 20 20 20 3d 3e 20 20 22 50 ing",.................4...=>.."P
51660 61 72 73 69 6e 67 20 45 72 72 6f 72 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 38 arsing.Error",.................8
51680 20 20 20 3d 3e 20 20 22 4e 6f 74 69 63 65 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ...=>.."Notice",................
516a0 20 31 36 20 20 3d 3e 20 20 22 43 6f 72 65 20 45 72 72 6f 72 22 2c 0a 20 20 20 20 20 20 20 20 20 .16..=>.."Core.Error",..........
516c0 20 20 20 20 20 20 20 33 32 20 20 3d 3e 20 20 22 43 6f 72 65 20 57 61 72 6e 69 6e 67 22 2c 0a 20 .......32..=>.."Core.Warning",..
516e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 36 34 20 20 3d 3e 20 20 22 43 6f 6d 70 69 6c 65 20 ...............64..=>.."Compile.
51700 45 72 72 6f 72 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 31 32 38 20 3d 3e 20 20 Error",.................128.=>..
51720 22 43 6f 6d 70 69 6c 65 20 57 61 72 6e 69 6e 67 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 "Compile.Warning",..............
51740 20 20 20 32 35 36 20 3d 3e 20 20 22 55 73 65 72 20 45 72 72 6f 72 22 2c 0a 20 20 20 20 20 20 20 ...256.=>.."User.Error",........
51760 20 20 20 20 20 20 20 20 20 35 31 32 20 3d 3e 20 20 22 55 73 65 72 20 57 61 72 6e 69 6e 67 22 2c .........512.=>.."User.Warning",
51780 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 31 30 32 34 3d 3e 20 20 22 55 73 65 72 20 4e .................1024=>.."User.N
517a0 6f 74 69 63 65 22 0a 20 20 20 20 20 20 20 20 29 3b 0a 20 20 20 20 20 20 20 20 24 70 72 65 66 69 otice".........);.........$prefi
517c0 78 20 3d 20 24 65 72 72 6f 72 74 79 70 65 5b 24 65 72 72 6e 6f 5d 3b 0a 20 20 20 20 20 20 20 20 x.=.$errortype[$errno];.........
517e0 24 66 69 6c 65 20 3d 20 62 61 73 65 6e 61 6d 65 28 24 66 69 6c 65 29 3b 0a 20 20 20 20 20 20 20 $file.=.basename($file);........
51800 20 70 72 69 6e 74 20 22 24 70 72 65 66 69 78 3a 20 24 65 72 72 6d 73 67 20 69 6e 20 24 66 69 6c .print."$prefix:.$errmsg.in.$fil
51820 65 20 6f 6e 20 6c 69 6e 65 20 58 58 58 5c 6e 22 3b 0a 7d 0a 0a 24 6f 62 6a 20 3d 20 6e 65 77 20 e.on.line.XXX\n";.}..$obj.=.new.
51840 6d 79 63 6c 61 73 73 3b 0a 0a 24 64 62 68 20 3d 20 44 42 3a 3a 66 61 63 74 6f 72 79 28 22 6d 79 myclass;..$dbh.=.DB::factory("my
51860 73 71 6c 22 29 3b 0a 0a 70 72 69 6e 74 20 22 64 65 66 61 75 6c 74 3a 20 22 3b 0a 24 65 20 3d 20 sql");..print."default:.";.$e.=.
51880 24 64 62 68 2d 3e 72 61 69 73 65 45 72 72 6f 72 28 22 72 65 74 75 72 6e 20 74 65 73 74 69 6e 67 $dbh->raiseError("return.testing
518a0 20 65 72 72 6f 72 22 29 3b 0a 70 72 69 6e 74 20 24 65 2d 3e 74 6f 53 74 72 69 6e 67 28 29 20 2e .error");.print.$e->toString()..
518c0 20 22 5c 6e 22 3b 0a 0a 70 72 69 6e 74 20 22 67 6c 6f 62 61 6c 20 64 65 66 61 75 6c 74 3a 20 22 ."\n";..print."global.default:."
518e0 3b 0a 50 45 41 52 3a 3a 73 65 74 45 72 72 6f 72 48 61 6e 64 6c 69 6e 67 28 50 45 41 52 5f 45 52 ;.PEAR::setErrorHandling(PEAR_ER
51900 52 4f 52 5f 43 41 4c 4c 42 41 43 4b 2c 20 22 6d 79 66 75 6e 63 32 22 29 3b 0a 24 65 20 3d 20 24 ROR_CALLBACK,."myfunc2");.$e.=.$
51920 64 62 68 2d 3e 72 61 69 73 65 45 72 72 6f 72 28 22 67 6c 6f 62 61 6c 20 64 65 66 61 75 6c 74 20 dbh->raiseError("global.default.
51940 74 65 73 74 22 29 3b 0a 0a 24 64 62 68 2d 3e 73 65 74 45 72 72 6f 72 48 61 6e 64 6c 69 6e 67 28 test");..$dbh->setErrorHandling(
51960 50 45 41 52 5f 45 52 52 4f 52 5f 50 52 49 4e 54 29 3b 0a 70 72 69 6e 74 20 22 6d 6f 64 65 3d 70 PEAR_ERROR_PRINT);.print."mode=p
51980 72 69 6e 74 3a 20 22 3b 0a 24 65 20 3d 20 24 64 62 68 2d 3e 72 61 69 73 65 45 72 72 6f 72 28 22 rint:.";.$e.=.$dbh->raiseError("
519a0 70 72 69 6e 74 20 74 65 73 74 69 6e 67 20 65 72 72 6f 72 22 29 3b 0a 70 72 69 6e 74 20 22 5c 6e print.testing.error");.print."\n
519c0 22 3b 0a 0a 24 64 62 68 2d 3e 73 65 74 45 72 72 6f 72 48 61 6e 64 6c 69 6e 67 28 50 45 41 52 5f ";..$dbh->setErrorHandling(PEAR_
519e0 45 52 52 4f 52 5f 43 41 4c 4c 42 41 43 4b 2c 20 22 6d 79 66 75 6e 63 22 29 3b 0a 70 72 69 6e 74 ERROR_CALLBACK,."myfunc");.print
51a00 20 22 6d 6f 64 65 3d 66 75 6e 63 74 69 6f 6e 20 63 61 6c 6c 62 61 63 6b 3a 20 22 3b 0a 24 65 20 ."mode=function.callback:.";.$e.
51a20 3d 20 24 64 62 68 2d 3e 72 61 69 73 65 45 72 72 6f 72 28 22 66 75 6e 63 74 69 6f 6e 20 63 61 6c =.$dbh->raiseError("function.cal
51a40 6c 62 61 63 6b 20 74 65 73 74 69 6e 67 20 65 72 72 6f 72 22 29 3b 0a 0a 24 64 62 68 2d 3e 73 65 lback.testing.error");..$dbh->se
51a60 74 45 72 72 6f 72 48 61 6e 64 6c 69 6e 67 28 50 45 41 52 5f 45 52 52 4f 52 5f 43 41 4c 4c 42 41 tErrorHandling(PEAR_ERROR_CALLBA
51a80 43 4b 2c 20 61 72 72 61 79 28 24 6f 62 6a 2c 20 22 6d 79 66 75 6e 63 22 29 29 3b 0a 70 72 69 6e CK,.array($obj,."myfunc"));.prin
51aa0 74 20 22 6d 6f 64 65 3d 6f 62 6a 65 63 74 20 63 61 6c 6c 62 61 63 6b 3a 20 22 3b 0a 24 65 20 3d t."mode=object.callback:.";.$e.=
51ac0 20 24 64 62 68 2d 3e 72 61 69 73 65 45 72 72 6f 72 28 22 6f 62 6a 65 63 74 20 63 61 6c 6c 62 61 .$dbh->raiseError("object.callba
51ae0 63 6b 20 74 65 73 74 69 6e 67 20 65 72 72 6f 72 22 29 3b 0a 0a 73 65 74 5f 65 72 72 6f 72 5f 68 ck.testing.error");..set_error_h
51b00 61 6e 64 6c 65 72 28 22 74 65 73 74 5f 65 72 72 6f 72 5f 68 61 6e 64 6c 65 72 22 29 3b 0a 24 64 andler("test_error_handler");.$d
51b20 62 68 2d 3e 73 65 74 45 72 72 6f 72 48 61 6e 64 6c 69 6e 67 28 50 45 41 52 5f 45 52 52 4f 52 5f bh->setErrorHandling(PEAR_ERROR_
51b40 54 52 49 47 47 45 52 29 3b 0a 70 72 69 6e 74 20 22 6d 6f 64 65 3d 74 72 69 67 67 65 72 3a 20 22 TRIGGER);.print."mode=trigger:."
51b60 3b 0a 24 65 20 3d 20 24 64 62 68 2d 3e 72 61 69 73 65 45 72 72 6f 72 28 22 74 72 69 67 67 65 72 ;.$e.=.$dbh->raiseError("trigger
51b80 20 74 65 73 74 69 6e 67 20 65 72 72 6f 72 22 29 3b 0a 0a 3f 3e 0a 2d 2d 45 58 50 45 43 54 2d 2d .testing.error");..?>.--EXPECT--
51ba0 0a 64 65 66 61 75 6c 74 3a 20 5b 64 62 5f 65 72 72 6f 72 3a 20 6d 65 73 73 61 67 65 3d 22 44 42 .default:.[db_error:.message="DB
51bc0 20 45 72 72 6f 72 3a 20 72 65 74 75 72 6e 20 74 65 73 74 69 6e 67 20 65 72 72 6f 72 22 20 63 6f .Error:.return.testing.error".co
51be0 64 65 3d 2d 31 20 6d 6f 64 65 3d 72 65 74 75 72 6e 20 6c 65 76 65 6c 3d 6e 6f 74 69 63 65 20 70 de=-1.mode=return.level=notice.p
51c00 72 65 66 69 78 3d 22 22 20 69 6e 66 6f 3d 22 22 5d 0a 67 6c 6f 62 61 6c 20 64 65 66 61 75 6c 74 refix="".info=""].global.default
51c20 3a 20 6d 79 66 75 6e 63 32 20 68 65 72 65 2c 20 6f 62 6a 3d 5b 64 62 5f 65 72 72 6f 72 3a 20 6d :.myfunc2.here,.obj=[db_error:.m
51c40 65 73 73 61 67 65 3d 22 44 42 20 45 72 72 6f 72 3a 20 67 6c 6f 62 61 6c 20 64 65 66 61 75 6c 74 essage="DB.Error:.global.default
51c60 20 74 65 73 74 22 20 63 6f 64 65 3d 2d 31 20 6d 6f 64 65 3d 63 61 6c 6c 62 61 63 6b 20 63 61 6c .test".code=-1.mode=callback.cal
51c80 6c 62 61 63 6b 3d 6d 79 66 75 6e 63 32 20 70 72 65 66 69 78 3d 22 22 20 69 6e 66 6f 3d 22 22 5d lback=myfunc2.prefix="".info=""]
51ca0 0a 6d 6f 64 65 3d 70 72 69 6e 74 3a 20 44 42 20 45 72 72 6f 72 3a 20 70 72 69 6e 74 20 74 65 73 .mode=print:.DB.Error:.print.tes
51cc0 74 69 6e 67 20 65 72 72 6f 72 0a 6d 6f 64 65 3d 66 75 6e 63 74 69 6f 6e 20 63 61 6c 6c 62 61 63 ting.error.mode=function.callbac
51ce0 6b 3a 20 6d 79 66 75 6e 63 20 68 65 72 65 2c 20 6f 62 6a 3d 5b 64 62 5f 65 72 72 6f 72 3a 20 6d k:.myfunc.here,.obj=[db_error:.m
51d00 65 73 73 61 67 65 3d 22 44 42 20 45 72 72 6f 72 3a 20 66 75 6e 63 74 69 6f 6e 20 63 61 6c 6c 62 essage="DB.Error:.function.callb
51d20 61 63 6b 20 74 65 73 74 69 6e 67 20 65 72 72 6f 72 22 20 63 6f 64 65 3d 2d 31 20 6d 6f 64 65 3d ack.testing.error".code=-1.mode=
51d40 63 61 6c 6c 62 61 63 6b 20 63 61 6c 6c 62 61 63 6b 3d 6d 79 66 75 6e 63 20 70 72 65 66 69 78 3d callback.callback=myfunc.prefix=
51d60 22 22 20 69 6e 66 6f 3d 22 22 5d 0a 6d 6f 64 65 3d 6f 62 6a 65 63 74 20 63 61 6c 6c 62 61 63 6b "".info=""].mode=object.callback
51d80 3a 20 6d 79 63 6c 61 73 73 3a 3a 6d 79 66 75 6e 63 20 68 65 72 65 2c 20 6f 62 6a 3d 5b 64 62 5f :.myclass::myfunc.here,.obj=[db_
51da0 65 72 72 6f 72 3a 20 6d 65 73 73 61 67 65 3d 22 44 42 20 45 72 72 6f 72 3a 20 6f 62 6a 65 63 74 error:.message="DB.Error:.object
51dc0 20 63 61 6c 6c 62 61 63 6b 20 74 65 73 74 69 6e 67 20 65 72 72 6f 72 22 20 63 6f 64 65 3d 2d 31 .callback.testing.error".code=-1
51de0 20 6d 6f 64 65 3d 63 61 6c 6c 62 61 63 6b 20 63 61 6c 6c 62 61 63 6b 3d 6d 79 63 6c 61 73 73 3a .mode=callback.callback=myclass:
51e00 3a 6d 79 66 75 6e 63 20 70 72 65 66 69 78 3d 22 22 20 69 6e 66 6f 3d 22 22 5d 0a 6d 6f 64 65 3d :myfunc.prefix="".info=""].mode=
51e20 74 72 69 67 67 65 72 3a 20 55 73 65 72 20 4e 6f 74 69 63 65 3a 20 44 42 20 45 72 72 6f 72 3a 20 trigger:.User.Notice:.DB.Error:.
51e40 74 72 69 67 67 65 72 20 74 65 73 74 69 6e 67 20 65 72 72 6f 72 20 69 6e 20 50 45 41 52 2e 70 68 trigger.testing.error.in.PEAR.ph
51e60 70 20 6f 6e 20 6c 69 6e 65 20 58 58 58 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 p.on.line.XXX...................
51e80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
51ea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
51ec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
51ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
51f00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
51f20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
51f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
51f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
51f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
51fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
51fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
51fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
52000 44 42 2d 31 2e 35 2e 30 52 43 31 2f 74 65 73 74 73 2f 65 72 72 6f 72 73 2e 69 6e 63 00 00 00 00 DB-1.5.0RC1/tests/errors.inc....
52020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
52040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
52060 00 00 00 00 31 30 30 36 34 34 20 00 20 20 20 37 36 34 20 00 20 20 20 31 34 34 20 00 20 20 20 20 ....100644.....764.....144......
52080 20 20 20 32 36 35 37 20 20 37 36 37 35 31 32 31 37 35 30 20 20 31 30 36 34 37 20 00 00 00 00 00 ...2657..7675121750..10647......
520a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
520c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
520e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
52100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
52120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
52140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
52160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
52180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
521a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
521c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
521e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
52200 3c 3f 70 68 70 0a 0a 66 75 6e 63 74 69 6f 6e 20 65 72 72 68 61 6e 64 6c 65 72 28 24 6f 62 6a 29 <?php..function.errhandler($obj)
52220 0a 7b 0a 20 20 20 20 69 66 20 28 24 6f 62 6a 2d 3e 67 65 74 43 6f 64 65 28 29 20 3d 3d 20 44 42 .{.....if.($obj->getCode().==.DB
52240 5f 45 52 52 4f 52 29 20 7b 0a 20 20 20 20 20 20 20 20 70 72 69 6e 74 20 22 20 20 75 6e 6b 6e 6f _ERROR).{.........print."..unkno
52260 77 6e 3a 20 22 2e 24 6f 62 6a 2d 3e 67 65 74 55 73 65 72 49 6e 66 6f 28 29 2e 22 5c 6e 22 3b 0a wn:.".$obj->getUserInfo()."\n";.
52280 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 20 24 6d 73 67 20 3d 20 24 6f 62 6a ....}.else.{.........$msg.=.$obj
522a0 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 3b 0a 20 20 20 20 20 20 20 20 70 72 69 6e 74 20 22 20 ->getMessage();.........print.".
522c0 20 24 6d 73 67 22 3b 0a 20 20 20 20 20 20 20 20 69 66 20 28 73 75 62 73 74 72 28 24 6d 73 67 2c .$msg";.........if.(substr($msg,
522e0 20 2d 31 29 20 21 3d 20 22 5c 6e 22 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 70 72 69 6e .-1).!=."\n").{.............prin
52300 74 20 22 5c 6e 22 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 7d 0a 7d 0a 0a 24 64 62 68 2d t."\n";.........}.....}.}..$dbh-
52320 3e 73 65 74 45 72 72 6f 72 48 61 6e 64 6c 69 6e 67 28 50 45 41 52 5f 45 52 52 4f 52 5f 43 41 4c >setErrorHandling(PEAR_ERROR_CAL
52340 4c 42 41 43 4b 2c 20 22 65 72 72 68 61 6e 64 6c 65 72 22 29 3b 0a 0a 70 72 69 6e 74 20 22 54 72 LBACK,."errhandler");..print."Tr
52360 79 69 6e 67 20 74 6f 20 70 72 6f 76 6f 6b 65 20 44 42 5f 45 52 52 4f 52 5f 4e 4f 53 55 43 48 54 ying.to.provoke.DB_ERROR_NOSUCHT
52380 41 42 4c 45 5c 6e 22 3b 0a 24 64 62 68 2d 3e 71 75 65 72 79 28 22 53 45 4c 45 43 54 20 2a 20 46 ABLE\n";.$dbh->query("SELECT.*.F
523a0 52 4f 4d 20 74 61 62 6c 65 54 68 61 74 44 6f 65 73 4e 6f 74 45 78 69 73 74 22 29 3b 0a 0a 70 72 ROM.tableThatDoesNotExist");..pr
523c0 69 6e 74 20 22 54 72 79 69 6e 67 20 74 6f 20 70 72 6f 76 6f 6b 65 20 44 42 5f 45 52 52 4f 52 5f int."Trying.to.provoke.DB_ERROR_
523e0 41 4c 52 45 41 44 59 5f 45 58 49 53 54 53 5c 6e 22 3b 0a 24 64 62 68 2d 3e 71 75 65 72 79 28 24 ALREADY_EXISTS\n";.$dbh->query($
52400 74 65 73 74 5f 6d 6b 74 61 62 6c 65 5f 71 75 65 72 79 29 3b 0a 0a 70 72 69 6e 74 20 22 54 72 79 test_mktable_query);..print."Try
52420 69 6e 67 20 74 6f 20 70 72 6f 76 6f 6b 65 20 44 42 5f 45 52 52 4f 52 5f 4e 4f 53 55 43 48 54 41 ing.to.provoke.DB_ERROR_NOSUCHTA
52440 42 4c 45 5c 6e 22 3b 0a 24 64 62 68 2d 3e 71 75 65 72 79 28 22 44 52 4f 50 20 54 41 42 4c 45 20 BLE\n";.$dbh->query("DROP.TABLE.
52460 74 61 62 6c 65 54 68 61 74 44 6f 65 73 4e 6f 74 45 78 69 73 74 22 29 3b 0a 0a 70 72 69 6e 74 20 tableThatDoesNotExist");..print.
52480 22 54 72 79 69 6e 67 20 74 6f 20 70 72 6f 76 6f 6b 65 20 44 42 5f 45 52 52 4f 52 5f 43 4f 4e 53 "Trying.to.provoke.DB_ERROR_CONS
524a0 54 52 41 49 4e 54 5c 6e 22 3b 0a 24 64 62 68 2d 3e 73 65 74 45 72 72 6f 72 48 61 6e 64 6c 69 6e TRAINT\n";.$dbh->setErrorHandlin
524c0 67 28 50 45 41 52 5f 45 52 52 4f 52 5f 52 45 54 55 52 4e 29 3b 0a 24 64 62 68 2d 3e 71 75 65 72 g(PEAR_ERROR_RETURN);.$dbh->quer
524e0 79 28 22 44 52 4f 50 20 54 41 42 4c 45 20 62 22 29 3b 0a 24 64 62 68 2d 3e 71 75 65 72 79 28 22 y("DROP.TABLE.b");.$dbh->query("
52500 44 52 4f 50 20 54 41 42 4c 45 20 61 22 29 3b 0a 24 64 62 68 2d 3e 73 65 74 45 72 72 6f 72 48 61 DROP.TABLE.a");.$dbh->setErrorHa
52520 6e 64 6c 69 6e 67 28 50 45 41 52 5f 45 52 52 4f 52 5f 43 41 4c 4c 42 41 43 4b 2c 20 22 65 72 72 ndling(PEAR_ERROR_CALLBACK,."err
52540 68 61 6e 64 6c 65 72 22 29 3b 0a 24 64 62 68 2d 3e 71 75 65 72 79 28 22 43 52 45 41 54 45 20 54 handler");.$dbh->query("CREATE.T
52560 41 42 4c 45 20 61 20 28 61 20 49 4e 54 45 47 45 52 20 4e 4f 54 20 4e 55 4c 4c 2c 20 50 52 49 4d ABLE.a.(a.INTEGER.NOT.NULL,.PRIM
52580 41 52 59 20 4b 45 59 28 61 29 29 22 29 3b 0a 24 64 62 68 2d 3e 71 75 65 72 79 28 22 43 52 45 41 ARY.KEY(a))");.$dbh->query("CREA
525a0 54 45 20 54 41 42 4c 45 20 62 20 28 62 20 49 4e 54 45 47 45 52 20 52 45 46 45 52 45 4e 43 45 53 TE.TABLE.b.(b.INTEGER.REFERENCES
525c0 20 61 28 61 29 29 22 29 3b 0a 24 64 62 68 2d 3e 71 75 65 72 79 28 22 49 4e 53 45 52 54 20 49 4e .a(a))");.$dbh->query("INSERT.IN
525e0 54 4f 20 61 20 56 41 4c 55 45 53 28 31 29 22 29 3b 0a 24 64 62 68 2d 3e 71 75 65 72 79 28 22 49 TO.a.VALUES(1)");.$dbh->query("I
52600 4e 53 45 52 54 20 49 4e 54 4f 20 62 20 56 41 4c 55 45 53 28 32 29 22 29 3b 0a 0a 70 72 69 6e 74 NSERT.INTO.b.VALUES(2)");..print
52620 20 22 54 72 79 69 6e 67 20 74 6f 20 70 72 6f 76 6f 6b 65 20 44 42 5f 45 52 52 4f 52 5f 44 49 56 ."Trying.to.provoke.DB_ERROR_DIV
52640 5a 45 52 4f 5c 6e 22 3b 0a 2f 2f 20 49 6e 74 65 72 62 61 73 65 20 64 65 74 65 63 74 73 20 74 68 ZERO\n";.//.Interbase.detects.th
52660 65 20 65 72 72 6f 72 20 6f 6e 20 66 65 74 63 68 69 6e 67 0a 24 64 62 68 2d 3e 67 65 74 41 6c 6c e.error.on.fetching.$dbh->getAll
52680 28 22 53 45 4c 45 43 54 20 30 2f 30 20 46 52 4f 4d 20 70 68 70 74 65 73 74 22 29 3b 0a 0a 70 72 ("SELECT.0/0.FROM.phptest");..pr
526a0 69 6e 74 20 22 54 72 79 69 6e 67 20 74 6f 20 70 72 6f 76 6f 6b 65 20 44 42 5f 45 52 52 4f 52 5f int."Trying.to.provoke.DB_ERROR_
526c0 49 4e 56 41 4c 49 44 5f 4e 55 4d 42 45 52 5c 6e 22 3b 0a 24 64 62 68 2d 3e 71 75 65 72 79 28 22 INVALID_NUMBER\n";.$dbh->query("
526e0 55 50 44 41 54 45 20 70 68 70 74 65 73 74 20 53 45 54 20 61 20 3d 20 27 61 62 63 27 20 57 48 45 UPDATE.phptest.SET.a.=.'abc'.WHE
52700 52 45 20 61 20 3d 20 34 32 22 29 3b 0a 0a 70 72 69 6e 74 20 22 54 72 79 69 6e 67 20 74 6f 20 70 RE.a.=.42");..print."Trying.to.p
52720 72 6f 76 6f 6b 65 20 44 42 5f 45 52 52 4f 52 5f 4e 4f 53 55 43 48 46 49 45 4c 44 5c 6e 22 3b 0a rovoke.DB_ERROR_NOSUCHFIELD\n";.
52740 24 64 62 68 2d 3e 71 75 65 72 79 28 22 53 45 4c 45 43 54 20 65 20 46 52 4f 4d 20 70 68 70 74 65 $dbh->query("SELECT.e.FROM.phpte
52760 73 74 22 29 3b 0a 0a 70 72 69 6e 74 20 22 54 72 79 69 6e 67 20 74 6f 20 70 72 6f 76 6f 6b 65 20 st");..print."Trying.to.provoke.
52780 44 42 5f 45 52 52 4f 52 5f 53 59 4e 54 41 58 5c 6e 22 3b 0a 24 64 62 68 2d 3e 71 75 65 72 79 28 DB_ERROR_SYNTAX\n";.$dbh->query(
527a0 22 43 52 45 41 54 45 22 29 3b 0a 0a 3f 3e 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 "CREATE");..?>..................
527c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
527e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
52800 44 42 2d 31 2e 35 2e 30 52 43 31 2f 74 65 73 74 73 2f 66 65 74 63 68 6d 6f 64 65 5f 6f 62 6a 65 DB-1.5.0RC1/tests/fetchmode_obje
52820 63 74 2e 69 6e 63 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ct.inc..........................
52840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
52860 00 00 00 00 31 30 30 36 34 34 20 00 20 20 20 37 36 34 20 00 20 20 20 31 34 34 20 00 20 20 20 20 ....100644.....764.....144......
52880 20 20 20 32 33 30 36 20 20 37 34 36 37 34 31 34 37 32 34 20 20 31 32 36 31 33 20 00 00 00 00 00 ...2306..7467414724..12613......
528a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
528c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
528e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
52900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
52920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
52940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
52960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
52980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
529a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
529c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
529e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
52a00 3c 3f 70 68 70 0a 65 72 72 6f 72 5f 72 65 70 6f 72 74 69 6e 67 28 45 5f 41 4c 4c 29 3b 0a 66 75 <?php.error_reporting(E_ALL);.fu
52a20 6e 63 74 69 6f 6e 20 70 65 28 24 6f 62 6a 29 20 7b 0a 20 20 20 20 64 69 65 28 24 6f 62 6a 2d 3e nction.pe($obj).{.....die($obj->
52a40 67 65 74 4d 65 73 73 61 67 65 28 29 20 2e 20 22 5c 6e 22 20 2e 20 24 6f 62 6a 2d 3e 67 65 74 44 getMessage()..."\n"...$obj->getD
52a60 65 62 75 67 49 6e 66 6f 28 29 29 3b 0a 7d 0a 0a 66 75 6e 63 74 69 6f 6e 20 70 72 69 6e 74 5f 6f ebugInfo());.}..function.print_o
52a80 62 6a 28 26 24 6f 62 6a 29 20 7b 0a 20 20 20 20 69 66 20 28 21 69 73 5f 6f 62 6a 65 63 74 28 24 bj(&$obj).{.....if.(!is_object($
52aa0 6f 62 6a 29 29 20 7b 0a 20 20 20 20 20 20 20 20 65 63 68 6f 20 22 45 52 52 4f 52 3a 20 6e 6f 20 obj)).{.........echo."ERROR:.no.
52ac0 6f 62 6a 65 63 74 21 5c 6e 22 3b 0a 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 object!\n";.....}.else.{........
52ae0 20 65 63 68 6f 20 67 65 74 5f 63 6c 61 73 73 28 24 6f 62 6a 29 20 2e 20 22 20 2d 3e 20 22 20 2e .echo.get_class($obj)...".->."..
52b00 20 69 6d 70 6c 6f 64 65 28 22 20 22 2c 20 61 72 72 61 79 5f 6b 65 79 73 28 28 61 72 72 61 79 29 .implode(".",.array_keys((array)
52b20 24 6f 62 6a 29 29 20 2e 20 22 5c 6e 22 3b 0a 20 20 20 20 7d 0a 7d 0a 0a 24 64 62 68 2d 3e 73 65 $obj))..."\n";.....}.}..$dbh->se
52b40 74 45 72 72 6f 72 48 61 6e 64 6c 69 6e 67 28 50 45 41 52 5f 45 52 52 4f 52 5f 43 41 4c 4c 42 41 tErrorHandling(PEAR_ERROR_CALLBA
52b60 43 4b 2c 20 27 70 65 27 29 3b 0a 0a 65 63 68 6f 20 22 2d 2d 2d 20 66 65 74 63 68 20 77 69 74 68 CK,.'pe');..echo."---.fetch.with
52b80 20 70 61 72 61 6d 20 44 42 5f 46 45 54 43 48 4d 4f 44 45 5f 4f 42 4a 45 43 54 20 2d 2d 2d 5c 6e .param.DB_FETCHMODE_OBJECT.---\n
52ba0 22 3b 0a 24 73 74 68 20 3d 20 24 64 62 68 2d 3e 71 75 65 72 79 28 22 53 45 4c 45 43 54 20 2a 20 ";.$sth.=.$dbh->query("SELECT.*.
52bc0 46 52 4f 4d 20 70 68 70 74 65 73 74 22 29 3b 0a 24 72 6f 77 20 3d 20 24 73 74 68 2d 3e 66 65 74 FROM.phptest");.$row.=.$sth->fet
52be0 63 68 52 6f 77 28 44 42 5f 46 45 54 43 48 4d 4f 44 45 5f 4f 42 4a 45 43 54 29 3b 0a 70 72 69 6e chRow(DB_FETCHMODE_OBJECT);.prin
52c00 74 5f 6f 62 6a 28 24 72 6f 77 29 3b 0a 24 73 74 68 20 3d 20 24 64 62 68 2d 3e 71 75 65 72 79 28 t_obj($row);.$sth.=.$dbh->query(
52c20 22 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 70 68 70 74 65 73 74 22 29 3b 0a 24 73 74 68 2d 3e "SELECT.*.FROM.phptest");.$sth->
52c40 66 65 74 63 68 49 6e 74 6f 28 24 72 6f 77 2c 20 44 42 5f 46 45 54 43 48 4d 4f 44 45 5f 4f 42 4a fetchInto($row,.DB_FETCHMODE_OBJ
52c60 45 43 54 29 3b 0a 70 72 69 6e 74 5f 6f 62 6a 28 24 72 6f 77 29 3b 0a 0a 65 63 68 6f 20 22 2d 2d ECT);.print_obj($row);..echo."--
52c80 2d 20 66 65 74 63 68 20 77 69 74 68 20 64 65 66 61 75 6c 74 20 66 65 74 63 68 6d 6f 64 65 20 44 -.fetch.with.default.fetchmode.D
52ca0 42 5f 46 45 54 43 48 4d 4f 44 45 5f 4f 42 4a 45 43 54 20 2d 2d 2d 5c 6e 22 3b 0a 24 64 62 68 2d B_FETCHMODE_OBJECT.---\n";.$dbh-
52cc0 3e 73 65 74 46 65 74 63 68 4d 6f 64 65 28 44 42 5f 46 45 54 43 48 4d 4f 44 45 5f 4f 42 4a 45 43 >setFetchMode(DB_FETCHMODE_OBJEC
52ce0 54 29 3b 0a 24 73 74 68 20 3d 20 24 64 62 68 2d 3e 71 75 65 72 79 28 22 53 45 4c 45 43 54 20 2a T);.$sth.=.$dbh->query("SELECT.*
52d00 20 46 52 4f 4d 20 70 68 70 74 65 73 74 22 29 3b 0a 24 72 6f 77 20 3d 20 24 73 74 68 2d 3e 66 65 .FROM.phptest");.$row.=.$sth->fe
52d20 74 63 68 52 6f 77 28 29 3b 0a 70 72 69 6e 74 5f 6f 62 6a 28 24 72 6f 77 29 3b 0a 24 73 74 68 20 tchRow();.print_obj($row);.$sth.
52d40 3d 20 24 64 62 68 2d 3e 71 75 65 72 79 28 22 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 70 68 70 =.$dbh->query("SELECT.*.FROM.php
52d60 74 65 73 74 22 29 3b 0a 24 73 74 68 2d 3e 66 65 74 63 68 49 6e 74 6f 28 24 72 6f 77 29 3b 0a 70 test");.$sth->fetchInto($row);.p
52d80 72 69 6e 74 5f 6f 62 6a 28 24 72 6f 77 29 3b 0a 0a 65 63 68 6f 20 22 2d 2d 2d 20 66 65 74 63 68 rint_obj($row);..echo."---.fetch
52da0 20 77 69 74 68 20 64 65 66 61 75 6c 74 20 66 65 74 63 68 6d 6f 64 65 20 44 42 5f 46 45 54 43 48 .with.default.fetchmode.DB_FETCH
52dc0 4d 4f 44 45 5f 4f 42 4a 45 43 54 20 61 6e 64 20 63 6c 61 73 73 20 44 42 5f 52 6f 77 20 2d 2d 2d MODE_OBJECT.and.class.DB_Row.---
52de0 5c 6e 22 3b 0a 24 64 62 68 2d 3e 73 65 74 46 65 74 63 68 4d 6f 64 65 28 44 42 5f 46 45 54 43 48 \n";.$dbh->setFetchMode(DB_FETCH
52e00 4d 4f 44 45 5f 4f 42 4a 45 43 54 2c 20 27 44 42 5f 52 6f 77 27 29 3b 0a 24 73 74 68 20 3d 20 24 MODE_OBJECT,.'DB_Row');.$sth.=.$
52e20 64 62 68 2d 3e 71 75 65 72 79 28 22 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 70 68 70 74 65 73 dbh->query("SELECT.*.FROM.phptes
52e40 74 22 29 3b 0a 24 72 6f 77 20 3d 20 24 73 74 68 2d 3e 66 65 74 63 68 52 6f 77 28 29 3b 0a 70 72 t");.$row.=.$sth->fetchRow();.pr
52e60 69 6e 74 5f 6f 62 6a 28 24 72 6f 77 29 3b 0a 24 73 74 68 20 3d 20 24 64 62 68 2d 3e 71 75 65 72 int_obj($row);.$sth.=.$dbh->quer
52e80 79 28 22 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 70 68 70 74 65 73 74 22 29 3b 0a 24 73 74 68 y("SELECT.*.FROM.phptest");.$sth
52ea0 2d 3e 66 65 74 63 68 49 6e 74 6f 28 24 72 6f 77 29 3b 0a 70 72 69 6e 74 5f 6f 62 6a 28 24 72 6f ->fetchInto($row);.print_obj($ro
52ec0 77 29 3b 0a 3f 3e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 w);.?>..........................
52ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
52f00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
52f20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
52f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
52f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
52f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
52fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
52fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
52fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
53000 44 42 2d 31 2e 35 2e 30 52 43 31 2f 74 65 73 74 73 2f 66 65 74 63 68 6d 6f 64 65 73 2e 69 6e 63 DB-1.5.0RC1/tests/fetchmodes.inc
53020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
53040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
53060 00 00 00 00 31 30 30 36 34 34 20 00 20 20 20 37 36 34 20 00 20 20 20 31 34 34 20 00 20 20 20 20 ....100644.....764.....144......
53080 20 20 20 34 34 31 32 20 20 37 34 36 37 34 31 34 37 32 34 20 20 31 31 34 35 30 20 00 00 00 00 00 ...4412..7467414724..11450......
530a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
530c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
530e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
53100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
53120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
53140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
53160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
53180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
531a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
531c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
531e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
53200 3c 3f 70 68 70 0a 0a 24 64 62 68 2d 3e 73 65 74 45 72 72 6f 72 48 61 6e 64 6c 69 6e 67 28 50 45 <?php..$dbh->setErrorHandling(PE
53220 41 52 5f 45 52 52 4f 52 5f 44 49 45 29 3b 0a 0a 70 72 69 6e 74 20 22 74 65 73 74 69 6e 67 20 66 AR_ERROR_DIE);..print."testing.f
53240 65 74 63 68 6d 6f 64 65 73 3a 20 66 65 74 63 68 72 6f 77 20 64 65 66 61 75 6c 74 20 64 65 66 61 etchmodes:.fetchrow.default.defa
53260 75 6c 74 5c 6e 22 3b 0a 24 73 74 68 20 3d 20 24 64 62 68 2d 3e 71 75 65 72 79 28 22 53 45 4c 45 ult\n";.$sth.=.$dbh->query("SELE
53280 43 54 20 2a 20 46 52 4f 4d 20 70 68 70 74 65 73 74 22 29 3b 0a 24 72 6f 77 20 3d 20 24 73 74 68 CT.*.FROM.phptest");.$row.=.$sth
532a0 2d 3e 66 65 74 63 68 52 6f 77 28 29 3b 0a 70 72 69 6e 74 20 69 6d 70 6c 6f 64 65 28 22 20 22 2c ->fetchRow();.print.implode(".",
532c0 20 61 72 72 61 79 5f 6b 65 79 73 28 24 72 6f 77 29 29 2e 22 5c 6e 22 3b 0a 0a 70 72 69 6e 74 20 .array_keys($row))."\n";..print.
532e0 22 74 65 73 74 69 6e 67 20 66 65 74 63 68 6d 6f 64 65 73 3a 20 66 65 74 63 68 69 6e 74 6f 20 64 "testing.fetchmodes:.fetchinto.d
53300 65 66 61 75 6c 74 20 64 65 66 61 75 6c 74 5c 6e 22 3b 0a 24 73 74 68 20 3d 20 24 64 62 68 2d 3e efault.default\n";.$sth.=.$dbh->
53320 71 75 65 72 79 28 22 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 70 68 70 74 65 73 74 22 29 3b 0a query("SELECT.*.FROM.phptest");.
53340 24 72 6f 77 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 73 74 68 2d 3e 66 65 74 63 68 49 6e 74 6f 28 $row.=.array();.$sth->fetchInto(
53360 24 72 6f 77 29 3b 0a 70 72 69 6e 74 20 69 6d 70 6c 6f 64 65 28 22 20 22 2c 20 61 72 72 61 79 5f $row);.print.implode(".",.array_
53380 6b 65 79 73 28 24 72 6f 77 29 29 2e 22 5c 6e 22 3b 0a 0a 70 72 69 6e 74 20 22 74 65 73 74 69 6e keys($row))."\n";..print."testin
533a0 67 20 66 65 74 63 68 6d 6f 64 65 73 3a 20 66 65 74 63 68 72 6f 77 20 6f 72 64 65 72 65 64 20 64 g.fetchmodes:.fetchrow.ordered.d
533c0 65 66 61 75 6c 74 5c 6e 22 3b 0a 24 64 62 68 2d 3e 73 65 74 46 65 74 63 68 4d 6f 64 65 28 44 42 efault\n";.$dbh->setFetchMode(DB
533e0 5f 46 45 54 43 48 4d 4f 44 45 5f 4f 52 44 45 52 45 44 29 3b 0a 24 73 74 68 20 3d 20 24 64 62 68 _FETCHMODE_ORDERED);.$sth.=.$dbh
53400 2d 3e 71 75 65 72 79 28 22 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 70 68 70 74 65 73 74 22 29 ->query("SELECT.*.FROM.phptest")
53420 3b 0a 24 72 6f 77 20 3d 20 24 73 74 68 2d 3e 66 65 74 63 68 52 6f 77 28 29 3b 0a 70 72 69 6e 74 ;.$row.=.$sth->fetchRow();.print
53440 20 69 6d 70 6c 6f 64 65 28 22 20 22 2c 20 61 72 72 61 79 5f 6b 65 79 73 28 24 72 6f 77 29 29 2e .implode(".",.array_keys($row)).
53460 22 5c 6e 22 3b 0a 0a 70 72 69 6e 74 20 22 74 65 73 74 69 6e 67 20 66 65 74 63 68 6d 6f 64 65 73 "\n";..print."testing.fetchmodes
53480 3a 20 66 65 74 63 68 72 6f 77 20 61 73 73 6f 63 20 64 65 66 61 75 6c 74 5c 6e 22 3b 0a 24 64 62 :.fetchrow.assoc.default\n";.$db
534a0 68 2d 3e 73 65 74 46 65 74 63 68 4d 6f 64 65 28 44 42 5f 46 45 54 43 48 4d 4f 44 45 5f 41 53 53 h->setFetchMode(DB_FETCHMODE_ASS
534c0 4f 43 29 3b 0a 24 73 74 68 20 3d 20 24 64 62 68 2d 3e 71 75 65 72 79 28 22 53 45 4c 45 43 54 20 OC);.$sth.=.$dbh->query("SELECT.
534e0 2a 20 46 52 4f 4d 20 70 68 70 74 65 73 74 22 29 3b 0a 24 72 6f 77 20 3d 20 24 73 74 68 2d 3e 66 *.FROM.phptest");.$row.=.$sth->f
53500 65 74 63 68 52 6f 77 28 29 3b 0a 70 72 69 6e 74 20 69 6d 70 6c 6f 64 65 28 22 20 22 2c 20 61 72 etchRow();.print.implode(".",.ar
53520 72 61 79 5f 6b 65 79 73 28 24 72 6f 77 29 29 2e 22 5c 6e 22 3b 0a 0a 70 72 69 6e 74 20 22 74 65 ray_keys($row))."\n";..print."te
53540 73 74 69 6e 67 20 66 65 74 63 68 6d 6f 64 65 73 3a 20 66 65 74 63 68 72 6f 77 20 6f 72 64 65 72 sting.fetchmodes:.fetchrow.order
53560 65 64 20 64 65 66 61 75 6c 74 20 77 69 74 68 20 61 73 73 6f 63 20 73 70 65 63 69 66 69 65 64 5c ed.default.with.assoc.specified\
53580 6e 22 3b 0a 24 64 62 68 2d 3e 73 65 74 46 65 74 63 68 4d 6f 64 65 28 44 42 5f 46 45 54 43 48 4d n";.$dbh->setFetchMode(DB_FETCHM
535a0 4f 44 45 5f 4f 52 44 45 52 45 44 29 3b 0a 24 73 74 68 20 3d 20 24 64 62 68 2d 3e 71 75 65 72 79 ODE_ORDERED);.$sth.=.$dbh->query
535c0 28 22 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 70 68 70 74 65 73 74 22 29 3b 0a 24 72 6f 77 20 ("SELECT.*.FROM.phptest");.$row.
535e0 3d 20 24 73 74 68 2d 3e 66 65 74 63 68 52 6f 77 28 44 42 5f 46 45 54 43 48 4d 4f 44 45 5f 41 53 =.$sth->fetchRow(DB_FETCHMODE_AS
53600 53 4f 43 29 3b 0a 70 72 69 6e 74 20 69 6d 70 6c 6f 64 65 28 22 20 22 2c 20 61 72 72 61 79 5f 6b SOC);.print.implode(".",.array_k
53620 65 79 73 28 24 72 6f 77 29 29 2e 22 5c 6e 22 3b 0a 0a 70 72 69 6e 74 20 22 74 65 73 74 69 6e 67 eys($row))."\n";..print."testing
53640 20 66 65 74 63 68 6d 6f 64 65 73 3a 20 66 65 74 63 68 72 6f 77 20 61 73 73 6f 63 20 64 65 66 61 .fetchmodes:.fetchrow.assoc.defa
53660 75 6c 74 20 77 69 74 68 20 6f 72 64 65 72 65 64 20 73 70 65 63 69 66 69 65 64 5c 6e 22 3b 0a 24 ult.with.ordered.specified\n";.$
53680 64 62 68 2d 3e 73 65 74 46 65 74 63 68 4d 6f 64 65 28 44 42 5f 46 45 54 43 48 4d 4f 44 45 5f 41 dbh->setFetchMode(DB_FETCHMODE_A
536a0 53 53 4f 43 29 3b 0a 24 73 74 68 20 3d 20 24 64 62 68 2d 3e 71 75 65 72 79 28 22 53 45 4c 45 43 SSOC);.$sth.=.$dbh->query("SELEC
536c0 54 20 2a 20 46 52 4f 4d 20 70 68 70 74 65 73 74 22 29 3b 0a 24 72 6f 77 20 3d 20 24 73 74 68 2d T.*.FROM.phptest");.$row.=.$sth-
536e0 3e 66 65 74 63 68 52 6f 77 28 44 42 5f 46 45 54 43 48 4d 4f 44 45 5f 4f 52 44 45 52 45 44 29 3b >fetchRow(DB_FETCHMODE_ORDERED);
53700 0a 70 72 69 6e 74 20 69 6d 70 6c 6f 64 65 28 22 20 22 2c 20 61 72 72 61 79 5f 6b 65 79 73 28 24 .print.implode(".",.array_keys($
53720 72 6f 77 29 29 2e 22 5c 6e 22 3b 0a 0a 70 72 69 6e 74 20 22 74 65 73 74 69 6e 67 20 66 65 74 63 row))."\n";..print."testing.fetc
53740 68 6d 6f 64 65 73 3a 20 66 65 74 63 68 69 6e 74 6f 20 6f 72 64 65 72 65 64 20 64 65 66 61 75 6c hmodes:.fetchinto.ordered.defaul
53760 74 5c 6e 22 3b 0a 24 64 62 68 2d 3e 73 65 74 46 65 74 63 68 4d 6f 64 65 28 44 42 5f 46 45 54 43 t\n";.$dbh->setFetchMode(DB_FETC
53780 48 4d 4f 44 45 5f 4f 52 44 45 52 45 44 29 3b 0a 24 73 74 68 20 3d 20 24 64 62 68 2d 3e 71 75 65 HMODE_ORDERED);.$sth.=.$dbh->que
537a0 72 79 28 22 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 70 68 70 74 65 73 74 22 29 3b 0a 24 72 6f ry("SELECT.*.FROM.phptest");.$ro
537c0 77 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 73 74 68 2d 3e 66 65 74 63 68 49 6e 74 6f 28 24 72 6f w.=.array();.$sth->fetchInto($ro
537e0 77 29 3b 0a 70 72 69 6e 74 20 69 6d 70 6c 6f 64 65 28 22 20 22 2c 20 61 72 72 61 79 5f 6b 65 79 w);.print.implode(".",.array_key
53800 73 28 24 72 6f 77 29 29 2e 22 5c 6e 22 3b 0a 0a 70 72 69 6e 74 20 22 74 65 73 74 69 6e 67 20 66 s($row))."\n";..print."testing.f
53820 65 74 63 68 6d 6f 64 65 73 3a 20 66 65 74 63 68 69 6e 74 6f 20 61 73 73 6f 63 20 64 65 66 61 75 etchmodes:.fetchinto.assoc.defau
53840 6c 74 5c 6e 22 3b 0a 24 64 62 68 2d 3e 73 65 74 46 65 74 63 68 4d 6f 64 65 28 44 42 5f 46 45 54 lt\n";.$dbh->setFetchMode(DB_FET
53860 43 48 4d 4f 44 45 5f 41 53 53 4f 43 29 3b 0a 24 73 74 68 20 3d 20 24 64 62 68 2d 3e 71 75 65 72 CHMODE_ASSOC);.$sth.=.$dbh->quer
53880 79 28 22 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 70 68 70 74 65 73 74 22 29 3b 0a 24 72 6f 77 y("SELECT.*.FROM.phptest");.$row
538a0 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 73 74 68 2d 3e 66 65 74 63 68 49 6e 74 6f 28 24 72 6f 77 .=.array();.$sth->fetchInto($row
538c0 29 3b 0a 70 72 69 6e 74 20 69 6d 70 6c 6f 64 65 28 22 20 22 2c 20 61 72 72 61 79 5f 6b 65 79 73 );.print.implode(".",.array_keys
538e0 28 24 72 6f 77 29 29 2e 22 5c 6e 22 3b 0a 0a 70 72 69 6e 74 20 22 74 65 73 74 69 6e 67 20 66 65 ($row))."\n";..print."testing.fe
53900 74 63 68 6d 6f 64 65 73 3a 20 66 65 74 63 68 69 6e 74 6f 20 6f 72 64 65 72 65 64 20 64 65 66 61 tchmodes:.fetchinto.ordered.defa
53920 75 6c 74 20 77 69 74 68 20 61 73 73 6f 63 20 73 70 65 63 69 66 69 65 64 5c 6e 22 3b 0a 24 64 62 ult.with.assoc.specified\n";.$db
53940 68 2d 3e 73 65 74 46 65 74 63 68 4d 6f 64 65 28 44 42 5f 46 45 54 43 48 4d 4f 44 45 5f 4f 52 44 h->setFetchMode(DB_FETCHMODE_ORD
53960 45 52 45 44 29 3b 0a 24 73 74 68 20 3d 20 24 64 62 68 2d 3e 71 75 65 72 79 28 22 53 45 4c 45 43 ERED);.$sth.=.$dbh->query("SELEC
53980 54 20 2a 20 46 52 4f 4d 20 70 68 70 74 65 73 74 22 29 3b 0a 24 72 6f 77 20 3d 20 61 72 72 61 79 T.*.FROM.phptest");.$row.=.array
539a0 28 29 3b 0a 24 73 74 68 2d 3e 66 65 74 63 68 49 6e 74 6f 28 24 72 6f 77 2c 20 44 42 5f 46 45 54 ();.$sth->fetchInto($row,.DB_FET
539c0 43 48 4d 4f 44 45 5f 41 53 53 4f 43 29 3b 0a 70 72 69 6e 74 20 69 6d 70 6c 6f 64 65 28 22 20 22 CHMODE_ASSOC);.print.implode("."
539e0 2c 20 61 72 72 61 79 5f 6b 65 79 73 28 24 72 6f 77 29 29 2e 22 5c 6e 22 3b 0a 0a 70 72 69 6e 74 ,.array_keys($row))."\n";..print
53a00 20 22 74 65 73 74 69 6e 67 20 66 65 74 63 68 6d 6f 64 65 73 3a 20 66 65 74 63 68 69 6e 74 6f 20 ."testing.fetchmodes:.fetchinto.
53a20 61 73 73 6f 63 20 64 65 66 61 75 6c 74 20 77 69 74 68 20 6f 72 64 65 72 65 64 20 73 70 65 63 69 assoc.default.with.ordered.speci
53a40 66 69 65 64 5c 6e 22 3b 0a 24 64 62 68 2d 3e 73 65 74 46 65 74 63 68 4d 6f 64 65 28 44 42 5f 46 fied\n";.$dbh->setFetchMode(DB_F
53a60 45 54 43 48 4d 4f 44 45 5f 41 53 53 4f 43 29 3b 0a 24 73 74 68 20 3d 20 24 64 62 68 2d 3e 71 75 ETCHMODE_ASSOC);.$sth.=.$dbh->qu
53a80 65 72 79 28 22 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 70 68 70 74 65 73 74 22 29 3b 0a 24 72 ery("SELECT.*.FROM.phptest");.$r
53aa0 6f 77 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 73 74 68 2d 3e 66 65 74 63 68 49 6e 74 6f 28 24 72 ow.=.array();.$sth->fetchInto($r
53ac0 6f 77 2c 20 44 42 5f 46 45 54 43 48 4d 4f 44 45 5f 4f 52 44 45 52 45 44 29 3b 0a 70 72 69 6e 74 ow,.DB_FETCHMODE_ORDERED);.print
53ae0 20 69 6d 70 6c 6f 64 65 28 22 20 22 2c 20 61 72 72 61 79 5f 6b 65 79 73 28 24 72 6f 77 29 29 2e .implode(".",.array_keys($row)).
53b00 22 5c 6e 22 3b 0a 0a 3f 3e 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 "\n";..?>.......................
53b20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
53b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
53b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
53b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
53ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
53bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
53be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
53c00 44 42 2d 31 2e 35 2e 30 52 43 31 2f 74 65 73 74 73 2f 66 65 74 63 68 72 6f 77 2e 69 6e 63 00 00 DB-1.5.0RC1/tests/fetchrow.inc..
53c20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
53c40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
53c60 00 00 00 00 31 30 30 36 34 34 20 00 20 20 20 37 36 34 20 00 20 20 20 31 34 34 20 00 20 20 20 20 ....100644.....764.....144......
53c80 20 20 20 31 32 36 31 20 20 37 34 36 37 34 31 34 37 32 34 20 20 31 31 31 34 37 20 00 00 00 00 00 ...1261..7467414724..11147......
53ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
53cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
53ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
53d00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
53d20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
53d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
53d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
53d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
53da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
53dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
53de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
53e00 3c 3f 70 68 70 0a 0a 24 64 62 68 2d 3e 73 65 74 45 72 72 6f 72 48 61 6e 64 6c 69 6e 67 28 50 45 <?php..$dbh->setErrorHandling(PE
53e20 41 52 5f 45 52 52 4f 52 5f 44 49 45 29 3b 0a 24 64 62 68 2d 3e 71 75 65 72 79 28 22 49 4e 53 45 AR_ERROR_DIE);.$dbh->query("INSE
53e40 52 54 20 49 4e 54 4f 20 70 68 70 74 65 73 74 20 56 41 4c 55 45 53 28 31 2c 20 27 6f 6e 65 27 2c RT.INTO.phptest.VALUES(1,.'one',
53e60 20 27 4f 6e 65 27 2c 20 27 32 30 30 31 2d 30 32 2d 31 36 27 29 22 29 3b 0a 24 64 62 68 2d 3e 71 .'One',.'2001-02-16')");.$dbh->q
53e80 75 65 72 79 28 22 49 4e 53 45 52 54 20 49 4e 54 4f 20 70 68 70 74 65 73 74 20 56 41 4c 55 45 53 uery("INSERT.INTO.phptest.VALUES
53ea0 28 32 2c 20 27 74 77 6f 27 2c 20 27 54 77 6f 27 2c 20 27 32 30 30 31 2d 30 32 2d 31 35 27 29 22 (2,.'two',.'Two',.'2001-02-15')"
53ec0 29 3b 0a 24 64 62 68 2d 3e 71 75 65 72 79 28 22 49 4e 53 45 52 54 20 49 4e 54 4f 20 70 68 70 74 );.$dbh->query("INSERT.INTO.phpt
53ee0 65 73 74 20 56 41 4c 55 45 53 28 33 2c 20 27 74 68 72 65 65 27 2c 20 27 54 68 72 65 65 27 2c 20 est.VALUES(3,.'three',.'Three',.
53f00 27 32 30 30 31 2d 30 32 2d 31 34 27 29 22 29 3b 0a 0a 70 72 69 6e 74 20 22 74 65 73 74 69 6e 67 '2001-02-14')");..print."testing
53f20 20 66 65 74 63 68 72 6f 77 3a 5c 6e 22 3b 0a 24 73 74 68 20 3d 20 24 64 62 68 2d 3e 71 75 65 72 .fetchrow:\n";.$sth.=.$dbh->quer
53f40 79 28 22 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 70 68 70 74 65 73 74 22 29 3b 0a 66 6f 72 20 y("SELECT.*.FROM.phptest");.for.
53f60 28 24 69 20 3d 20 31 3b 20 24 69 20 3c 3d 20 35 3b 20 24 69 2b 2b 29 20 7b 0a 20 20 20 20 70 72 ($i.=.1;.$i.<=.5;.$i++).{.....pr
53f80 69 6e 74 20 22 72 6f 77 20 24 69 3a 20 22 3b 0a 20 20 20 20 24 72 6f 77 20 3d 20 24 73 74 68 2d int."row.$i:.";.....$row.=.$sth-
53fa0 3e 66 65 74 63 68 52 6f 77 28 29 3b 0a 20 20 20 20 69 66 20 28 44 42 3a 3a 69 73 45 72 72 6f 72 >fetchRow();.....if.(DB::isError
53fc0 28 24 72 6f 77 29 29 20 7b 0a 20 20 20 20 20 20 20 20 70 72 69 6e 74 20 24 72 6f 77 2d 3e 74 6f ($row)).{.........print.$row->to
53fe0 53 74 72 69 6e 67 28 29 20 2e 20 22 5c 6e 22 3b 0a 20 20 20 20 20 20 20 20 63 6f 6e 74 69 6e 75 String()..."\n";.........continu
54000 65 3b 0a 20 20 20 20 7d 0a 20 20 20 20 69 66 20 28 69 73 5f 61 72 72 61 79 28 24 72 6f 77 29 29 e;.....}.....if.(is_array($row))
54020 20 7b 0a 20 20 20 20 20 20 20 20 70 72 69 6e 74 20 69 6d 70 6c 6f 64 65 28 22 2c 20 22 2c 20 24 .{.........print.implode(",.",.$
54040 72 6f 77 29 20 2e 20 22 5c 6e 22 3b 0a 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 row)..."\n";.....}.else.{.......
54060 20 20 76 61 72 5f 64 75 6d 70 28 24 72 6f 77 29 3b 0a 20 20 20 20 7d 0a 7d 0a 0a 24 64 62 68 2d ..var_dump($row);.....}.}..$dbh-
54080 3e 71 75 65 72 79 28 22 44 45 4c 45 54 45 20 46 52 4f 4d 20 70 68 70 74 65 73 74 20 57 48 45 52 >query("DELETE.FROM.phptest.WHER
540a0 45 20 61 20 3c 3e 20 34 32 22 29 3b 0a 0a 3f 3e 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 E.a.<>.42");..?>................
540c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
540e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
541a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
541c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
541e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54200 44 42 2d 31 2e 35 2e 30 52 43 31 2f 74 65 73 74 73 2f 69 6e 63 6c 75 64 65 2e 69 6e 63 00 00 00 DB-1.5.0RC1/tests/include.inc...
54220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54260 00 00 00 00 31 30 30 36 34 34 20 00 20 20 20 37 36 34 20 00 20 20 20 31 34 34 20 00 20 20 20 20 ....100644.....764.....144......
54280 20 20 20 20 31 35 30 20 20 37 36 37 35 34 34 35 35 31 36 20 20 31 30 37 33 31 20 00 00 00 00 00 ....150..7675445516..10731......
542a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
542c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
542e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
543a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
543c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
543e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54400 3c 3f 70 68 70 0a 69 6e 69 5f 73 65 74 28 27 69 6e 63 6c 75 64 65 5f 70 61 74 68 27 2c 20 72 65 <?php.ini_set('include_path',.re
54420 61 6c 70 61 74 68 28 64 69 72 6e 61 6d 65 28 5f 5f 46 49 4c 45 5f 5f 29 20 2e 20 22 2f 2e 2e 22 alpath(dirname(__FILE__)..."/.."
54440 29 20 2e 20 22 3a 2e 3a 22 20 2e 20 69 6e 69 5f 67 65 74 28 27 69 6e 63 6c 75 64 65 5f 70 61 74 )...":.:"...ini_get('include_pat
54460 68 27 29 29 3b 0a 3f 3e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 h'));.?>........................
54480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
544a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
544c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
544e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
545a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
545c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
545e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54600 44 42 2d 31 2e 35 2e 30 52 43 31 2f 74 65 73 74 73 2f 6c 69 6d 69 74 2e 69 6e 63 00 00 00 00 00 DB-1.5.0RC1/tests/limit.inc.....
54620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54660 00 00 00 00 31 30 30 36 34 34 20 00 20 20 20 37 36 34 20 00 20 20 20 31 34 34 20 00 20 20 20 20 ....100644.....764.....144......
54680 20 20 20 31 37 33 32 20 20 37 34 36 37 34 31 34 37 32 34 20 20 31 30 34 34 37 20 00 00 00 00 00 ...1732..7467414724..10447......
546a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
546c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
546e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
547a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
547c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
547e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54800 3c 3f 70 68 70 0a 65 72 72 6f 72 5f 72 65 70 6f 72 74 69 6e 67 28 45 5f 41 4c 4c 29 3b 0a 66 75 <?php.error_reporting(E_ALL);.fu
54820 6e 63 74 69 6f 6e 20 70 65 28 24 6f 62 6a 29 20 7b 0a 20 20 20 20 64 69 65 28 24 6f 62 6a 2d 3e nction.pe($obj).{.....die($obj->
54840 67 65 74 4d 65 73 73 61 67 65 28 29 20 2e 20 22 5c 6e 22 20 2e 20 24 6f 62 6a 2d 3e 67 65 74 44 getMessage()..."\n"...$obj->getD
54860 65 62 75 67 49 6e 66 6f 28 29 29 3b 0a 7d 0a 24 64 62 68 2d 3e 73 65 74 45 72 72 6f 72 48 61 6e ebugInfo());.}.$dbh->setErrorHan
54880 64 6c 69 6e 67 28 50 45 41 52 5f 45 52 52 4f 52 5f 52 45 54 55 52 4e 29 3b 0a 24 64 62 68 2d 3e dling(PEAR_ERROR_RETURN);.$dbh->
548a0 71 75 65 72 79 28 22 44 52 4f 50 20 54 41 42 4c 45 20 70 68 70 5f 6c 69 6d 69 74 22 29 3b 0a 24 query("DROP.TABLE.php_limit");.$
548c0 64 62 68 2d 3e 73 65 74 45 72 72 6f 72 48 61 6e 64 6c 69 6e 67 28 50 45 41 52 5f 45 52 52 4f 52 dbh->setErrorHandling(PEAR_ERROR
548e0 5f 43 41 4c 4c 42 41 43 4b 2c 20 27 70 65 27 29 3b 0a 24 64 62 68 2d 3e 71 75 65 72 79 28 22 43 _CALLBACK,.'pe');.$dbh->query("C
54900 52 45 41 54 45 20 54 41 42 4c 45 20 70 68 70 5f 6c 69 6d 69 74 20 28 61 20 56 41 52 43 48 41 52 REATE.TABLE.php_limit.(a.VARCHAR
54920 28 32 30 29 29 22 29 3b 0a 24 66 72 6f 6d 20 20 20 20 3d 20 30 3b 0a 24 63 6f 75 6e 74 20 20 20 (20))");.$from....=.0;.$count...
54940 3d 20 31 30 3b 0a 24 6e 75 6d 72 6f 77 73 20 3d 20 33 30 3b 0a 0a 66 6f 72 20 28 24 69 3d 30 3b =.10;.$numrows.=.30;..for.($i=0;
54960 20 24 69 3c 3d 24 6e 75 6d 72 6f 77 73 2b 32 3b 20 24 69 2b 2b 29 20 7b 0a 20 20 20 20 24 64 62 .$i<=$numrows+2;.$i++).{.....$db
54980 68 2d 3e 71 75 65 72 79 28 22 49 4e 53 45 52 54 20 49 4e 54 4f 20 70 68 70 5f 6c 69 6d 69 74 20 h->query("INSERT.INTO.php_limit.
549a0 56 41 4c 55 45 53 28 27 72 65 73 75 6c 74 20 24 69 27 29 22 29 3b 0a 7d 0a 2f 2f 20 48 61 63 6b VALUES('result.$i')");.}.//.Hack
549c0 20 66 6f 72 20 75 70 70 65 72 20 63 61 73 65 20 63 6f 6c 20 72 65 74 75 72 6e 65 64 20 62 79 20 .for.upper.case.col.returned.by.
549e0 4f 72 61 63 6c 65 0a 69 66 20 28 24 64 62 68 2d 3e 64 73 6e 5b 27 70 68 70 74 79 70 65 27 5d 20 Oracle.if.($dbh->dsn['phptype'].
54a00 3d 3d 20 27 6f 63 69 38 27 20 26 26 0a 20 20 20 20 24 64 62 68 2d 3e 6f 70 74 69 6f 6e 73 5b 27 ==.'oci8'.&&.....$dbh->options['
54a20 6f 70 74 69 6d 69 7a 65 27 5d 20 21 3d 20 27 70 6f 72 74 61 62 69 6c 69 74 79 27 29 20 7b 0a 20 optimize'].!=.'portability').{..
54a40 20 20 20 24 6b 65 79 20 3d 20 27 41 27 3b 0a 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 24 6b 65 79 ...$key.=.'A';.}.else.{.....$key
54a60 20 3d 20 27 61 27 3b 0a 7d 0a 66 6f 72 20 28 24 69 20 3d 20 30 3b 20 24 69 20 3c 3d 20 33 3b 20 .=.'a';.}.for.($i.=.0;.$i.<=.3;.
54a80 24 69 2b 2b 29 20 7b 0a 20 20 20 20 24 66 72 6f 6d 20 3d 20 31 30 20 2a 20 24 69 3b 0a 20 20 20 $i++).{.....$from.=.10.*.$i;....
54aa0 20 24 72 65 73 20 3d 20 24 64 62 68 2d 3e 6c 69 6d 69 74 51 75 65 72 79 28 22 73 65 6c 65 63 74 .$res.=.$dbh->limitQuery("select
54ac0 20 2a 20 66 72 6f 6d 20 70 68 70 5f 6c 69 6d 69 74 22 2c 20 24 66 72 6f 6d 2c 20 24 63 6f 75 6e .*.from.php_limit",.$from,.$coun
54ae0 74 29 3b 0a 20 20 20 20 65 63 68 6f 20 22 3d 3d 3d 3d 3d 3d 3d 20 46 72 6f 6d 3a 20 24 66 72 6f t);.....echo."=======.From:.$fro
54b00 6d 20 7c 7c 20 4e 75 6d 62 65 72 20 6f 66 20 72 6f 77 73 20 74 6f 20 66 65 74 63 68 3a 20 24 63 m.||.Number.of.rows.to.fetch:.$c
54b20 6f 75 6e 74 20 3d 3d 3d 3d 3d 3d 3d 5c 6e 22 3b 0a 20 20 20 20 77 68 69 6c 65 20 28 24 72 6f 77 ount.=======\n";.....while.($row
54b40 20 3d 20 24 72 65 73 2d 3e 66 65 74 63 68 52 6f 77 28 44 42 5f 46 45 54 43 48 4d 4f 44 45 5f 41 .=.$res->fetchRow(DB_FETCHMODE_A
54b60 53 53 4f 43 29 29 20 7b 0a 20 20 20 20 20 20 20 20 65 63 68 6f 20 24 72 65 73 2d 3e 67 65 74 52 SSOC)).{.........echo.$res->getR
54b80 6f 77 43 6f 75 6e 74 65 72 28 29 20 2e 20 27 2e 2d 20 27 20 2e 20 24 72 6f 77 5b 24 6b 65 79 5d owCounter()...'.-.'...$row[$key]
54ba0 20 2e 20 22 5c 6e 22 3b 0a 20 20 20 20 7d 0a 7d 0a 2f 2f 24 64 62 68 2d 3e 71 75 65 72 79 28 22 ..."\n";.....}.}.//$dbh->query("
54bc0 44 52 4f 50 20 54 41 42 4c 45 20 70 68 70 5f 6c 69 6d 69 74 22 29 3b 0a 3f 3e 00 00 00 00 00 00 DROP.TABLE.php_limit");.?>......
54be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54c00 44 42 2d 31 2e 35 2e 30 52 43 31 2f 74 65 73 74 73 2f 6e 75 6d 63 6f 6c 73 2e 69 6e 63 00 00 00 DB-1.5.0RC1/tests/numcols.inc...
54c20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54c40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54c60 00 00 00 00 31 30 30 36 34 34 20 00 20 20 20 37 36 34 20 00 20 20 20 31 34 34 20 00 20 20 20 20 ....100644.....764.....144......
54c80 20 20 20 20 35 36 31 20 20 37 34 36 37 34 31 34 37 32 34 20 20 31 30 37 37 30 20 00 00 00 00 00 ....561..7467414724..10770......
54ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54d00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54d20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54e00 3c 3f 70 68 70 0a 0a 24 64 62 68 2d 3e 73 65 74 45 72 72 6f 72 48 61 6e 64 6c 69 6e 67 28 50 45 <?php..$dbh->setErrorHandling(PE
54e20 41 52 5f 45 52 52 4f 52 5f 44 49 45 29 3b 0a 24 73 74 68 20 3d 20 24 64 62 68 2d 3e 71 75 65 72 AR_ERROR_DIE);.$sth.=.$dbh->quer
54e40 79 28 22 53 45 4c 45 43 54 20 61 20 46 52 4f 4d 20 70 68 70 74 65 73 74 22 29 3b 0a 70 72 69 6e y("SELECT.a.FROM.phptest");.prin
54e60 74 66 28 22 25 64 5c 6e 22 2c 20 24 73 74 68 2d 3e 6e 75 6d 43 6f 6c 73 28 29 29 3b 0a 24 73 74 tf("%d\n",.$sth->numCols());.$st
54e80 68 20 3d 20 24 64 62 68 2d 3e 71 75 65 72 79 28 22 53 45 4c 45 43 54 20 61 2c 62 20 46 52 4f 4d h.=.$dbh->query("SELECT.a,b.FROM
54ea0 20 70 68 70 74 65 73 74 22 29 3b 0a 70 72 69 6e 74 66 28 22 25 64 5c 6e 22 2c 20 24 73 74 68 2d .phptest");.printf("%d\n",.$sth-
54ec0 3e 6e 75 6d 43 6f 6c 73 28 29 29 3b 0a 24 73 74 68 20 3d 20 24 64 62 68 2d 3e 71 75 65 72 79 28 >numCols());.$sth.=.$dbh->query(
54ee0 22 53 45 4c 45 43 54 20 61 2c 62 2c 63 20 46 52 4f 4d 20 70 68 70 74 65 73 74 22 29 3b 0a 70 72 "SELECT.a,b,c.FROM.phptest");.pr
54f00 69 6e 74 66 28 22 25 64 5c 6e 22 2c 20 24 73 74 68 2d 3e 6e 75 6d 43 6f 6c 73 28 29 29 3b 0a 24 intf("%d\n",.$sth->numCols());.$
54f20 73 74 68 20 3d 20 24 64 62 68 2d 3e 71 75 65 72 79 28 22 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d sth.=.$dbh->query("SELECT.*.FROM
54f40 20 70 68 70 74 65 73 74 22 29 3b 0a 70 72 69 6e 74 66 28 22 25 64 5c 6e 22 2c 20 24 73 74 68 2d .phptest");.printf("%d\n",.$sth-
54f60 3e 6e 75 6d 43 6f 6c 73 28 29 29 3b 0a 0a 3f 3e 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 >numCols());..?>................
54f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
55000 44 42 2d 31 2e 35 2e 30 52 43 31 2f 74 65 73 74 73 2f 6e 75 6d 72 6f 77 73 2e 69 6e 63 00 00 00 DB-1.5.0RC1/tests/numrows.inc...
55020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
55040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
55060 00 00 00 00 31 30 30 36 34 34 20 00 20 20 20 37 36 34 20 00 20 20 20 31 34 34 20 00 20 20 20 20 ....100644.....764.....144......
55080 20 20 20 31 37 34 36 20 20 37 34 36 37 34 31 34 37 32 34 20 20 31 31 30 35 30 20 00 00 00 00 00 ...1746..7467414724..11050......
550a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
550c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
550e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
55100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
55120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
55140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
55160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
55180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
551a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
551c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
551e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
55200 3c 3f 70 68 70 0a 0a 69 66 20 28 21 66 75 6e 63 74 69 6f 6e 5f 65 78 69 73 74 73 28 22 65 72 72 <?php..if.(!function_exists("err
55220 68 61 6e 64 6c 65 72 22 29 29 0a 7b 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 65 72 72 68 61 6e handler")).{.....function.errhan
55240 64 6c 65 72 28 24 6f 62 6a 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 70 72 69 6e 74 66 28 dler($obj).....{.........printf(
55260 22 25 73 5c 6e 22 2c 20 24 6f 62 6a 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 29 3b 0a 20 20 20 "%s\n",.$obj->getMessage());....
55280 20 7d 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 74 65 73 74 5f 65 72 72 6f 72 5f 6d 6f 64 65 .}.}..if.(isset($test_error_mode
552a0 29 29 20 7b 0a 20 20 20 20 24 64 62 68 2d 3e 73 65 74 45 72 72 6f 72 48 61 6e 64 6c 69 6e 67 28 )).{.....$dbh->setErrorHandling(
552c0 24 74 65 73 74 5f 65 72 72 6f 72 5f 6d 6f 64 65 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 $test_error_mode);.}.else.{.....
552e0 24 64 62 68 2d 3e 73 65 74 45 72 72 6f 72 48 61 6e 64 6c 69 6e 67 28 50 45 41 52 5f 45 52 52 4f $dbh->setErrorHandling(PEAR_ERRO
55300 52 5f 44 49 45 29 3b 0a 7d 0a 24 73 74 68 20 3d 20 24 64 62 68 2d 3e 71 75 65 72 79 28 22 53 45 R_DIE);.}.$sth.=.$dbh->query("SE
55320 4c 45 43 54 20 61 20 46 52 4f 4d 20 70 68 70 74 65 73 74 22 29 3b 0a 69 66 20 28 21 44 42 3a 3a LECT.a.FROM.phptest");.if.(!DB::
55340 69 73 45 72 72 6f 72 28 24 72 6f 77 73 20 3d 20 24 73 74 68 2d 3e 6e 75 6d 52 6f 77 73 28 29 29 isError($rows.=.$sth->numRows())
55360 29 20 7b 0a 20 20 20 20 70 72 69 6e 74 20 22 24 72 6f 77 73 5c 6e 22 3b 0a 7d 20 65 6c 73 65 20 ).{.....print."$rows\n";.}.else.
55380 7b 0a 20 20 20 20 70 72 69 6e 74 20 22 5c 6e 22 3b 0a 7d 0a 66 6f 72 20 28 24 69 20 3d 20 30 3b {.....print."\n";.}.for.($i.=.0;
553a0 20 24 69 20 3c 20 35 3b 20 24 69 2b 2b 29 20 7b 0a 20 20 20 20 24 73 74 68 20 3d 20 24 64 62 68 .$i.<.5;.$i++).{.....$sth.=.$dbh
553c0 2d 3e 71 75 65 72 79 28 22 49 4e 53 45 52 54 20 49 4e 54 4f 20 70 68 70 74 65 73 74 20 28 61 29 ->query("INSERT.INTO.phptest.(a)
553e0 20 56 41 4c 55 45 53 28 24 69 29 22 29 3b 0a 20 20 20 20 24 73 74 68 20 3d 20 24 64 62 68 2d 3e .VALUES($i)");.....$sth.=.$dbh->
55400 71 75 65 72 79 28 22 53 45 4c 45 43 54 20 61 20 46 52 4f 4d 20 70 68 70 74 65 73 74 22 29 3b 0a query("SELECT.a.FROM.phptest");.
55420 20 20 20 20 69 66 20 28 21 44 42 3a 3a 69 73 45 72 72 6f 72 28 24 72 6f 77 73 20 3d 20 24 73 74 ....if.(!DB::isError($rows.=.$st
55440 68 2d 3e 6e 75 6d 52 6f 77 73 28 29 29 29 20 7b 0a 20 20 20 20 20 20 20 20 70 72 69 6e 74 20 22 h->numRows())).{.........print."
55460 24 72 6f 77 73 5c 6e 22 3b 0a 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 20 70 $rows\n";.....}.else.{.........p
55480 72 69 6e 74 20 22 5c 6e 22 3b 0a 20 20 20 20 7d 0a 7d 0a 24 64 62 68 2d 3e 71 75 65 72 79 28 22 rint."\n";.....}.}.$dbh->query("
554a0 44 45 4c 45 54 45 20 46 52 4f 4d 20 70 68 70 74 65 73 74 20 57 48 45 52 45 20 61 20 3c 20 34 22 DELETE.FROM.phptest.WHERE.a.<.4"
554c0 29 3b 0a 24 73 74 68 20 3d 20 24 64 62 68 2d 3e 71 75 65 72 79 28 22 53 45 4c 45 43 54 20 61 20 );.$sth.=.$dbh->query("SELECT.a.
554e0 46 52 4f 4d 20 70 68 70 74 65 73 74 22 29 3b 0a 69 66 20 28 21 44 42 3a 3a 69 73 45 72 72 6f 72 FROM.phptest");.if.(!DB::isError
55500 28 24 72 6f 77 73 20 3d 20 24 73 74 68 2d 3e 6e 75 6d 52 6f 77 73 28 29 29 29 20 7b 0a 20 20 20 ($rows.=.$sth->numRows())).{....
55520 20 70 72 69 6e 74 20 22 24 72 6f 77 73 5c 6e 22 3b 0a 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 70 .print."$rows\n";.}.else.{.....p
55540 72 69 6e 74 20 22 5c 6e 22 3b 0a 7d 0a 24 73 74 68 20 3d 20 24 64 62 68 2d 3e 71 75 65 72 79 28 rint."\n";.}.$sth.=.$dbh->query(
55560 22 53 45 4c 45 43 54 20 61 20 46 52 4f 4d 20 70 68 70 74 65 73 74 20 77 68 65 72 65 20 61 20 3c "SELECT.a.FROM.phptest.where.a.<
55580 20 30 22 29 3b 0a 69 66 20 28 21 44 42 3a 3a 69 73 45 72 72 6f 72 28 24 72 6f 77 73 20 3d 20 24 .0");.if.(!DB::isError($rows.=.$
555a0 73 74 68 2d 3e 6e 75 6d 52 6f 77 73 28 29 29 29 20 7b 0a 20 20 20 20 70 72 69 6e 74 20 22 24 72 sth->numRows())).{.....print."$r
555c0 6f 77 73 5c 6e 22 3b 0a 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 70 72 69 6e 74 20 22 5c 6e 22 3b ows\n";.}.else.{.....print."\n";
555e0 0a 7d 0a 3f 3e 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .}.?>...........................
55600 44 42 2d 31 2e 35 2e 30 52 43 31 2f 74 65 73 74 73 2f 70 72 65 70 65 78 65 2e 69 6e 63 00 00 00 DB-1.5.0RC1/tests/prepexe.inc...
55620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
55640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
55660 00 00 00 00 31 30 30 36 34 34 20 00 20 20 20 37 36 34 20 00 20 20 20 31 34 34 20 00 20 20 20 20 ....100644.....764.....144......
55680 20 20 20 34 35 32 37 20 20 37 36 37 34 36 34 37 35 33 32 20 20 31 31 30 31 33 20 00 00 00 00 00 ...4527..7674647532..11013......
556a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
556c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
556e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
55700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
55720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
55740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
55760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
55780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
557a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
557c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
557e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
55800 3c 3f 70 68 70 0a 0a 24 64 62 68 2d 3e 73 65 74 45 72 72 6f 72 48 61 6e 64 6c 69 6e 67 28 50 45 <?php..$dbh->setErrorHandling(PE
55820 41 52 5f 45 52 52 4f 52 5f 44 49 45 29 3b 0a 0a 24 74 6d 70 66 69 6c 65 20 3d 20 74 65 6d 70 6e AR_ERROR_DIE);..$tmpfile.=.tempn
55840 61 6d 28 22 2f 74 6d 70 22 2c 20 22 70 68 70 74 6d 70 22 29 3b 0a 72 65 67 69 73 74 65 72 5f 73 am("/tmp",."phptmp");.register_s
55860 68 75 74 64 6f 77 6e 5f 66 75 6e 63 74 69 6f 6e 28 22 6d 79 5f 73 68 75 74 64 6f 77 6e 22 29 3b hutdown_function("my_shutdown");
55880 0a 24 66 70 20 3d 20 66 6f 70 65 6e 28 24 74 6d 70 66 69 6c 65 2c 20 22 77 22 29 3b 0a 24 66 69 .$fp.=.fopen($tmpfile,."w");.$fi
558a0 6c 65 64 61 74 61 20 3d 20 22 6f 70 61 71 75 65 5c 6e 70 6c 61 63 65 68 6f 6c 64 65 72 5c 6e 74 ledata.=."opaque\nplaceholder\nt
558c0 65 73 74 22 3b 0a 66 77 72 69 74 65 28 24 66 70 2c 20 24 66 69 6c 65 64 61 74 61 29 3b 0a 66 63 est";.fwrite($fp,.$filedata);.fc
558e0 6c 6f 73 65 28 24 66 70 29 3b 0a 0a 2f 2f 20 31 29 20 4d 75 6c 74 69 70 6c 65 20 70 72 65 70 61 lose($fp);..//.1).Multiple.prepa
55900 72 65 2f 65 78 65 63 20 49 4e 53 45 52 54 20 71 75 65 72 69 65 73 0a 65 63 68 6f 20 22 2d 2d 2d re/exec.INSERT.queries.echo."---
55920 2d 2d 2d 2d 2d 2d 2d 2d 2d 31 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 22 3b 0a 0a 24 73 74 68 ---------1------------\n";..$sth
55940 31 20 3d 20 24 64 62 68 2d 3e 70 72 65 70 61 72 65 28 22 49 4e 53 45 52 54 20 49 4e 54 4f 20 70 1.=.$dbh->prepare("INSERT.INTO.p
55960 68 70 74 65 73 74 20 28 61 2c 20 62 29 20 56 41 4c 55 45 53 28 3f 2c 20 27 61 27 29 22 29 3b 0a hptest.(a,.b).VALUES(?,.'a')");.
55980 24 73 74 68 32 20 3d 20 24 64 62 68 2d 3e 70 72 65 70 61 72 65 28 22 49 4e 53 45 52 54 20 49 4e $sth2.=.$dbh->prepare("INSERT.IN
559a0 54 4f 20 70 68 70 74 65 73 74 20 28 61 2c 62 29 20 56 41 4c 55 45 53 28 3f 2c 3f 29 22 29 3b 0a TO.phptest.(a,b).VALUES(?,?)");.
559c0 24 73 74 68 33 20 3d 20 24 64 62 68 2d 3e 70 72 65 70 61 72 65 28 22 49 4e 53 45 52 54 20 49 4e $sth3.=.$dbh->prepare("INSERT.IN
559e0 54 4f 20 70 68 70 74 65 73 74 20 28 61 2c 62 2c 63 29 20 56 41 4c 55 45 53 28 3f 2c 3f 2c 26 29 TO.phptest.(a,b,c).VALUES(?,?,&)
55a00 22 29 3b 0a 70 72 69 6e 74 20 22 73 74 68 31 2c 73 74 68 32 2c 73 74 68 33 20 63 72 65 61 74 65 ");.print."sth1,sth2,sth3.create
55a20 64 5c 6e 22 3b 0a 0a 69 66 20 28 28 24 72 65 73 20 3d 20 24 64 62 68 2d 3e 65 78 65 63 75 74 65 d\n";..if.(($res.=.$dbh->execute
55a40 28 24 73 74 68 31 2c 20 61 72 72 61 79 28 37 32 29 29 29 20 3d 3d 20 44 42 5f 4f 4b 29 20 7b 0a ($sth1,.array(72))).==.DB_OK).{.
55a60 20 20 20 20 70 72 69 6e 74 20 22 73 74 68 31 20 65 78 65 63 75 74 65 64 5c 6e 22 3b 0a 7d 0a 69 ....print."sth1.executed\n";.}.i
55a80 66 20 28 28 24 72 65 73 20 3d 20 24 64 62 68 2d 3e 65 78 65 63 75 74 65 28 24 73 74 68 32 2c 20 f.(($res.=.$dbh->execute($sth2,.
55aa0 61 72 72 61 79 28 37 32 2c 27 62 69 6e 67 27 29 29 29 20 3d 3d 20 44 42 5f 4f 4b 29 20 7b 0a 20 array(72,'bing'))).==.DB_OK).{..
55ac0 20 20 20 70 72 69 6e 74 20 22 73 74 68 32 20 65 78 65 63 75 74 65 64 5c 6e 22 3b 0a 7d 0a 69 66 ...print."sth2.executed\n";.}.if
55ae0 20 28 28 24 72 65 73 20 3d 20 24 64 62 68 2d 3e 65 78 65 63 75 74 65 28 24 73 74 68 33 2c 20 61 .(($res.=.$dbh->execute($sth3,.a
55b00 72 72 61 79 28 37 32 2c 27 67 61 7a 6f 6e 6b 27 2c 24 74 6d 70 66 69 6c 65 29 29 29 20 3d 3d 20 rray(72,'gazonk',$tmpfile))).==.
55b20 44 42 5f 4f 4b 29 20 7b 0a 20 20 20 20 70 72 69 6e 74 20 22 73 74 68 33 20 65 78 65 63 75 74 65 DB_OK).{.....print."sth3.execute
55b40 64 5c 6e 22 3b 0a 7d 0a 70 72 69 6e 74 5f 72 65 73 75 6c 74 73 28 29 3b 0a 0a 2f 2f 20 32 29 20 d\n";.}.print_results();..//.2).
55b60 4f 6e 65 20 70 72 65 70 61 72 65 64 2c 20 6d 75 6c 74 69 70 6c 65 20 74 69 6d 65 20 65 78 65 63 One.prepared,.multiple.time.exec
55b80 75 74 65 64 0a 65 63 68 6f 20 22 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 32 2d 2d 2d 2d 2d 2d uted.echo."\n------------2------
55ba0 2d 2d 2d 2d 2d 2d 5c 6e 22 3b 0a 0a 24 64 62 68 2d 3e 71 75 65 72 79 28 27 44 45 4c 45 54 45 20 ------\n";..$dbh->query('DELETE.
55bc0 46 52 4f 4d 20 70 68 70 74 65 73 74 27 29 3b 0a 24 73 74 68 20 3d 20 24 64 62 68 2d 3e 70 72 65 FROM.phptest');.$sth.=.$dbh->pre
55be0 70 61 72 65 28 22 49 4e 53 45 52 54 20 49 4e 54 4f 20 70 68 70 74 65 73 74 20 28 61 2c 62 2c 63 pare("INSERT.INTO.phptest.(a,b,c
55c00 29 20 56 41 4c 55 45 53 28 3f 2c 3f 2c 26 29 22 29 3b 0a 24 64 61 74 61 20 3d 20 61 72 72 61 79 ).VALUES(?,?,&)");.$data.=.array
55c20 28 0a 20 20 20 20 30 20 3d 3e 20 61 72 72 61 79 28 37 32 2c 20 27 73 65 74 31 27 2c 20 24 74 6d (.....0.=>.array(72,.'set1',.$tm
55c40 70 66 69 6c 65 29 2c 0a 20 20 20 20 31 20 3d 3e 20 61 72 72 61 79 28 37 32 2c 20 27 73 65 74 32 pfile),.....1.=>.array(72,.'set2
55c60 27 2c 20 24 74 6d 70 66 69 6c 65 29 2c 0a 20 20 20 20 32 20 3d 3e 20 61 72 72 61 79 28 37 32 2c ',.$tmpfile),.....2.=>.array(72,
55c80 20 27 73 65 74 33 27 2c 20 24 74 6d 70 66 69 6c 65 29 0a 29 3b 0a 24 64 62 68 2d 3e 65 78 65 63 .'set3',.$tmpfile).);.$dbh->exec
55ca0 75 74 65 4d 75 6c 74 69 70 6c 65 28 24 73 74 68 2c 20 24 64 61 74 61 29 3b 0a 70 72 69 6e 74 5f uteMultiple($sth,.$data);.print_
55cc0 72 65 73 75 6c 74 73 28 29 3b 0a 0a 2f 2f 20 33 29 20 66 72 65 65 50 72 65 70 61 72 65 64 28 29 results();..//.3).freePrepared()
55ce0 20 74 65 73 74 0a 65 63 68 6f 20 22 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 33 2d 2d 2d 2d 2d .test.echo."\n------------3-----
55d00 2d 2d 2d 2d 2d 2d 2d 5c 6e 22 3b 0a 0a 69 66 20 28 24 64 62 68 2d 3e 66 72 65 65 50 72 65 70 61 -------\n";..if.($dbh->freePrepa
55d20 72 65 64 28 24 73 74 68 29 29 20 7b 0a 20 20 20 20 65 63 68 6f 20 27 54 52 55 45 27 3b 0a 7d 20 red($sth)).{.....echo.'TRUE';.}.
55d40 65 6c 73 65 20 7b 0a 20 20 20 20 65 63 68 6f 20 27 46 41 4c 53 45 27 3b 0a 7d 0a 65 63 68 6f 20 else.{.....echo.'FALSE';.}.echo.
55d60 22 5c 6e 22 3b 0a 69 66 20 28 24 64 62 68 2d 3e 66 72 65 65 50 72 65 70 61 72 65 64 28 36 36 36 "\n";.if.($dbh->freePrepared(666
55d80 29 29 20 7b 0a 20 20 20 20 65 63 68 6f 20 27 54 52 55 45 27 3b 0a 7d 20 65 6c 73 65 20 7b 0a 20 )).{.....echo.'TRUE';.}.else.{..
55da0 20 20 20 65 63 68 6f 20 27 46 41 4c 53 45 27 3b 0a 7d 0a 65 63 68 6f 20 22 5c 6e 22 3b 0a 0a 2f ...echo.'FALSE';.}.echo."\n";../
55dc0 2f 20 34 29 20 53 45 4c 45 43 54 73 20 74 65 73 74 73 0a 65 63 68 6f 20 22 5c 6e 2d 2d 2d 2d 2d /.4).SELECTs.tests.echo."\n-----
55de0 2d 2d 2d 2d 2d 2d 2d 34 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 22 3b 0a 0a 24 73 74 68 31 20 -------4------------\n";..$sth1.
55e00 3d 20 24 64 62 68 2d 3e 70 72 65 70 61 72 65 28 22 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 70 =.$dbh->prepare("SELECT.*.FROM.p
55e20 68 70 74 65 73 74 20 57 48 45 52 45 20 61 20 3d 20 3f 20 4f 52 44 45 52 20 42 59 20 62 22 29 3b hptest.WHERE.a.=.?.ORDER.BY.b");
55e40 0a 70 72 69 6e 74 5f 34 28 24 73 74 68 31 2c 20 27 37 32 27 29 3b 0a 70 72 69 6e 74 5f 34 28 24 .print_4($sth1,.'72');.print_4($
55e60 73 74 68 31 2c 20 27 37 31 27 29 3b 0a 24 73 74 68 32 20 3d 20 24 64 62 68 2d 3e 70 72 65 70 61 sth1,.'71');.$sth2.=.$dbh->prepa
55e80 72 65 28 22 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 70 68 70 74 65 73 74 20 57 48 45 52 45 20 re("SELECT.*.FROM.phptest.WHERE.
55ea0 62 20 3d 20 3f 20 4f 52 44 45 52 20 42 59 20 62 22 29 3b 0a 70 72 69 6e 74 5f 34 28 24 73 74 68 b.=.?.ORDER.BY.b");.print_4($sth
55ec0 32 2c 20 27 73 65 74 31 27 29 3b 0a 24 73 74 68 33 20 3d 20 24 64 62 68 2d 3e 70 72 65 70 61 72 2,.'set1');.$sth3.=.$dbh->prepar
55ee0 65 28 22 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 70 68 70 74 65 73 74 20 57 48 45 52 45 20 63 e("SELECT.*.FROM.phptest.WHERE.c
55f00 20 3d 20 26 20 4f 52 44 45 52 20 42 59 20 62 22 29 3b 0a 70 72 69 6e 74 5f 34 28 24 73 74 68 33 .=.&.ORDER.BY.b");.print_4($sth3
55f20 2c 20 24 74 6d 70 66 69 6c 65 29 3b 0a 0a 66 75 6e 63 74 69 6f 6e 20 6d 79 5f 73 68 75 74 64 6f ,.$tmpfile);..function.my_shutdo
55f40 77 6e 28 29 20 7b 0a 20 20 20 20 67 6c 6f 62 61 6c 20 24 74 6d 70 66 69 6c 65 3b 0a 20 20 20 20 wn().{.....global.$tmpfile;.....
55f60 75 6e 6c 69 6e 6b 28 24 74 6d 70 66 69 6c 65 29 3b 0a 7d 0a 0a 66 75 6e 63 74 69 6f 6e 20 70 72 unlink($tmpfile);.}..function.pr
55f80 69 6e 74 5f 72 65 73 75 6c 74 73 28 29 20 7b 0a 20 20 20 20 67 6c 6f 62 61 6c 20 24 64 62 68 3b int_results().{.....global.$dbh;
55fa0 0a 20 20 20 20 70 72 69 6e 74 20 22 72 65 73 75 6c 74 73 3a 5c 6e 22 3b 0a 20 20 20 20 24 73 74 .....print."results:\n";.....$st
55fc0 68 20 3d 20 24 64 62 68 2d 3e 71 75 65 72 79 28 22 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 70 h.=.$dbh->query("SELECT.*.FROM.p
55fe0 68 70 74 65 73 74 20 57 48 45 52 45 20 61 20 3d 20 37 32 20 4f 52 44 45 52 20 42 59 20 62 22 29 hptest.WHERE.a.=.72.ORDER.BY.b")
56000 3b 0a 20 20 20 20 77 68 69 6c 65 20 28 24 72 6f 77 20 3d 20 24 73 74 68 2d 3e 66 65 74 63 68 52 ;.....while.($row.=.$sth->fetchR
56020 6f 77 28 44 42 5f 46 45 54 43 48 4d 4f 44 45 5f 4f 52 44 45 52 45 44 29 29 20 7b 0a 20 20 20 20 ow(DB_FETCHMODE_ORDERED)).{.....
56040 20 20 20 20 70 72 69 6e 74 20 27 7c 27 20 2e 20 69 6d 70 6c 6f 64 65 28 22 20 2d 20 22 2c 20 24 ....print.'|'...implode(".-.",.$
56060 72 6f 77 29 20 2e 20 22 7c 5c 6e 22 3b 0a 20 20 20 20 7d 0a 7d 0a 0a 66 75 6e 63 74 69 6f 6e 20 row)..."|\n";.....}.}..function.
56080 70 72 69 6e 74 5f 34 28 24 73 74 68 2c 20 24 62 69 6e 64 29 20 7b 0a 20 20 20 20 67 6c 6f 62 61 print_4($sth,.$bind).{.....globa
560a0 6c 20 24 64 62 68 3b 0a 20 20 20 20 24 72 65 73 20 3d 20 24 64 62 68 2d 3e 65 78 65 63 75 74 65 l.$dbh;.....$res.=.$dbh->execute
560c0 28 24 73 74 68 2c 20 24 62 69 6e 64 29 3b 0a 20 20 20 20 77 68 69 6c 65 20 28 24 72 6f 77 20 3d ($sth,.$bind);.....while.($row.=
560e0 20 24 72 65 73 2d 3e 66 65 74 63 68 52 6f 77 28 44 42 5f 46 45 54 43 48 4d 4f 44 45 5f 4f 52 44 .$res->fetchRow(DB_FETCHMODE_ORD
56100 45 52 45 44 29 29 20 7b 0a 20 20 20 20 20 20 20 20 70 72 69 6e 74 20 27 7c 27 20 2e 20 69 6d 70 ERED)).{.........print.'|'...imp
56120 6c 6f 64 65 28 22 20 2d 20 22 2c 20 24 72 6f 77 29 20 2e 20 22 7c 5c 6e 22 3b 0a 20 20 20 20 7d lode(".-.",.$row)..."|\n";.....}
56140 0a 20 20 20 20 65 63 68 6f 20 22 7e 7e 5c 6e 22 3b 0a 7d 0a 0a 3f 3e 00 00 00 00 00 00 00 00 00 .....echo."~~\n";.}..?>.........
56160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
561a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
561c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
561e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56200 44 42 2d 31 2e 35 2e 30 52 43 31 2f 74 65 73 74 73 2f 73 65 71 75 65 6e 63 65 73 2e 69 6e 63 00 DB-1.5.0RC1/tests/sequences.inc.
56220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56260 00 00 00 00 31 30 30 36 34 34 20 00 20 20 20 37 36 34 20 00 20 20 20 31 34 34 20 00 20 20 20 20 ....100644.....764.....144......
56280 20 20 20 33 37 34 33 20 20 37 34 36 37 34 31 34 37 32 34 20 20 31 31 33 33 30 20 00 00 00 00 00 ...3743..7467414724..11330......
562a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
562c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
562e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
563a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
563c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
563e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56400 3c 3f 70 68 70 20 2f 2f 20 2d 2a 2d 20 50 48 50 20 2d 2a 2d 0a 0a 66 75 6e 63 74 69 6f 6e 20 65 <?php.//.-*-.PHP.-*-..function.e
56420 72 72 6f 72 5f 68 61 6e 64 6c 65 72 28 26 24 6f 62 6a 29 20 7b 0a 20 20 20 20 70 72 69 6e 74 20 rror_handler(&$obj).{.....print.
56440 22 73 65 71 75 65 6e 63 65 73 2e 69 6e 63 20 65 72 72 6f 72 5f 68 61 6e 64 6c 65 72 5c 6e 22 3b "sequences.inc.error_handler\n";
56460 0a 7d 0a 6f 62 5f 69 6d 70 6c 69 63 69 74 5f 66 6c 75 73 68 28 74 72 75 65 29 3b 0a 24 64 62 68 .}.ob_implicit_flush(true);.$dbh
56480 2d 3e 64 72 6f 70 53 65 71 75 65 6e 63 65 28 22 74 65 73 74 22 29 3b 0a 0a 2f 2f 20 31 29 20 74 ->dropSequence("test");..//.1).t
564a0 65 73 74 20 74 68 61 74 20 73 65 71 75 65 6e 63 65 73 20 61 72 65 20 6e 6f 74 20 63 72 65 61 74 est.that.sequences.are.not.creat
564c0 65 64 20 69 66 20 22 6f 6e 64 65 6d 61 6e 64 22 20 69 73 20 66 61 6c 73 65 0a 0a 24 65 20 3d 20 ed.if."ondemand".is.false..$e.=.
564e0 24 64 62 68 2d 3e 6e 65 78 74 49 64 28 22 74 65 73 74 22 2c 20 66 61 6c 73 65 29 3b 0a 69 66 20 $dbh->nextId("test",.false);.if.
56500 28 44 42 3a 3a 69 73 45 72 72 6f 72 28 24 65 29 29 20 7b 0a 20 20 20 20 70 72 69 6e 74 20 24 65 (DB::isError($e)).{.....print.$e
56520 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 20 2e 20 22 5c 6e 22 3b 0a 7d 20 65 6c 73 65 20 7b 0a ->getMessage()..."\n";.}.else.{.
56540 20 20 20 20 70 72 69 6e 74 20 22 74 65 73 74 20 31 29 20 66 61 69 6c 65 64 21 5c 6e 22 3b 0a 7d ....print."test.1).failed!\n";.}
56560 0a 0a 2f 2f 20 32 29 20 74 65 73 74 20 74 68 61 74 20 74 68 65 20 73 65 71 75 65 6e 63 65 20 69 ..//.2).test.that.the.sequence.i
56580 73 20 6e 6f 74 20 63 72 65 61 74 65 64 20 62 75 74 20 74 68 65 20 65 72 72 6f 72 20 69 73 0a 2f s.not.created.but.the.error.is./
565a0 2f 20 68 61 6e 64 6c 65 64 20 62 79 20 74 68 65 20 63 6c 61 73 73 20 65 72 72 6f 72 20 68 61 6e /.handled.by.the.class.error.han
565c0 64 6c 65 72 0a 24 64 62 68 2d 3e 73 65 74 45 72 72 6f 72 48 61 6e 64 6c 69 6e 67 28 50 45 41 52 dler.$dbh->setErrorHandling(PEAR
565e0 5f 45 52 52 4f 52 5f 50 52 49 4e 54 2c 20 22 25 73 20 3c 2d 20 67 6f 6f 64 20 65 72 72 6f 72 20 _ERROR_PRINT,."%s.<-.good.error.
56600 63 61 74 63 68 65 64 5c 6e 22 29 3b 0a 24 65 20 3d 20 24 64 62 68 2d 3e 6e 65 78 74 49 64 28 22 catched\n");.$e.=.$dbh->nextId("
56620 74 65 73 74 22 2c 20 66 61 6c 73 65 29 3b 0a 69 66 20 28 21 44 42 3a 3a 69 73 45 72 72 6f 72 28 test",.false);.if.(!DB::isError(
56640 24 65 29 29 20 7b 0a 20 20 20 20 70 72 69 6e 74 20 22 74 65 73 74 20 32 29 20 66 61 69 6c 65 64 $e)).{.....print."test.2).failed
56660 21 5c 6e 22 3b 0a 7d 0a 24 64 62 68 2d 3e 5f 64 65 66 61 75 6c 74 5f 65 72 72 6f 72 5f 6d 6f 64 !\n";.}.$dbh->_default_error_mod
56680 65 20 3d 20 6e 75 6c 6c 3b 0a 0a 2f 2f 20 33 29 20 74 65 73 74 20 74 68 61 74 20 73 65 71 75 65 e.=.null;..//.3).test.that.seque
566a0 6e 63 65 73 20 61 72 65 20 63 72 65 61 74 65 64 20 69 66 20 22 6f 6e 64 65 6d 61 6e 64 22 20 69 nces.are.created.if."ondemand".i
566c0 73 20 74 72 75 65 2c 20 61 6e 64 20 74 68 61 74 0a 2f 2f 20 74 77 6f 20 73 75 63 63 65 73 73 69 s.true,.and.that.//.two.successi
566e0 76 65 20 6e 65 78 74 49 64 73 20 72 65 74 75 72 6e 20 61 64 6a 61 63 65 6e 74 20 76 61 6c 75 65 ve.nextIds.return.adjacent.value
56700 73 0a 24 61 20 3d 20 24 64 62 68 2d 3e 6e 65 78 74 49 64 28 22 74 65 73 74 22 29 3b 0a 24 62 20 s.$a.=.$dbh->nextId("test");.$b.
56720 3d 20 24 64 62 68 2d 3e 6e 65 78 74 49 64 28 22 74 65 73 74 22 29 3b 0a 69 66 20 28 44 42 3a 3a =.$dbh->nextId("test");.if.(DB::
56740 69 73 45 72 72 6f 72 28 24 61 29 29 20 7b 0a 20 20 20 20 70 72 69 6e 74 20 22 61 3a 20 22 2e 24 isError($a)).{.....print."a:.".$
56760 61 2d 3e 74 6f 53 74 72 69 6e 67 28 29 2e 22 5c 6e 22 3b 0a 7d 20 65 6c 73 65 20 7b 0a 20 20 20 a->toString()."\n";.}.else.{....
56780 20 70 72 69 6e 74 20 22 61 3d 24 61 5c 6e 22 3b 0a 7d 0a 69 66 20 28 44 42 3a 3a 69 73 45 72 72 .print."a=$a\n";.}.if.(DB::isErr
567a0 6f 72 28 24 62 29 29 20 7b 0a 20 20 20 20 70 72 69 6e 74 20 22 62 3a 20 22 2e 24 62 2d 3e 74 6f or($b)).{.....print."b:.".$b->to
567c0 53 74 72 69 6e 67 28 29 2e 22 5c 6e 22 3b 0a 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 70 72 69 6e String()."\n";.}.else.{.....prin
567e0 74 20 22 62 3d 24 62 5c 6e 22 3b 0a 7d 0a 70 72 69 6e 74 20 22 62 2d 61 3d 22 2e 28 24 62 2d 24 t."b=$b\n";.}.print."b-a=".($b-$
56800 61 29 2e 22 5c 6e 22 3b 0a 0a 2f 2f 20 34 29 20 74 65 73 74 20 74 68 61 74 20 74 68 65 20 75 73 a)."\n";..//.4).test.that.the.us
56820 65 72 2d 73 70 65 63 69 66 69 65 64 20 65 72 72 6f 72 20 68 61 6e 64 6c 65 72 20 69 73 20 72 65 er-specified.error.handler.is.re
56840 61 6c 6c 79 20 64 69 73 61 62 6c 65 64 0a 2f 2f 20 64 75 72 69 6e 67 20 6e 65 78 74 49 64 2c 20 ally.disabled.//.during.nextId,.
56860 77 69 74 68 20 70 65 72 2d 6f 62 6a 65 63 74 20 68 61 6e 64 6c 65 72 20 61 73 20 77 65 6c 6c 20 with.per-object.handler.as.well.
56880 61 73 20 67 6c 6f 62 61 6c 20 68 61 6e 64 6c 65 72 0a 24 64 62 68 2d 3e 64 72 6f 70 53 65 71 75 as.global.handler.$dbh->dropSequ
568a0 65 6e 63 65 28 22 74 65 73 74 22 29 3b 0a 24 64 62 68 2d 3e 73 65 74 45 72 72 6f 72 48 61 6e 64 ence("test");.$dbh->setErrorHand
568c0 6c 69 6e 67 28 50 45 41 52 5f 45 52 52 4f 52 5f 43 41 4c 4c 42 41 43 4b 2c 20 22 65 72 72 6f 72 ling(PEAR_ERROR_CALLBACK,."error
568e0 5f 68 61 6e 64 6c 65 72 22 29 3b 0a 24 63 20 3d 20 24 64 62 68 2d 3e 6e 65 78 74 49 64 28 22 74 _handler");.$c.=.$dbh->nextId("t
56900 65 73 74 22 29 3b 0a 69 66 20 28 44 42 3a 3a 69 73 45 72 72 6f 72 28 24 63 29 29 20 7b 0a 20 20 est");.if.(DB::isError($c)).{...
56920 20 20 70 72 69 6e 74 20 22 63 3a 20 22 2e 24 63 2d 3e 74 6f 53 74 72 69 6e 67 28 29 2e 22 5c 6e ..print."c:.".$c->toString()."\n
56940 22 3b 0a 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 70 72 69 6e 74 20 22 63 3d 24 63 5c 6e 22 3b 0a ";.}.else.{.....print."c=$c\n";.
56960 7d 0a 24 64 62 68 2d 3e 64 72 6f 70 53 65 71 75 65 6e 63 65 28 22 74 65 73 74 22 29 3b 0a 24 64 }.$dbh->dropSequence("test");.$d
56980 62 68 2d 3e 5f 64 65 66 61 75 6c 74 5f 65 72 72 6f 72 5f 6d 6f 64 65 20 3d 20 6e 75 6c 6c 3b 0a bh->_default_error_mode.=.null;.
569a0 50 45 41 52 3a 3a 73 65 74 45 72 72 6f 72 48 61 6e 64 6c 69 6e 67 28 50 45 41 52 5f 45 52 52 4f PEAR::setErrorHandling(PEAR_ERRO
569c0 52 5f 43 41 4c 4c 42 41 43 4b 2c 20 22 65 72 72 6f 72 5f 68 61 6e 64 6c 65 72 22 29 3b 0a 24 64 R_CALLBACK,."error_handler");.$d
569e0 20 3d 20 24 64 62 68 2d 3e 6e 65 78 74 49 64 28 22 74 65 73 74 22 29 3b 0a 69 66 20 28 44 42 3a .=.$dbh->nextId("test");.if.(DB:
56a00 3a 69 73 45 72 72 6f 72 28 24 64 29 29 20 7b 0a 20 20 20 20 70 72 69 6e 74 20 22 64 3a 20 22 2e :isError($d)).{.....print."d:.".
56a20 24 64 2d 3e 74 6f 53 74 72 69 6e 67 28 29 2e 22 5c 6e 22 3b 0a 7d 20 65 6c 73 65 20 7b 0a 20 20 $d->toString()."\n";.}.else.{...
56a40 20 20 70 72 69 6e 74 20 22 64 3d 24 64 5c 6e 22 3b 0a 7d 0a 0a 2f 2f 20 35 29 20 74 65 73 74 20 ..print."d=$d\n";.}..//.5).test.
56a60 74 68 61 74 20 74 68 65 20 73 65 71 75 65 6e 63 65 20 69 73 20 68 61 6e 64 6c 65 64 20 72 69 67 that.the.sequence.is.handled.rig
56a80 68 74 20 77 68 65 6e 20 74 68 65 20 74 61 62 6c 65 20 69 73 20 65 6d 70 74 79 0a 0a 2f 2f 20 42 ht.when.the.table.is.empty..//.B
56aa0 61 63 6b 65 6e 64 20 77 69 74 68 20 72 65 61 6c 20 73 65 71 75 65 6e 63 65 73 20 6d 61 79 20 64 ackend.with.real.sequences.may.d
56ac0 6f 6e 27 74 20 6c 69 6b 65 20 74 68 61 74 0a 50 45 41 52 3a 3a 70 75 73 68 45 72 72 6f 72 48 61 on't.like.that.PEAR::pushErrorHa
56ae0 6e 64 6c 69 6e 67 28 50 45 41 52 5f 45 52 52 4f 52 5f 52 45 54 55 52 4e 29 3b 0a 24 64 62 68 2d ndling(PEAR_ERROR_RETURN);.$dbh-
56b00 3e 71 75 65 72 79 28 27 44 45 4c 45 54 45 20 46 52 4f 4d 20 74 65 73 74 5f 73 65 71 27 29 3b 0a >query('DELETE.FROM.test_seq');.
56b20 50 45 41 52 3a 3a 70 6f 70 45 72 72 6f 72 48 61 6e 64 6c 69 6e 67 28 29 3b 0a 24 65 20 3d 20 24 PEAR::popErrorHandling();.$e.=.$
56b40 64 62 68 2d 3e 6e 65 78 74 49 44 28 27 74 65 73 74 27 29 3b 0a 69 66 20 28 44 42 3a 3a 69 73 45 dbh->nextID('test');.if.(DB::isE
56b60 72 72 6f 72 28 24 64 29 29 20 7b 0a 20 20 20 20 70 72 69 6e 74 20 22 65 3a 20 22 2e 24 64 2d 3e rror($d)).{.....print."e:.".$d->
56b80 74 6f 53 74 72 69 6e 67 28 29 2e 22 5c 6e 22 3b 0a 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 70 72 toString()."\n";.}.else.{.....pr
56ba0 69 6e 74 20 22 65 3d 24 64 5c 6e 22 3b 0a 7d 0a 0a 2f 2f 20 66 69 6e 61 6c 20 63 6c 65 61 6e 2d int."e=$d\n";.}..//.final.clean-
56bc0 75 70 0a 24 64 62 68 2d 3e 64 72 6f 70 53 65 71 75 65 6e 63 65 28 22 74 65 73 74 22 29 3b 0a 0a up.$dbh->dropSequence("test");..
56be0 3f 3e 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ?>..............................
56c00 44 42 2d 31 2e 35 2e 30 52 43 31 2f 74 65 73 74 73 2f 73 69 6d 70 6c 65 71 75 65 72 79 2e 69 6e DB-1.5.0RC1/tests/simplequery.in
56c20 63 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 c...............................
56c40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56c60 00 00 00 00 31 30 30 36 34 34 20 00 20 20 20 37 36 34 20 00 20 20 20 31 34 34 20 00 20 20 20 20 ....100644.....764.....144......
56c80 20 20 20 20 32 30 30 20 20 37 34 36 37 34 31 34 37 32 34 20 20 31 31 36 35 35 20 00 00 00 00 00 ....200..7467414724..11655......
56ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56d00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56d20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56e00 3c 3f 70 68 70 0a 0a 24 64 62 68 2d 3e 73 65 74 45 72 72 6f 72 48 61 6e 64 6c 69 6e 67 28 50 45 <?php..$dbh->setErrorHandling(PE
56e20 41 52 5f 45 52 52 4f 52 5f 44 49 45 29 3b 0a 24 73 74 68 20 3d 20 24 64 62 68 2d 3e 73 69 6d 70 AR_ERROR_DIE);.$sth.=.$dbh->simp
56e40 6c 65 51 75 65 72 79 28 22 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 70 68 70 74 65 73 74 22 29 leQuery("SELECT.*.FROM.phptest")
56e60 3b 0a 70 72 69 6e 74 20 67 65 74 74 79 70 65 28 24 73 74 68 29 2e 22 5c 6e 22 3b 0a 0a 3f 3e 0a ;.print.gettype($sth)."\n";..?>.
56e80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56ea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56ec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56f00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56f20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
57000 44 42 2d 31 2e 35 2e 30 52 43 31 2f 74 65 73 74 73 2f 74 61 62 6c 65 69 6e 66 6f 2e 69 6e 63 00 DB-1.5.0RC1/tests/tableinfo.inc.
57020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
57040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
57060 00 00 00 00 31 30 30 36 34 34 20 00 20 20 20 37 36 34 20 00 20 20 20 31 34 34 20 00 20 20 20 20 ....100644.....764.....144......
57080 20 20 20 35 34 32 30 20 20 37 34 36 37 34 31 34 37 32 34 20 20 31 31 32 37 32 20 00 00 00 00 00 ...5420..7467414724..11272......
570a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
570c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
570e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
57100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
57120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
57140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
57160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
57180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
571a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
571c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
571e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
57200 3c 3f 70 68 70 0a 66 75 6e 63 74 69 6f 6e 20 70 65 28 24 6f 29 7b 0a 20 20 20 20 64 69 65 28 24 <?php.function.pe($o){.....die($
57220 6f 2d 3e 74 6f 53 74 72 69 6e 67 28 29 29 3b 0a 7d 0a 24 64 62 68 2d 3e 73 65 74 45 72 72 6f 72 o->toString());.}.$dbh->setError
57240 48 61 6e 64 6c 69 6e 67 28 50 45 41 52 5f 45 52 52 4f 52 5f 52 45 54 55 52 4e 29 3b 0a 24 64 62 Handling(PEAR_ERROR_RETURN);.$db
57260 68 2d 3e 71 75 65 72 79 28 22 44 52 4f 50 20 54 41 42 4c 45 20 70 68 70 74 65 73 74 5f 66 6b 22 h->query("DROP.TABLE.phptest_fk"
57280 29 3b 0a 0a 24 64 62 68 2d 3e 73 65 74 45 72 72 6f 72 48 61 6e 64 6c 69 6e 67 28 50 45 41 52 5f );..$dbh->setErrorHandling(PEAR_
572a0 45 52 52 4f 52 5f 43 41 4c 4c 42 41 43 4b 2c 27 70 65 27 29 3b 0a 0a 24 64 62 68 2d 3e 71 75 65 ERROR_CALLBACK,'pe');..$dbh->que
572c0 72 79 28 22 44 45 4c 45 54 45 20 46 52 4f 4d 20 70 68 70 74 65 73 74 22 29 3b 0a 24 64 62 68 2d ry("DELETE.FROM.phptest");.$dbh-
572e0 3e 71 75 65 72 79 28 22 49 4e 53 45 52 54 20 49 4e 54 4f 20 70 68 70 74 65 73 74 20 56 41 4c 55 >query("INSERT.INTO.phptest.VALU
57300 45 53 28 31 2c 20 27 6f 6e 65 27 2c 20 27 4f 6e 65 27 2c 20 27 32 30 30 31 2d 30 32 2d 31 36 27 ES(1,.'one',.'One',.'2001-02-16'
57320 29 22 29 3b 0a 24 64 62 68 2d 3e 71 75 65 72 79 28 22 49 4e 53 45 52 54 20 49 4e 54 4f 20 70 68 )");.$dbh->query("INSERT.INTO.ph
57340 70 74 65 73 74 20 56 41 4c 55 45 53 28 32 2c 20 27 74 77 6f 27 2c 20 27 54 77 6f 27 2c 20 27 32 ptest.VALUES(2,.'two',.'Two',.'2
57360 30 30 31 2d 30 32 2d 31 35 27 29 22 29 3b 0a 24 64 62 68 2d 3e 71 75 65 72 79 28 22 49 4e 53 45 001-02-15')");.$dbh->query("INSE
57380 52 54 20 49 4e 54 4f 20 70 68 70 74 65 73 74 20 56 41 4c 55 45 53 28 33 2c 20 27 74 68 72 65 65 RT.INTO.phptest.VALUES(3,.'three
573a0 27 2c 20 27 54 68 72 65 65 27 2c 20 27 32 30 30 31 2d 30 32 2d 31 34 27 29 22 29 3b 0a 0a 24 74 ',.'Three',.'2001-02-14')");..$t
573c0 65 73 74 5f 6d 6b 74 61 62 6c 65 5f 71 75 65 72 79 32 20 3d 20 22 43 52 45 41 54 45 20 54 41 42 est_mktable_query2.=."CREATE.TAB
573e0 4c 45 20 70 68 70 74 65 73 74 5f 66 6b 20 28 61 20 49 4e 54 45 47 45 52 2c 20 66 6b 20 49 4e 54 LE.phptest_fk.(a.INTEGER,.fk.INT
57400 45 47 45 52 2c 20 63 20 54 45 58 54 2c 20 64 20 44 41 54 45 29 22 3b 0a 24 64 62 68 2d 3e 71 75 EGER,.c.TEXT,.d.DATE)";.$dbh->qu
57420 65 72 79 28 24 74 65 73 74 5f 6d 6b 74 61 62 6c 65 5f 71 75 65 72 79 32 29 3b 0a 0a 24 64 62 68 ery($test_mktable_query2);..$dbh
57440 2d 3e 71 75 65 72 79 28 22 49 4e 53 45 52 54 20 49 4e 54 4f 20 70 68 70 74 65 73 74 5f 66 6b 20 ->query("INSERT.INTO.phptest_fk.
57460 56 41 4c 55 45 53 28 31 2c 20 20 31 2c 20 27 4f 6e 65 27 2c 20 27 32 30 30 31 2d 30 32 2d 31 36 VALUES(1,..1,.'One',.'2001-02-16
57480 27 29 22 29 3b 0a 24 64 62 68 2d 3e 71 75 65 72 79 28 22 49 4e 53 45 52 54 20 49 4e 54 4f 20 70 ')");.$dbh->query("INSERT.INTO.p
574a0 68 70 74 65 73 74 5f 66 6b 20 56 41 4c 55 45 53 28 32 2c 20 20 31 2c 20 27 20 54 77 6f 27 2c 20 hptest_fk.VALUES(2,..1,.'.Two',.
574c0 27 32 30 30 31 2d 30 32 2d 31 35 27 29 22 29 3b 0a 24 64 62 68 2d 3e 71 75 65 72 79 28 22 49 4e '2001-02-15')");.$dbh->query("IN
574e0 53 45 52 54 20 49 4e 54 4f 20 70 68 70 74 65 73 74 5f 66 6b 20 56 41 4c 55 45 53 28 33 2c 20 20 SERT.INTO.phptest_fk.VALUES(3,..
57500 32 2c 20 27 54 68 72 65 65 27 2c 20 27 32 30 30 31 2d 30 32 2d 31 34 27 29 22 29 3b 0a 0a 0a 0a 2,.'Three',.'2001-02-14')");....
57520 70 72 69 6e 74 20 22 74 65 73 74 69 6e 67 20 74 61 62 6c 65 49 6e 66 6f 3a 5c 6e 22 3b 0a 24 73 print."testing.tableInfo:\n";.$s
57540 74 68 20 3d 20 24 64 62 68 2d 3e 71 75 65 72 79 28 22 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 th.=.$dbh->query("SELECT.*.FROM.
57560 70 68 70 74 65 73 74 20 6c 65 66 74 20 6a 6f 69 6e 20 70 68 70 74 65 73 74 5f 66 6b 20 6f 6e 20 phptest.left.join.phptest_fk.on.
57580 70 68 70 74 65 73 74 2e 61 20 3d 20 70 68 70 74 65 73 74 5f 66 6b 2e 66 6b 22 29 3b 0a 0a 24 74 phptest.a.=.phptest_fk.fk");..$t
575a0 61 62 6c 65 49 6e 66 6f 20 3d 20 24 73 74 68 2d 3e 74 61 62 6c 65 49 6e 66 6f 28 29 3b 0a 70 72 ableInfo.=.$sth->tableInfo();.pr
575c0 69 6e 74 20 22 5c 6e 66 69 72 73 74 20 66 69 65 6c 64 3a 5c 6e 22 3b 0a 70 72 69 6e 74 5f 66 6f int."\nfirst.field:\n";.print_fo
575e0 72 65 61 63 68 28 24 74 61 62 6c 65 49 6e 66 6f 5b 30 5d 29 20 3b 0a 70 72 69 6e 74 20 22 5c 6e reach($tableInfo[0]).;.print."\n
57600 65 69 67 68 74 20 28 6c 61 73 74 29 20 66 69 65 6c 64 3a 5c 6e 22 3b 0a 70 72 69 6e 74 5f 66 6f eight.(last).field:\n";.print_fo
57620 72 65 61 63 68 28 24 74 61 62 6c 65 49 6e 66 6f 5b 37 5d 29 20 3b 0a 0a 70 72 69 6e 74 20 22 5c reach($tableInfo[7]).;..print."\
57640 6e 74 65 73 74 69 6e 67 20 74 61 62 6c 65 49 6e 66 6f 20 28 44 42 5f 54 41 42 4c 45 49 4e 46 4f ntesting.tableInfo.(DB_TABLEINFO
57660 5f 4f 52 44 45 52 29 3a 5c 6e 22 3b 0a 24 74 61 62 6c 65 49 6e 66 6f 20 3d 24 73 74 68 2d 3e 74 _ORDER):\n";.$tableInfo.=$sth->t
57680 61 62 6c 65 49 6e 66 6f 28 44 42 5f 54 41 42 4c 45 49 4e 46 4f 5f 4f 52 44 45 52 29 3b 0a 70 72 ableInfo(DB_TABLEINFO_ORDER);.pr
576a0 69 6e 74 20 22 5c 6e 66 69 72 73 74 20 66 69 65 6c 64 3a 5c 6e 22 3b 0a 70 72 69 6e 74 5f 66 6f int."\nfirst.field:\n";.print_fo
576c0 72 65 61 63 68 28 24 74 61 62 6c 65 49 6e 66 6f 5b 30 5d 29 20 3b 0a 70 72 69 6e 74 20 22 5c 6e reach($tableInfo[0]).;.print."\n
576e0 65 69 67 68 74 20 66 69 65 6c 64 3a 5c 6e 22 3b 0a 70 72 69 6e 74 5f 66 6f 72 65 61 63 68 28 24 eight.field:\n";.print_foreach($
57700 74 61 62 6c 65 49 6e 66 6f 5b 33 5d 29 20 3b 0a 70 72 69 6e 74 20 22 5c 6e 6e 75 6d 5f 66 69 65 tableInfo[3]).;.print."\nnum_fie
57720 6c 64 73 3a 5c 6e 22 3b 0a 70 72 69 6e 74 20 22 24 74 61 62 6c 65 49 6e 66 6f 5b 6e 75 6d 5f 66 lds:\n";.print."$tableInfo[num_f
57740 69 65 6c 64 73 5d 5c 6e 22 20 3b 0a 70 72 69 6e 74 20 22 5c 6e 6f 72 64 65 72 3a 5c 6e 22 3b 0a ields]\n".;.print."\norder:\n";.
57760 70 72 69 6e 74 5f 66 6f 72 65 61 63 68 28 24 74 61 62 6c 65 49 6e 66 6f 5b 27 6f 72 64 65 72 27 print_foreach($tableInfo['order'
57780 5d 29 20 3b 0a 0a 70 72 69 6e 74 20 22 5c 6e 74 65 73 74 69 6e 67 20 74 61 62 6c 65 49 6e 66 6f ]).;..print."\ntesting.tableInfo
577a0 20 28 44 42 5f 54 41 42 4c 45 49 4e 46 4f 5f 4f 52 44 45 52 54 41 42 4c 45 29 3a 5c 6e 22 3b 0a .(DB_TABLEINFO_ORDERTABLE):\n";.
577c0 24 74 61 62 6c 65 49 6e 66 6f 20 3d 24 73 74 68 2d 3e 74 61 62 6c 65 49 6e 66 6f 28 44 42 5f 54 $tableInfo.=$sth->tableInfo(DB_T
577e0 41 42 4c 45 49 4e 46 4f 5f 4f 52 44 45 52 54 41 42 4c 45 29 3b 0a 70 72 69 6e 74 20 22 5c 6e 66 ABLEINFO_ORDERTABLE);.print."\nf
57800 69 72 73 74 20 66 69 65 6c 64 3a 5c 6e 22 3b 0a 70 72 69 6e 74 5f 66 6f 72 65 61 63 68 28 24 74 irst.field:\n";.print_foreach($t
57820 61 62 6c 65 49 6e 66 6f 5b 30 5d 29 20 3b 0a 70 72 69 6e 74 20 22 5c 6e 65 69 67 68 74 20 66 69 ableInfo[0]).;.print."\neight.fi
57840 65 6c 64 3a 5c 6e 22 3b 0a 70 72 69 6e 74 5f 66 6f 72 65 61 63 68 28 24 74 61 62 6c 65 49 6e 66 eld:\n";.print_foreach($tableInf
57860 6f 5b 33 5d 29 20 3b 0a 70 72 69 6e 74 20 22 5c 6e 6e 75 6d 5f 66 69 65 6c 64 73 3a 5c 6e 22 3b o[3]).;.print."\nnum_fields:\n";
57880 0a 70 72 69 6e 74 20 22 24 74 61 62 6c 65 49 6e 66 6f 5b 6e 75 6d 5f 66 69 65 6c 64 73 5d 5c 6e .print."$tableInfo[num_fields]\n
578a0 22 20 3b 0a 70 72 69 6e 74 20 22 5c 6e 6f 72 64 65 72 74 61 62 6c 65 3a 5c 6e 22 3b 0a 70 72 69 ".;.print."\nordertable:\n";.pri
578c0 6e 74 5f 66 6f 72 65 61 63 68 28 24 74 61 62 6c 65 49 6e 66 6f 5b 27 6f 72 64 65 72 74 61 62 6c nt_foreach($tableInfo['ordertabl
578e0 65 27 5d 29 20 3b 0a 70 72 69 6e 74 20 22 5c 6e 6f 72 64 65 72 74 61 62 6c 65 5b 70 68 70 74 65 e']).;.print."\nordertable[phpte
57900 73 74 5d 3a 5c 6e 22 3b 0a 70 72 69 6e 74 5f 66 6f 72 65 61 63 68 28 24 74 61 62 6c 65 49 6e 66 st]:\n";.print_foreach($tableInf
57920 6f 5b 27 6f 72 64 65 72 74 61 62 6c 65 27 5d 5b 27 70 68 70 74 65 73 74 27 5d 29 20 3b 0a 70 72 o['ordertable']['phptest']).;.pr
57940 69 6e 74 20 22 5c 6e 6f 72 64 65 72 74 61 62 6c 65 5b 70 68 70 74 65 73 74 5f 66 6b 5d 3a 5c 6e int."\nordertable[phptest_fk]:\n
57960 22 3b 0a 70 72 69 6e 74 5f 66 6f 72 65 61 63 68 28 24 74 61 62 6c 65 49 6e 66 6f 5b 27 6f 72 64 ";.print_foreach($tableInfo['ord
57980 65 72 74 61 62 6c 65 27 5d 5b 27 70 68 70 74 65 73 74 5f 66 6b 27 5d 29 20 3b 0a 0a 70 72 69 6e ertable']['phptest_fk']).;..prin
579a0 74 20 22 5c 6e 74 65 73 74 69 6e 67 20 74 61 62 6c 65 49 6e 66 6f 20 28 74 61 62 6c 65 20 77 69 t."\ntesting.tableInfo.(table.wi
579c0 74 68 6f 75 74 20 71 75 65 72 79 2d 72 65 73 75 6c 74 29 3a 5c 6e 22 3b 0a 0a 24 74 61 62 6c 65 thout.query-result):\n";..$table
579e0 49 6e 66 6f 20 3d 20 24 64 62 68 2d 3e 74 61 62 6c 65 49 6e 66 6f 28 22 70 68 70 74 65 73 74 22 Info.=.$dbh->tableInfo("phptest"
57a00 29 3b 0a 70 72 69 6e 74 20 22 5c 6e 66 69 72 73 74 20 66 69 65 6c 64 3a 5c 6e 22 3b 0a 70 72 69 );.print."\nfirst.field:\n";.pri
57a20 6e 74 5f 66 6f 72 65 61 63 68 28 24 74 61 62 6c 65 49 6e 66 6f 5b 30 5d 29 20 3b 0a 70 72 69 6e nt_foreach($tableInfo[0]).;.prin
57a40 74 20 22 5c 6e 66 6f 75 72 74 68 20 28 6c 61 73 74 29 20 66 69 65 6c 64 3a 5c 6e 22 3b 0a 70 72 t."\nfourth.(last).field:\n";.pr
57a60 69 6e 74 5f 66 6f 72 65 61 63 68 28 24 74 61 62 6c 65 49 6e 66 6f 5b 33 5d 29 20 3b 0a 0a 70 72 int_foreach($tableInfo[3]).;..pr
57a80 69 6e 74 20 22 5c 6e 74 65 73 74 69 6e 67 20 74 61 62 6c 65 49 6e 66 6f 20 28 74 61 62 6c 65 20 int."\ntesting.tableInfo.(table.
57aa0 77 69 74 68 6f 75 74 20 71 75 65 72 79 2d 72 65 73 75 6c 74 20 61 6e 64 20 44 42 5f 54 41 42 4c without.query-result.and.DB_TABL
57ac0 45 49 4e 46 4f 5f 46 55 4c 4c 29 3a 5c 6e 22 3b 0a 0a 24 74 61 62 6c 65 49 6e 66 6f 20 3d 20 24 EINFO_FULL):\n";..$tableInfo.=.$
57ae0 64 62 68 2d 3e 74 61 62 6c 65 49 6e 66 6f 28 22 70 68 70 74 65 73 74 22 2c 44 42 5f 54 41 42 4c dbh->tableInfo("phptest",DB_TABL
57b00 45 49 4e 46 4f 5f 46 55 4c 4c 29 3b 0a 70 72 69 6e 74 20 22 5c 6e 66 69 72 73 74 20 66 69 65 6c EINFO_FULL);.print."\nfirst.fiel
57b20 64 3a 5c 6e 22 3b 0a 70 72 69 6e 74 5f 66 6f 72 65 61 63 68 28 24 74 61 62 6c 65 49 6e 66 6f 5b d:\n";.print_foreach($tableInfo[
57b40 30 5d 29 20 3b 0a 70 72 69 6e 74 20 22 5c 6e 6f 72 64 65 72 3a 5c 6e 22 3b 0a 70 72 69 6e 74 5f 0]).;.print."\norder:\n";.print_
57b60 66 6f 72 65 61 63 68 28 24 74 61 62 6c 65 49 6e 66 6f 5b 27 6f 72 64 65 72 27 5d 29 20 3b 0a 70 foreach($tableInfo['order']).;.p
57b80 72 69 6e 74 20 22 5c 6e 6f 72 64 65 72 74 61 62 6c 65 3a 5c 6e 22 3b 0a 70 72 69 6e 74 5f 66 6f rint."\nordertable:\n";.print_fo
57ba0 72 65 61 63 68 28 24 74 61 62 6c 65 49 6e 66 6f 5b 27 6f 72 64 65 72 74 61 62 6c 65 27 5d 29 20 reach($tableInfo['ordertable']).
57bc0 3b 0a 70 72 69 6e 74 20 22 5c 6e 6f 72 64 65 72 74 61 62 6c 65 5b 70 68 70 74 65 73 74 5d 3a 5c ;.print."\nordertable[phptest]:\
57be0 6e 22 3b 0a 70 72 69 6e 74 5f 66 6f 72 65 61 63 68 28 24 74 61 62 6c 65 49 6e 66 6f 5b 27 6f 72 n";.print_foreach($tableInfo['or
57c00 64 65 72 74 61 62 6c 65 27 5d 5b 27 70 68 70 74 65 73 74 27 5d 29 20 3b 0a 0a 0a 0a 2f 2f 70 72 dertable']['phptest']).;....//pr
57c20 69 6e 74 5f 66 6f 72 65 61 63 68 28 24 74 61 62 6c 65 49 6e 66 6f 5b 30 5d 29 20 3b 0a 24 64 62 int_foreach($tableInfo[0]).;.$db
57c40 68 2d 3e 71 75 65 72 79 28 22 44 45 4c 45 54 45 20 46 52 4f 4d 20 70 68 70 74 65 73 74 20 57 48 h->query("DELETE.FROM.phptest.WH
57c60 45 52 45 20 61 20 3c 3e 20 34 32 22 29 3b 0a 24 64 62 68 2d 3e 71 75 65 72 79 28 22 44 52 4f 50 ERE.a.<>.42");.$dbh->query("DROP
57c80 20 54 41 42 4c 45 20 70 68 70 74 65 73 74 5f 66 6b 22 29 3b 0a 0a 66 75 6e 63 74 69 6f 6e 20 70 .TABLE.phptest_fk");..function.p
57ca0 72 69 6e 74 5f 66 6f 72 65 61 63 68 20 28 24 61 72 72 61 79 29 20 7b 0a 20 20 20 20 66 6f 72 65 rint_foreach.($array).{.....fore
57cc0 61 63 68 20 28 24 61 72 72 61 79 20 61 73 20 24 6b 65 79 20 3d 3e 20 24 76 61 6c 75 65 29 20 7b ach.($array.as.$key.=>.$value).{
57ce0 0a 20 20 20 20 20 20 20 20 70 72 69 6e 74 20 22 24 6b 65 79 20 3d 3e 20 24 76 61 6c 75 65 20 5c .........print."$key.=>.$value.\
57d00 6e 22 3b 0a 20 20 20 20 7d 0a 0a 7d 0a 3f 3e 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 n";.....}..}.?>.................
57d20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
57d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
57d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
57d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
57da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
57dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
57de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
57e00 44 42 2d 31 2e 35 2e 30 52 43 31 2f 74 65 73 74 73 2f 74 72 61 6e 73 61 63 74 69 6f 6e 73 2e 69 DB-1.5.0RC1/tests/transactions.i
57e20 6e 63 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 nc..............................
57e40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
57e60 00 00 00 00 31 30 30 36 34 34 20 00 20 20 20 37 36 34 20 00 20 20 20 31 34 34 20 00 20 20 20 20 ....100644.....764.....144......
57e80 20 20 20 33 31 33 34 20 20 37 34 36 37 34 31 34 37 32 34 20 20 31 32 30 33 37 20 00 00 00 00 00 ...3134..7467414724..12037......
57ea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
57ec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
57ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
57f00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
57f20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
57f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
57f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
57f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
57fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
57fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
57fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
58000 3c 3f 70 68 70 0a 0a 2f 2f 20 56 69 65 77 20 74 68 65 20 74 61 62 6c 65 20 66 72 6f 6d 20 61 20 <?php..//.View.the.table.from.a.
58020 73 65 70 61 72 61 74 65 20 63 6f 6e 6e 65 63 74 69 6f 6e 20 73 6f 20 77 65 20 64 6f 6e 27 74 20 separate.connection.so.we.don't.
58040 64 69 73 74 75 72 62 0a 2f 2f 20 74 68 65 20 74 72 61 6e 73 61 63 74 69 6f 6e 2e 0a 24 64 62 68 disturb.//.the.transaction..$dbh
58060 32 20 3d 20 44 42 3a 3a 63 6f 6e 6e 65 63 74 28 24 64 62 68 2d 3e 64 73 6e 29 3b 0a 0a 66 75 6e 2.=.DB::connect($dbh->dsn);..fun
58080 63 74 69 6f 6e 20 64 75 6d 70 74 61 62 6c 65 28 29 20 7b 0a 20 20 20 20 67 6c 6f 62 61 6c 20 24 ction.dumptable().{.....global.$
580a0 64 62 68 2c 20 24 64 62 68 32 3b 0a 20 20 20 20 70 72 69 6e 74 66 28 22 25 73 20 6f 70 73 3d 25 dbh,.$dbh2;.....printf("%s.ops=%
580c0 64 5c 6e 22 2c 20 69 6d 70 6c 6f 64 65 28 22 20 22 2c 20 24 64 62 68 2d 3e 67 65 74 43 6f 6c 28 d\n",.implode(".",.$dbh->getCol(
580e0 22 53 45 4c 45 43 54 20 62 20 46 52 4f 4d 20 70 68 70 74 65 73 74 22 29 29 2c 0a 20 20 20 20 20 "SELECT.b.FROM.phptest")),......
58100 20 20 20 20 20 20 24 64 62 68 2d 3e 74 72 61 6e 73 61 63 74 69 6f 6e 5f 6f 70 63 6f 75 6e 74 29 ......$dbh->transaction_opcount)
58120 3b 0a 7d 0a 24 64 62 68 2d 3e 73 65 74 45 72 72 6f 72 48 61 6e 64 6c 69 6e 67 28 50 45 41 52 5f ;.}.$dbh->setErrorHandling(PEAR_
58140 45 52 52 4f 52 5f 44 49 45 29 3b 0a 24 64 62 68 2d 3e 61 75 74 6f 43 6f 6d 6d 69 74 28 74 72 75 ERROR_DIE);.$dbh->autoCommit(tru
58160 65 29 3b 0a 24 64 62 68 2d 3e 71 75 65 72 79 28 22 49 4e 53 45 52 54 20 49 4e 54 4f 20 70 68 70 e);.$dbh->query("INSERT.INTO.php
58180 74 65 73 74 20 56 41 4c 55 45 53 28 31 2c 20 27 6f 6e 65 27 2c 20 27 4f 6e 65 27 2c 20 27 32 30 test.VALUES(1,.'one',.'One',.'20
581a0 30 31 2d 30 32 2d 31 39 27 29 22 29 3b 0a 70 72 69 6e 74 20 22 61 66 74 65 72 20 61 75 74 6f 63 01-02-19')");.print."after.autoc
581c0 6f 6d 6d 69 74 3a 20 22 3b 0a 64 75 6d 70 74 61 62 6c 65 28 29 3b 0a 24 64 62 68 2d 3e 61 75 74 ommit:.";.dumptable();.$dbh->aut
581e0 6f 43 6f 6d 6d 69 74 28 66 61 6c 73 65 29 3b 0a 24 64 62 68 2d 3e 71 75 65 72 79 28 22 49 4e 53 oCommit(false);.$dbh->query("INS
58200 45 52 54 20 49 4e 54 4f 20 70 68 70 74 65 73 74 20 56 41 4c 55 45 53 28 32 2c 20 27 74 77 6f 27 ERT.INTO.phptest.VALUES(2,.'two'
58220 2c 20 27 54 77 6f 27 2c 20 27 32 30 30 31 2d 30 32 2d 32 30 27 29 22 29 3b 0a 24 64 62 68 2d 3e ,.'Two',.'2001-02-20')");.$dbh->
58240 71 75 65 72 79 28 22 49 4e 53 45 52 54 20 49 4e 54 4f 20 70 68 70 74 65 73 74 20 56 41 4c 55 45 query("INSERT.INTO.phptest.VALUE
58260 53 28 33 2c 20 27 74 68 72 65 65 27 2c 20 27 54 68 72 65 65 27 2c 20 27 32 30 30 31 2d 30 32 2d S(3,.'three',.'Three',.'2001-02-
58280 32 31 27 29 22 29 3b 0a 70 72 69 6e 74 20 22 62 65 66 6f 72 65 20 63 6f 6d 6d 69 74 3a 20 22 3b 21')");.print."before.commit:.";
582a0 0a 64 75 6d 70 74 61 62 6c 65 28 29 3b 0a 24 64 62 68 2d 3e 63 6f 6d 6d 69 74 28 29 3b 0a 70 72 .dumptable();.$dbh->commit();.pr
582c0 69 6e 74 20 22 61 66 74 65 72 20 63 6f 6d 6d 69 74 3a 20 22 3b 0a 64 75 6d 70 74 61 62 6c 65 28 int."after.commit:.";.dumptable(
582e0 29 3b 0a 24 64 62 68 2d 3e 71 75 65 72 79 28 22 49 4e 53 45 52 54 20 49 4e 54 4f 20 70 68 70 74 );.$dbh->query("INSERT.INTO.phpt
58300 65 73 74 20 56 41 4c 55 45 53 28 34 2c 20 27 66 6f 75 72 27 2c 20 27 46 6f 75 72 27 2c 20 27 32 est.VALUES(4,.'four',.'Four',.'2
58320 30 30 31 2d 30 32 2d 32 32 27 29 22 29 3b 0a 24 64 62 68 2d 3e 71 75 65 72 79 28 22 49 4e 53 45 001-02-22')");.$dbh->query("INSE
58340 52 54 20 49 4e 54 4f 20 70 68 70 74 65 73 74 20 56 41 4c 55 45 53 28 35 2c 20 27 66 69 76 65 27 RT.INTO.phptest.VALUES(5,.'five'
58360 2c 20 27 46 69 76 65 27 2c 20 27 32 30 30 31 2d 30 32 2d 32 33 27 29 22 29 3b 0a 70 72 69 6e 74 ,.'Five',.'2001-02-23')");.print
58380 20 22 62 65 66 6f 72 65 20 72 6f 6c 6c 62 61 63 6b 3a 20 22 3b 0a 64 75 6d 70 74 61 62 6c 65 28 ."before.rollback:.";.dumptable(
583a0 29 3b 0a 24 64 62 68 2d 3e 72 6f 6c 6c 62 61 63 6b 28 29 3b 0a 70 72 69 6e 74 20 22 61 66 74 65 );.$dbh->rollback();.print."afte
583c0 72 20 72 6f 6c 6c 62 61 63 6b 3a 20 22 3b 0a 64 75 6d 70 74 61 62 6c 65 28 29 3b 0a 24 64 62 68 r.rollback:.";.dumptable();.$dbh
583e0 2d 3e 61 75 74 6f 43 6f 6d 6d 69 74 28 74 72 75 65 29 3b 0a 24 64 62 68 2d 3e 71 75 65 72 79 28 ->autoCommit(true);.$dbh->query(
58400 22 49 4e 53 45 52 54 20 49 4e 54 4f 20 70 68 70 74 65 73 74 20 56 41 4c 55 45 53 28 36 2c 20 27 "INSERT.INTO.phptest.VALUES(6,.'
58420 73 69 78 27 2c 20 27 53 69 78 27 2c 20 27 32 30 30 31 2d 30 32 2d 32 34 27 29 22 29 3b 0a 24 64 six',.'Six',.'2001-02-24')");.$d
58440 62 68 2d 3e 71 75 65 72 79 28 22 49 4e 53 45 52 54 20 49 4e 54 4f 20 70 68 70 74 65 73 74 20 56 bh->query("INSERT.INTO.phptest.V
58460 41 4c 55 45 53 28 37 2c 20 27 73 65 76 65 6e 27 2c 20 27 53 65 76 65 6e 27 2c 20 27 32 30 30 31 ALUES(7,.'seven',.'Seven',.'2001
58480 2d 30 32 2d 32 35 27 29 22 29 3b 0a 70 72 69 6e 74 20 22 62 65 66 6f 72 65 20 61 75 74 6f 63 6f -02-25')");.print."before.autoco
584a0 6d 6d 69 74 2b 72 6f 6c 6c 62 61 63 6b 3a 20 22 3b 0a 64 75 6d 70 74 61 62 6c 65 28 29 3b 0a 24 mmit+rollback:.";.dumptable();.$
584c0 64 62 68 2d 3e 72 6f 6c 6c 62 61 63 6b 28 29 3b 0a 70 72 69 6e 74 20 22 61 66 74 65 72 20 61 75 dbh->rollback();.print."after.au
584e0 74 6f 63 6f 6d 6d 69 74 2b 72 6f 6c 6c 62 61 63 6b 3a 20 22 3b 0a 64 75 6d 70 74 61 62 6c 65 28 tocommit+rollback:.";.dumptable(
58500 29 3b 0a 0a 70 72 69 6e 74 20 22 74 65 73 74 69 6e 67 20 74 68 61 74 20 73 65 6c 65 63 74 20 64 );..print."testing.that.select.d
58520 6f 65 73 6e 27 74 20 64 69 73 74 75 72 62 65 20 6f 70 63 6f 75 6e 74 3a 20 22 3b 0a 24 64 62 68 oesn't.disturbe.opcount:.";.$dbh
58540 2d 3e 61 75 74 6f 43 6f 6d 6d 69 74 28 66 61 6c 73 65 29 3b 0a 24 64 62 68 2d 3e 73 69 6d 70 6c ->autoCommit(false);.$dbh->simpl
58560 65 51 75 65 72 79 28 22 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 70 68 70 74 65 73 74 22 29 3b eQuery("SELECT.*.FROM.phptest");
58580 0a 24 64 62 68 2d 3e 73 69 6d 70 6c 65 51 75 65 72 79 28 22 53 45 4c 45 43 54 20 61 2c 63 20 46 .$dbh->simpleQuery("SELECT.a,c.F
585a0 52 4f 4d 20 70 68 70 74 65 73 74 22 29 3b 0a 24 64 62 68 2d 3e 73 69 6d 70 6c 65 51 75 65 72 79 ROM.phptest");.$dbh->simpleQuery
585c0 28 22 53 45 4c 45 43 54 20 62 2c 64 20 46 52 4f 4d 20 70 68 70 74 65 73 74 22 29 3b 0a 69 66 20 ("SELECT.b,d.FROM.phptest");.if.
585e0 28 24 64 62 68 2d 3e 74 72 61 6e 73 61 63 74 69 6f 6e 5f 6f 70 63 6f 75 6e 74 20 3d 3d 20 30 29 ($dbh->transaction_opcount.==.0)
58600 20 7b 0a 20 20 20 20 70 72 69 6e 74 20 22 6f 6b 5c 6e 22 3b 0a 7d 20 65 6c 73 65 20 7b 0a 20 20 .{.....print."ok\n";.}.else.{...
58620 20 20 70 72 69 6e 74 20 22 66 61 69 6c 65 64 20 28 63 6f 75 6e 74 3d 24 64 62 68 2d 3e 74 72 61 ..print."failed.(count=$dbh->tra
58640 6e 73 61 63 74 69 6f 6e 5f 6f 70 63 6f 75 6e 74 29 5c 6e 22 3b 0a 7d 0a 0a 3f 3e 0a 00 00 00 00 nsaction_opcount)\n";.}..?>.....
58660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
58680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
586a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
586c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
586e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
58700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
58720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
58740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
58760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
58780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
587a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
587c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
587e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
58800 44 42 2d 31 2e 35 2e 30 52 43 31 2f 74 65 73 74 73 2f 64 72 69 76 65 72 2f 30 31 63 6f 6e 6e 65 DB-1.5.0RC1/tests/driver/01conne
58820 63 74 2e 70 68 70 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ct.phpt.........................
58840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
58860 00 00 00 00 31 30 30 36 34 34 20 00 20 20 20 37 36 34 20 00 20 20 20 31 34 34 20 00 20 20 20 20 ....100644.....764.....144......
58880 20 20 20 20 35 30 31 20 20 37 34 36 37 34 31 34 37 32 34 20 20 31 32 35 37 31 20 00 00 00 00 00 ....501..7467414724..12571......
588a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
588c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
588e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
58900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
58920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
58940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
58960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
58980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
589a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
589c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
589e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
58a00 2d 2d 54 45 53 54 2d 2d 0a 44 42 5f 64 72 69 76 65 72 3a 3a 63 6f 6e 6e 65 63 74 20 74 65 73 74 --TEST--.DB_driver::connect.test
58a20 0a 2d 2d 53 4b 49 50 49 46 2d 2d 0a 3c 3f 70 68 70 20 63 68 64 69 72 28 64 69 72 6e 61 6d 65 28 .--SKIPIF--.<?php.chdir(dirname(
58a40 5f 5f 46 49 4c 45 5f 5f 29 29 3b 20 72 65 71 75 69 72 65 20 22 73 6b 69 70 69 66 2e 69 6e 63 22 __FILE__));.require."skipif.inc"
58a60 3b 20 3f 3e 0a 2d 2d 46 49 4c 45 2d 2d 0a 3c 3f 70 68 70 0a 72 65 71 75 69 72 65 20 22 63 6f 6e ;.?>.--FILE--.<?php.require."con
58a80 6e 65 63 74 2e 69 6e 63 22 3b 0a 69 66 20 28 69 73 5f 6f 62 6a 65 63 74 28 24 64 62 68 29 29 20 nect.inc";.if.(is_object($dbh)).
58aa0 7b 0a 20 20 20 20 70 72 69 6e 74 20 22 5c 24 64 62 68 20 69 73 20 61 6e 20 6f 62 6a 65 63 74 5c {.....print."\$dbh.is.an.object\
58ac0 6e 22 3b 0a 7d 0a 69 66 20 28 69 73 5f 72 65 73 6f 75 72 63 65 28 24 64 62 68 2d 3e 63 6f 6e 6e n";.}.if.(is_resource($dbh->conn
58ae0 65 63 74 69 6f 6e 29 29 20 7b 0a 20 20 20 20 70 72 69 6e 74 20 22 5c 24 64 62 68 20 69 73 20 63 ection)).{.....print."\$dbh.is.c
58b00 6f 6e 6e 65 63 74 65 64 5c 6e 22 3b 0a 7d 0a 3f 3e 0a 2d 2d 45 58 50 45 43 54 2d 2d 0a 24 64 62 onnected\n";.}.?>.--EXPECT--.$db
58b20 68 20 69 73 20 61 6e 20 6f 62 6a 65 63 74 0a 24 64 62 68 20 69 73 20 63 6f 6e 6e 65 63 74 65 64 h.is.an.object.$dbh.is.connected
58b40 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
58b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
58b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
58ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
58bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
58be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
58c00 44 42 2d 31 2e 35 2e 30 52 43 31 2f 74 65 73 74 73 2f 64 72 69 76 65 72 2f 30 32 66 65 74 63 68 DB-1.5.0RC1/tests/driver/02fetch
58c20 2e 70 68 70 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .phpt...........................
58c40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
58c60 00 00 00 00 31 30 30 36 34 34 20 00 20 20 20 37 36 34 20 00 20 20 20 31 34 34 20 00 20 20 20 20 ....100644.....764.....144......
58c80 20 20 20 31 37 34 35 20 20 37 34 36 37 34 31 34 37 32 34 20 20 31 32 32 36 35 20 00 00 00 00 00 ...1745..7467414724..12265......
58ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
58cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
58ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
58d00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
58d20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
58d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
58d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
58d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
58da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
58dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
58de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
58e00 2d 2d 54 45 53 54 2d 2d 0a 44 42 5f 64 72 69 76 65 72 3a 3a 66 65 74 63 68 20 74 65 73 74 0a 2d --TEST--.DB_driver::fetch.test.-
58e20 2d 53 4b 49 50 49 46 2d 2d 0a 3c 3f 70 68 70 20 63 68 64 69 72 28 64 69 72 6e 61 6d 65 28 5f 5f -SKIPIF--.<?php.chdir(dirname(__
58e40 46 49 4c 45 5f 5f 29 29 3b 20 69 6e 63 6c 75 64 65 28 22 73 6b 69 70 69 66 2e 69 6e 63 22 29 3b FILE__));.include("skipif.inc");
58e60 20 3f 3e 0a 2d 2d 46 49 4c 45 2d 2d 0a 3c 3f 70 68 70 0a 69 6e 63 6c 75 64 65 28 22 6d 6b 74 61 .?>.--FILE--.<?php.include("mkta
58e80 62 6c 65 2e 69 6e 63 22 29 3b 0a 69 6e 63 6c 75 64 65 28 22 2e 2e 2f 66 65 74 63 68 72 6f 77 2e ble.inc");.include("../fetchrow.
58ea0 69 6e 63 22 29 3b 0a 69 6e 63 6c 75 64 65 28 22 2e 2e 2f 66 65 74 63 68 6d 6f 64 65 73 2e 69 6e inc");.include("../fetchmodes.in
58ec0 63 22 29 3b 0a 3f 3e 0a 2d 2d 45 58 50 45 43 54 2d 2d 0a 74 65 73 74 69 6e 67 20 66 65 74 63 68 c");.?>.--EXPECT--.testing.fetch
58ee0 72 6f 77 3a 0a 72 6f 77 20 31 3a 20 34 32 2c 20 62 69 6e 67 2c 20 54 68 69 73 20 69 73 20 61 20 row:.row.1:.42,.bing,.This.is.a.
58f00 74 65 73 74 2c 20 31 39 39 39 2d 31 31 2d 32 31 0a 72 6f 77 20 32 3a 20 31 2c 20 6f 6e 65 2c 20 test,.1999-11-21.row.2:.1,.one,.
58f20 4f 6e 65 2c 20 32 30 30 31 2d 30 32 2d 31 36 0a 72 6f 77 20 33 3a 20 32 2c 20 74 77 6f 2c 20 54 One,.2001-02-16.row.3:.2,.two,.T
58f40 77 6f 2c 20 32 30 30 31 2d 30 32 2d 31 35 0a 72 6f 77 20 34 3a 20 33 2c 20 74 68 72 65 65 2c 20 wo,.2001-02-15.row.4:.3,.three,.
58f60 54 68 72 65 65 2c 20 32 30 30 31 2d 30 32 2d 31 34 0a 72 6f 77 20 35 3a 20 4e 55 4c 4c 0a 74 65 Three,.2001-02-14.row.5:.NULL.te
58f80 73 74 69 6e 67 20 66 65 74 63 68 6d 6f 64 65 73 3a 20 66 65 74 63 68 72 6f 77 20 64 65 66 61 75 sting.fetchmodes:.fetchrow.defau
58fa0 6c 74 20 64 65 66 61 75 6c 74 0a 30 20 31 20 32 20 33 0a 74 65 73 74 69 6e 67 20 66 65 74 63 68 lt.default.0.1.2.3.testing.fetch
58fc0 6d 6f 64 65 73 3a 20 66 65 74 63 68 69 6e 74 6f 20 64 65 66 61 75 6c 74 20 64 65 66 61 75 6c 74 modes:.fetchinto.default.default
58fe0 0a 30 20 31 20 32 20 33 0a 74 65 73 74 69 6e 67 20 66 65 74 63 68 6d 6f 64 65 73 3a 20 66 65 74 .0.1.2.3.testing.fetchmodes:.fet
59000 63 68 72 6f 77 20 6f 72 64 65 72 65 64 20 64 65 66 61 75 6c 74 0a 30 20 31 20 32 20 33 0a 74 65 chrow.ordered.default.0.1.2.3.te
59020 73 74 69 6e 67 20 66 65 74 63 68 6d 6f 64 65 73 3a 20 66 65 74 63 68 72 6f 77 20 61 73 73 6f 63 sting.fetchmodes:.fetchrow.assoc
59040 20 64 65 66 61 75 6c 74 0a 61 20 62 20 63 20 64 0a 74 65 73 74 69 6e 67 20 66 65 74 63 68 6d 6f .default.a.b.c.d.testing.fetchmo
59060 64 65 73 3a 20 66 65 74 63 68 72 6f 77 20 6f 72 64 65 72 65 64 20 64 65 66 61 75 6c 74 20 77 69 des:.fetchrow.ordered.default.wi
59080 74 68 20 61 73 73 6f 63 20 73 70 65 63 69 66 69 65 64 0a 61 20 62 20 63 20 64 0a 74 65 73 74 69 th.assoc.specified.a.b.c.d.testi
590a0 6e 67 20 66 65 74 63 68 6d 6f 64 65 73 3a 20 66 65 74 63 68 72 6f 77 20 61 73 73 6f 63 20 64 65 ng.fetchmodes:.fetchrow.assoc.de
590c0 66 61 75 6c 74 20 77 69 74 68 20 6f 72 64 65 72 65 64 20 73 70 65 63 69 66 69 65 64 0a 30 20 31 fault.with.ordered.specified.0.1
590e0 20 32 20 33 0a 74 65 73 74 69 6e 67 20 66 65 74 63 68 6d 6f 64 65 73 3a 20 66 65 74 63 68 69 6e .2.3.testing.fetchmodes:.fetchin
59100 74 6f 20 6f 72 64 65 72 65 64 20 64 65 66 61 75 6c 74 0a 30 20 31 20 32 20 33 0a 74 65 73 74 69 to.ordered.default.0.1.2.3.testi
59120 6e 67 20 66 65 74 63 68 6d 6f 64 65 73 3a 20 66 65 74 63 68 69 6e 74 6f 20 61 73 73 6f 63 20 64 ng.fetchmodes:.fetchinto.assoc.d
59140 65 66 61 75 6c 74 0a 61 20 62 20 63 20 64 0a 74 65 73 74 69 6e 67 20 66 65 74 63 68 6d 6f 64 65 efault.a.b.c.d.testing.fetchmode
59160 73 3a 20 66 65 74 63 68 69 6e 74 6f 20 6f 72 64 65 72 65 64 20 64 65 66 61 75 6c 74 20 77 69 74 s:.fetchinto.ordered.default.wit
59180 68 20 61 73 73 6f 63 20 73 70 65 63 69 66 69 65 64 0a 61 20 62 20 63 20 64 0a 74 65 73 74 69 6e h.assoc.specified.a.b.c.d.testin
591a0 67 20 66 65 74 63 68 6d 6f 64 65 73 3a 20 66 65 74 63 68 69 6e 74 6f 20 61 73 73 6f 63 20 64 65 g.fetchmodes:.fetchinto.assoc.de
591c0 66 61 75 6c 74 20 77 69 74 68 20 6f 72 64 65 72 65 64 20 73 70 65 63 69 66 69 65 64 0a 30 20 31 fault.with.ordered.specified.0.1
591e0 20 32 20 33 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .2.3............................
59200 44 42 2d 31 2e 35 2e 30 52 43 31 2f 74 65 73 74 73 2f 64 72 69 76 65 72 2f 30 33 73 69 6d 70 6c DB-1.5.0RC1/tests/driver/03simpl
59220 65 71 75 65 72 79 2e 70 68 70 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 equery.phpt.....................
59240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
59260 00 00 00 00 31 30 30 36 34 34 20 00 20 20 20 37 36 34 20 00 20 20 20 31 34 34 20 00 20 20 20 20 ....100644.....764.....144......
59280 20 20 20 20 33 30 37 20 20 37 34 36 37 34 31 34 37 32 34 20 20 31 33 35 32 35 20 00 00 00 00 00 ....307..7467414724..13525......
592a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
592c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
592e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
59300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
59320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
59340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
59360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
59380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
593a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
593c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
593e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
59400 2d 2d 54 45 53 54 2d 2d 0a 44 42 5f 64 72 69 76 65 72 3a 3a 73 69 6d 70 6c 65 51 75 65 72 79 20 --TEST--.DB_driver::simpleQuery.
59420 74 65 73 74 0a 2d 2d 53 4b 49 50 49 46 2d 2d 0a 3c 3f 70 68 70 20 63 68 64 69 72 28 64 69 72 6e test.--SKIPIF--.<?php.chdir(dirn
59440 61 6d 65 28 5f 5f 46 49 4c 45 5f 5f 29 29 3b 20 69 6e 63 6c 75 64 65 28 22 73 6b 69 70 69 66 2e ame(__FILE__));.include("skipif.
59460 69 6e 63 22 29 3b 20 3f 3e 0a 2d 2d 46 49 4c 45 2d 2d 0a 3c 3f 70 68 70 0a 69 6e 63 6c 75 64 65 inc");.?>.--FILE--.<?php.include
59480 28 22 6d 6b 74 61 62 6c 65 2e 69 6e 63 22 29 3b 0a 69 6e 63 6c 75 64 65 28 22 2e 2e 2f 73 69 6d ("mktable.inc");.include("../sim
594a0 70 6c 65 71 75 65 72 79 2e 69 6e 63 22 29 3b 0a 3f 3e 0a 2d 2d 45 58 50 45 43 54 2d 2d 0a 72 65 plequery.inc");.?>.--EXPECT--.re
594c0 73 6f 75 72 63 65 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 source..........................
594e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
59500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
59520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
59540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
59560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
59580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
595a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
595c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
595e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
59600 44 42 2d 31 2e 35 2e 30 52 43 31 2f 74 65 73 74 73 2f 64 72 69 76 65 72 2f 30 34 6e 75 6d 63 6f DB-1.5.0RC1/tests/driver/04numco
59620 6c 73 2e 70 68 70 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ls.phpt.........................
59640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
59660 00 00 00 00 31 30 30 36 34 34 20 00 20 20 20 37 36 34 20 00 20 20 20 31 34 34 20 00 20 20 20 20 ....100644.....764.....144......
59680 20 20 20 20 32 37 36 20 20 37 34 36 37 34 31 34 37 32 34 20 20 31 32 36 33 34 20 00 00 00 00 00 ....276..7467414724..12634......
596a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
596c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
596e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
59700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
59720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
59740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
59760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
59780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
597a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
597c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
597e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
59800 2d 2d 54 45 53 54 2d 2d 0a 44 42 5f 64 72 69 76 65 72 3a 3a 6e 75 6d 43 6f 6c 73 20 74 65 73 74 --TEST--.DB_driver::numCols.test
59820 0a 2d 2d 53 4b 49 50 49 46 2d 2d 0a 3c 3f 70 68 70 20 63 68 64 69 72 28 64 69 72 6e 61 6d 65 28 .--SKIPIF--.<?php.chdir(dirname(
59840 5f 5f 46 49 4c 45 5f 5f 29 29 3b 20 69 6e 63 6c 75 64 65 28 22 73 6b 69 70 69 66 2e 69 6e 63 22 __FILE__));.include("skipif.inc"
59860 29 3b 20 3f 3e 0a 2d 2d 46 49 4c 45 2d 2d 0a 3c 3f 70 68 70 0a 69 6e 63 6c 75 64 65 28 22 6d 6b );.?>.--FILE--.<?php.include("mk
59880 74 61 62 6c 65 2e 69 6e 63 22 29 3b 0a 69 6e 63 6c 75 64 65 28 22 2e 2e 2f 6e 75 6d 63 6f 6c 73 table.inc");.include("../numcols
598a0 2e 69 6e 63 22 29 3b 0a 3f 3e 0a 2d 2d 45 58 50 45 43 54 2d 2d 0a 31 0a 32 0a 33 0a 34 0a 00 00 .inc");.?>.--EXPECT--.1.2.3.4...
598c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
598e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
59900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
59920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
59940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
59960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
59980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
599a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
599c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
599e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
59a00 44 42 2d 31 2e 35 2e 30 52 43 31 2f 74 65 73 74 73 2f 64 72 69 76 65 72 2f 30 35 73 65 71 75 65 DB-1.5.0RC1/tests/driver/05seque
59a20 6e 63 65 73 2e 70 68 70 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 nces.phpt.......................
59a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
59a60 00 00 00 00 31 30 30 36 34 34 20 00 20 20 20 37 36 34 20 00 20 20 20 31 34 34 20 00 20 20 20 20 ....100644.....764.....144......
59a80 20 20 20 20 34 32 32 20 20 37 34 36 37 34 31 34 37 32 34 20 20 31 33 31 34 31 20 00 00 00 00 00 ....422..7467414724..13141......
59aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
59ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
59ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
59b00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
59b20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
59b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
59b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
59b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
59ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
59bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
59be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
59c00 2d 2d 54 45 53 54 2d 2d 0a 44 42 5f 64 72 69 76 65 72 3a 3a 73 65 71 75 65 6e 63 65 73 0a 2d 2d --TEST--.DB_driver::sequences.--
59c20 53 4b 49 50 49 46 2d 2d 0a 3c 3f 70 68 70 20 63 68 64 69 72 28 64 69 72 6e 61 6d 65 28 5f 5f 46 SKIPIF--.<?php.chdir(dirname(__F
59c40 49 4c 45 5f 5f 29 29 3b 20 72 65 71 75 69 72 65 20 22 73 6b 69 70 69 66 2e 69 6e 63 22 3b 20 3f ILE__));.require."skipif.inc";.?
59c60 3e 0a 2d 2d 46 49 4c 45 2d 2d 0a 3c 3f 70 68 70 0a 72 65 71 75 69 72 65 20 22 63 6f 6e 6e 65 63 >.--FILE--.<?php.require."connec
59c80 74 2e 69 6e 63 22 3b 0a 72 65 71 75 69 72 65 20 22 2e 2e 2f 73 65 71 75 65 6e 63 65 73 2e 69 6e t.inc";.require."../sequences.in
59ca0 63 22 3b 0a 3f 3e 0a 2d 2d 45 58 50 45 43 54 2d 2d 0a 44 42 20 45 72 72 6f 72 3a 20 6e 6f 20 73 c";.?>.--EXPECT--.DB.Error:.no.s
59cc0 75 63 68 20 74 61 62 6c 65 0a 44 42 20 45 72 72 6f 72 3a 20 6e 6f 20 73 75 63 68 20 74 61 62 6c uch.table.DB.Error:.no.such.tabl
59ce0 65 20 3c 2d 20 67 6f 6f 64 20 65 72 72 6f 72 20 63 61 74 63 68 65 64 0a 61 3d 31 0a 62 3d 32 0a e.<-.good.error.catched.a=1.b=2.
59d00 62 2d 61 3d 31 0a 63 3d 31 0a 64 3d 31 0a 65 3d 31 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 b-a=1.c=1.d=1.e=1...............
59d20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
59d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
59d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
59d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
59da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
59dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
59de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
59e00 44 42 2d 31 2e 35 2e 30 52 43 31 2f 74 65 73 74 73 2f 64 72 69 76 65 72 2f 30 36 70 72 65 70 65 DB-1.5.0RC1/tests/driver/06prepe
59e20 78 65 63 2e 70 68 70 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 xec.phpt........................
59e40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
59e60 00 00 00 00 31 30 30 36 34 34 20 00 20 20 20 37 36 34 20 00 20 20 20 31 34 34 20 00 20 20 20 20 ....100644.....764.....144......
59e80 20 20 20 31 35 37 31 20 20 37 36 37 31 36 35 33 32 35 31 20 20 31 33 30 30 35 20 00 00 00 00 00 ...1571..7671653251..13005......
59ea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
59ec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
59ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
59f00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
59f20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
59f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
59f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
59f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
59fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
59fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
59fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5a000 2d 2d 54 45 53 54 2d 2d 0a 44 42 5f 64 72 69 76 65 72 3a 3a 70 72 65 70 61 72 65 2f 65 78 65 63 --TEST--.DB_driver::prepare/exec
5a020 75 74 65 20 74 65 73 74 0a 2d 2d 53 4b 49 50 49 46 2d 2d 0a 3c 3f 70 68 70 20 63 68 64 69 72 28 ute.test.--SKIPIF--.<?php.chdir(
5a040 64 69 72 6e 61 6d 65 28 5f 5f 46 49 4c 45 5f 5f 29 29 3b 20 69 6e 63 6c 75 64 65 28 22 73 6b 69 dirname(__FILE__));.include("ski
5a060 70 69 66 2e 69 6e 63 22 29 3b 20 3f 3e 0a 2d 2d 46 49 4c 45 2d 2d 0a 3c 3f 70 68 70 0a 69 6e 63 pif.inc");.?>.--FILE--.<?php.inc
5a080 6c 75 64 65 28 22 6d 6b 74 61 62 6c 65 2e 69 6e 63 22 29 3b 0a 69 6e 63 6c 75 64 65 28 22 2e 2e lude("mktable.inc");.include("..
5a0a0 2f 70 72 65 70 65 78 65 2e 69 6e 63 22 29 3b 0a 3f 3e 0a 2d 2d 45 58 50 45 43 54 2d 2d 0a 2d 2d /prepexe.inc");.?>.--EXPECT--.--
5a0c0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 31 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 73 74 68 31 2c 73 74 68 ----------1------------.sth1,sth
5a0e0 32 2c 73 74 68 33 20 63 72 65 61 74 65 64 0a 73 74 68 31 20 65 78 65 63 75 74 65 64 0a 73 74 68 2,sth3.created.sth1.executed.sth
5a100 32 20 65 78 65 63 75 74 65 64 0a 73 74 68 33 20 65 78 65 63 75 74 65 64 0a 72 65 73 75 6c 74 73 2.executed.sth3.executed.results
5a120 3a 0a 7c 37 32 20 2d 20 61 20 2d 20 20 2d 20 7c 0a 7c 37 32 20 2d 20 62 69 6e 67 20 2d 20 20 2d :.|72.-.a.-..-.|.|72.-.bing.-..-
5a140 20 7c 0a 7c 37 32 20 2d 20 67 61 7a 6f 6e 6b 20 2d 20 6f 70 61 71 75 65 0a 70 6c 61 63 65 68 6f .|.|72.-.gazonk.-.opaque.placeho
5a160 6c 64 65 72 0a 74 65 73 74 20 2d 20 7c 0a 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 32 2d 2d 2d 2d lder.test.-.|..------------2----
5a180 2d 2d 2d 2d 2d 2d 2d 2d 0a 72 65 73 75 6c 74 73 3a 0a 7c 37 32 20 2d 20 73 65 74 31 20 2d 20 6f --------.results:.|72.-.set1.-.o
5a1a0 70 61 71 75 65 0a 70 6c 61 63 65 68 6f 6c 64 65 72 0a 74 65 73 74 20 2d 20 7c 0a 7c 37 32 20 2d paque.placeholder.test.-.|.|72.-
5a1c0 20 73 65 74 32 20 2d 20 6f 70 61 71 75 65 0a 70 6c 61 63 65 68 6f 6c 64 65 72 0a 74 65 73 74 20 .set2.-.opaque.placeholder.test.
5a1e0 2d 20 7c 0a 7c 37 32 20 2d 20 73 65 74 33 20 2d 20 6f 70 61 71 75 65 0a 70 6c 61 63 65 68 6f 6c -.|.|72.-.set3.-.opaque.placehol
5a200 64 65 72 0a 74 65 73 74 20 2d 20 7c 0a 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 33 2d 2d 2d 2d 2d der.test.-.|..------------3-----
5a220 2d 2d 2d 2d 2d 2d 2d 0a 54 52 55 45 0a 46 41 4c 53 45 0a 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d -------.TRUE.FALSE..------------
5a240 34 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 7c 37 32 20 2d 20 73 65 74 31 20 2d 20 6f 70 61 71 75 4------------.|72.-.set1.-.opaqu
5a260 65 0a 70 6c 61 63 65 68 6f 6c 64 65 72 0a 74 65 73 74 20 2d 20 7c 0a 7c 37 32 20 2d 20 73 65 74 e.placeholder.test.-.|.|72.-.set
5a280 32 20 2d 20 6f 70 61 71 75 65 0a 70 6c 61 63 65 68 6f 6c 64 65 72 0a 74 65 73 74 20 2d 20 7c 0a 2.-.opaque.placeholder.test.-.|.
5a2a0 7c 37 32 20 2d 20 73 65 74 33 20 2d 20 6f 70 61 71 75 65 0a 70 6c 61 63 65 68 6f 6c 64 65 72 0a |72.-.set3.-.opaque.placeholder.
5a2c0 74 65 73 74 20 2d 20 7c 0a 7e 7e 0a 7e 7e 0a 7c 37 32 20 2d 20 73 65 74 31 20 2d 20 6f 70 61 71 test.-.|.~~.~~.|72.-.set1.-.opaq
5a2e0 75 65 0a 70 6c 61 63 65 68 6f 6c 64 65 72 0a 74 65 73 74 20 2d 20 7c 0a 7e 7e 0a 7c 37 32 20 2d ue.placeholder.test.-.|.~~.|72.-
5a300 20 73 65 74 31 20 2d 20 6f 70 61 71 75 65 0a 70 6c 61 63 65 68 6f 6c 64 65 72 0a 74 65 73 74 20 .set1.-.opaque.placeholder.test.
5a320 2d 20 7c 0a 7c 37 32 20 2d 20 73 65 74 32 20 2d 20 6f 70 61 71 75 65 0a 70 6c 61 63 65 68 6f 6c -.|.|72.-.set2.-.opaque.placehol
5a340 64 65 72 0a 74 65 73 74 20 2d 20 7c 0a 7c 37 32 20 2d 20 73 65 74 33 20 2d 20 6f 70 61 71 75 65 der.test.-.|.|72.-.set3.-.opaque
5a360 0a 70 6c 61 63 65 68 6f 6c 64 65 72 0a 74 65 73 74 20 2d 20 7c 0a 7e 7e 0a 00 00 00 00 00 00 00 .placeholder.test.-.|.~~........
5a380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5a3a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5a3c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5a3e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5a400 44 42 2d 31 2e 35 2e 30 52 43 31 2f 74 65 73 74 73 2f 64 72 69 76 65 72 2f 30 38 61 66 66 65 63 DB-1.5.0RC1/tests/driver/08affec
5a420 74 65 64 72 6f 77 73 2e 70 68 70 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 tedrows.phpt....................
5a440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5a460 00 00 00 00 31 30 30 36 34 34 20 00 20 20 20 37 36 34 20 00 20 20 20 31 34 34 20 00 20 20 20 20 ....100644.....764.....144......
5a480 20 20 20 32 30 37 31 20 20 37 34 36 37 34 31 34 37 32 34 20 20 31 33 36 34 37 20 00 00 00 00 00 ...2071..7467414724..13647......
5a4a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5a4c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5a4e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5a500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5a520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5a540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5a560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5a580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5a5a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5a5c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5a5e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5a600 2d 2d 54 45 53 54 2d 2d 0a 44 42 5f 64 72 69 76 65 72 3a 3a 61 66 66 65 63 74 65 64 52 6f 77 73 --TEST--.DB_driver::affectedRows
5a620 20 74 65 73 74 0a 2d 2d 53 4b 49 50 49 46 2d 2d 0a 3c 3f 70 68 70 20 63 68 64 69 72 28 64 69 72 .test.--SKIPIF--.<?php.chdir(dir
5a640 6e 61 6d 65 28 5f 5f 46 49 4c 45 5f 5f 29 29 3b 20 69 6e 63 6c 75 64 65 28 22 73 6b 69 70 69 66 name(__FILE__));.include("skipif
5a660 2e 69 6e 63 22 29 3b 20 3f 3e 0a 2d 2d 46 49 4c 45 2d 2d 0a 3c 3f 70 68 70 0a 69 6e 63 6c 75 64 .inc");.?>.--FILE--.<?php.includ
5a680 65 28 22 6d 6b 74 61 62 6c 65 2e 69 6e 63 22 29 3b 0a 2f 2f 20 43 6c 65 61 6e 20 74 61 62 6c 65 e("mktable.inc");.//.Clean.table
5a6a0 0a 24 64 62 68 2d 3e 71 75 65 72 79 28 22 44 45 4c 45 54 45 20 46 52 4f 4d 20 70 68 70 74 65 73 .$dbh->query("DELETE.FROM.phptes
5a6c0 74 22 29 3b 0a 0a 2f 2f 20 41 66 66 65 63 74 65 64 20 72 6f 77 73 20 62 79 20 49 4e 53 45 52 54 t");..//.Affected.rows.by.INSERT
5a6e0 20 73 74 61 74 65 6d 65 6e 74 0a 24 64 62 68 2d 3e 71 75 65 72 79 28 22 49 4e 53 45 52 54 20 49 .statement.$dbh->query("INSERT.I
5a700 4e 54 4f 20 70 68 70 74 65 73 74 20 28 61 2c 62 29 20 56 41 4c 55 45 53 28 31 2c 20 27 74 65 73 NTO.phptest.(a,b).VALUES(1,.'tes
5a720 74 27 29 22 29 3b 0a 24 64 62 68 2d 3e 71 75 65 72 79 28 22 49 4e 53 45 52 54 20 49 4e 54 4f 20 t')");.$dbh->query("INSERT.INTO.
5a740 70 68 70 74 65 73 74 20 28 61 2c 62 29 20 56 41 4c 55 45 53 28 32 2c 20 27 74 65 73 74 27 29 22 phptest.(a,b).VALUES(2,.'test')"
5a760 29 3b 0a 70 72 69 6e 74 66 28 22 25 64 20 61 66 74 65 72 20 69 6e 73 65 72 74 5c 6e 22 2c 20 24 );.printf("%d.after.insert\n",.$
5a780 64 62 68 2d 3e 61 66 66 65 63 74 65 64 52 6f 77 73 28 29 29 3b 0a 0a 2f 2f 20 41 66 66 65 63 74 dbh->affectedRows());..//.Affect
5a7a0 65 64 20 72 6f 77 73 20 62 79 20 53 45 4c 45 43 54 20 73 74 61 74 65 6d 65 6e 74 0a 24 64 62 68 ed.rows.by.SELECT.statement.$dbh
5a7c0 2d 3e 71 75 65 72 79 28 22 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 70 68 70 74 65 73 74 22 29 ->query("SELECT.*.FROM.phptest")
5a7e0 3b 0a 70 72 69 6e 74 66 28 22 25 64 20 61 66 74 65 72 20 73 65 6c 65 63 74 5c 6e 22 2c 20 24 64 ;.printf("%d.after.select\n",.$d
5a800 62 68 2d 3e 61 66 66 65 63 74 65 64 52 6f 77 73 28 29 29 3b 0a 24 64 62 68 2d 3e 71 75 65 72 79 bh->affectedRows());.$dbh->query
5a820 28 22 44 45 4c 45 54 45 20 46 52 4f 4d 20 70 68 70 74 65 73 74 20 57 48 45 52 45 20 62 20 3d 20 ("DELETE.FROM.phptest.WHERE.b.=.
5a840 27 74 65 73 74 27 22 29 3b 0a 70 72 69 6e 74 66 28 22 25 64 20 61 66 74 65 72 20 64 65 6c 65 74 'test'");.printf("%d.after.delet
5a860 65 5c 6e 22 2c 20 24 64 62 68 2d 3e 61 66 66 65 63 74 65 64 52 6f 77 73 28 29 29 3b 0a 0a 2f 2f e\n",.$dbh->affectedRows());..//
5a880 20 41 66 66 65 63 74 65 64 20 72 6f 77 73 20 62 79 20 44 45 4c 45 54 45 20 73 74 61 74 65 6d 65 .Affected.rows.by.DELETE.stateme
5a8a0 6e 74 0a 24 64 62 68 2d 3e 71 75 65 72 79 28 22 49 4e 53 45 52 54 20 49 4e 54 4f 20 70 68 70 74 nt.$dbh->query("INSERT.INTO.phpt
5a8c0 65 73 74 20 28 61 2c 62 29 20 56 41 4c 55 45 53 28 31 2c 20 27 74 65 73 74 27 29 22 29 3b 0a 24 est.(a,b).VALUES(1,.'test')");.$
5a8e0 64 62 68 2d 3e 71 75 65 72 79 28 22 49 4e 53 45 52 54 20 49 4e 54 4f 20 70 68 70 74 65 73 74 20 dbh->query("INSERT.INTO.phptest.
5a900 28 61 2c 62 29 20 56 41 4c 55 45 53 28 32 2c 20 27 74 65 73 74 27 29 22 29 3b 0a 24 64 62 68 2d (a,b).VALUES(2,.'test')");.$dbh-
5a920 3e 73 65 74 4f 70 74 69 6f 6e 28 22 6f 70 74 69 6d 69 7a 65 22 2c 20 22 70 6f 72 74 61 62 69 6c >setOption("optimize",."portabil
5a940 69 74 79 22 29 3b 0a 24 64 62 68 2d 3e 71 75 65 72 79 28 22 44 45 4c 45 54 45 20 46 52 4f 4d 20 ity");.$dbh->query("DELETE.FROM.
5a960 70 68 70 74 65 73 74 22 29 3b 0a 70 72 69 6e 74 66 28 22 25 64 20 61 66 74 65 72 20 64 65 6c 65 phptest");.printf("%d.after.dele
5a980 74 65 20 61 6c 6c 20 28 6f 70 74 69 6d 69 7a 65 3d 25 73 29 5c 6e 22 2c 20 24 64 62 68 2d 3e 61 te.all.(optimize=%s)\n",.$dbh->a
5a9a0 66 66 65 63 74 65 64 52 6f 77 73 28 29 2c 0a 20 20 20 20 20 20 20 24 64 62 68 2d 3e 67 65 74 4f ffectedRows(),........$dbh->getO
5a9c0 70 74 69 6f 6e 28 22 6f 70 74 69 6d 69 7a 65 22 29 29 3b 0a 3f 3e 0a 2d 2d 45 58 50 45 43 54 2d ption("optimize"));.?>.--EXPECT-
5a9e0 2d 0a 31 20 61 66 74 65 72 20 69 6e 73 65 72 74 0a 30 20 61 66 74 65 72 20 73 65 6c 65 63 74 0a -.1.after.insert.0.after.select.
5aa00 32 20 61 66 74 65 72 20 64 65 6c 65 74 65 0a 32 20 61 66 74 65 72 20 64 65 6c 65 74 65 20 61 6c 2.after.delete.2.after.delete.al
5aa20 6c 20 28 6f 70 74 69 6d 69 7a 65 3d 70 6f 72 74 61 62 69 6c 69 74 79 29 0a 00 00 00 00 00 00 00 l.(optimize=portability)........
5aa40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5aa60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5aa80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5aaa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5aac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5aae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5ab00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5ab20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5ab40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5ab60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5ab80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5aba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5abc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5abe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5ac00 44 42 2d 31 2e 35 2e 30 52 43 31 2f 74 65 73 74 73 2f 64 72 69 76 65 72 2f 30 39 6e 75 6d 72 6f DB-1.5.0RC1/tests/driver/09numro
5ac20 77 73 2e 70 68 70 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ws.phpt.........................
5ac40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5ac60 00 00 00 00 31 30 30 36 34 34 20 00 20 20 20 37 36 34 20 00 20 20 20 31 34 34 20 00 20 20 20 20 ....100644.....764.....144......
5ac80 20 20 20 20 33 33 32 20 20 37 34 36 37 34 31 34 37 32 34 20 20 31 32 36 36 34 20 00 00 00 00 00 ....332..7467414724..12664......
5aca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5acc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5ace0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5ad00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5ad20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5ad40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5ad60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5ad80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5ada0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5adc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5ade0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5ae00 2d 2d 54 45 53 54 2d 2d 0a 44 42 5f 64 72 69 76 65 72 3a 3a 6e 75 6d 52 6f 77 73 20 74 65 73 74 --TEST--.DB_driver::numRows.test
5ae20 0a 2d 2d 53 4b 49 50 49 46 2d 2d 0a 3c 3f 70 68 70 20 63 68 64 69 72 28 64 69 72 6e 61 6d 65 28 .--SKIPIF--.<?php.chdir(dirname(
5ae40 5f 5f 46 49 4c 45 5f 5f 29 29 3b 20 72 65 71 75 69 72 65 20 22 73 6b 69 70 69 66 2e 69 6e 63 22 __FILE__));.require."skipif.inc"
5ae60 3b 20 3f 3e 0a 2d 2d 46 49 4c 45 2d 2d 0a 3c 3f 70 68 70 0a 72 65 71 75 69 72 65 20 22 63 6f 6e ;.?>.--FILE--.<?php.require."con
5ae80 6e 65 63 74 2e 69 6e 63 22 3b 0a 72 65 71 75 69 72 65 20 22 6d 6b 74 61 62 6c 65 2e 69 6e 63 22 nect.inc";.require."mktable.inc"
5aea0 3b 0a 72 65 71 75 69 72 65 20 22 2e 2e 2f 6e 75 6d 72 6f 77 73 2e 69 6e 63 22 3b 0a 3f 3e 0a 2d ;.require."../numrows.inc";.?>.-
5aec0 2d 45 58 50 45 43 54 2d 2d 0a 31 0a 32 0a 33 0a 34 0a 35 0a 36 0a 32 0a 30 0a 00 00 00 00 00 00 -EXPECT--.1.2.3.4.5.6.2.0.......
5aee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5af00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5af20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5af40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5af60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5af80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5afa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5afc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5afe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5b000 44 42 2d 31 2e 35 2e 30 52 43 31 2f 74 65 73 74 73 2f 64 72 69 76 65 72 2f 31 30 65 72 72 6f 72 DB-1.5.0RC1/tests/driver/10error
5b020 6d 61 70 2e 70 68 70 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 map.phpt........................
5b040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5b060 00 00 00 00 31 30 30 36 34 34 20 00 20 20 20 37 36 34 20 00 20 20 20 31 34 34 20 00 20 20 20 20 ....100644.....764.....144......
5b080 20 20 20 31 33 33 31 20 20 37 34 36 37 34 31 34 37 32 34 20 20 31 33 30 31 31 20 00 00 00 00 00 ...1331..7467414724..13011......
5b0a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5b0c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5b0e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5b100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5b120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5b140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5b160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5b180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5b1a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5b1c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5b1e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5b200 2d 2d 54 45 53 54 2d 2d 0a 44 42 5f 64 72 69 76 65 72 3a 3a 65 72 72 6f 72 20 6d 61 70 70 69 6e --TEST--.DB_driver::error.mappin
5b220 67 0a 2d 2d 53 4b 49 50 49 46 2d 2d 0a 3c 3f 70 68 70 20 63 68 64 69 72 28 64 69 72 6e 61 6d 65 g.--SKIPIF--.<?php.chdir(dirname
5b240 28 5f 5f 46 49 4c 45 5f 5f 29 29 3b 20 72 65 71 75 69 72 65 20 22 73 6b 69 70 69 66 2e 69 6e 63 (__FILE__));.require."skipif.inc
5b260 22 3b 20 3f 3e 0a 2d 2d 46 49 4c 45 2d 2d 0a 3c 3f 70 68 70 0a 72 65 71 75 69 72 65 20 22 63 6f ";.?>.--FILE--.<?php.require."co
5b280 6e 6e 65 63 74 2e 69 6e 63 22 3b 0a 72 65 71 75 69 72 65 20 22 6d 6b 74 61 62 6c 65 2e 69 6e 63 nnect.inc";.require."mktable.inc
5b2a0 22 3b 0a 72 65 71 75 69 72 65 20 22 2e 2e 2f 65 72 72 6f 72 73 2e 69 6e 63 22 3b 0a 3f 3e 0a 2d ";.require."../errors.inc";.?>.-
5b2c0 2d 45 58 50 45 43 54 2d 2d 0a 54 72 79 69 6e 67 20 74 6f 20 70 72 6f 76 6f 6b 65 20 44 42 5f 45 -EXPECT--.Trying.to.provoke.DB_E
5b2e0 52 52 4f 52 5f 4e 4f 53 55 43 48 54 41 42 4c 45 0a 20 20 44 42 20 45 72 72 6f 72 3a 20 6e 6f 20 RROR_NOSUCHTABLE...DB.Error:.no.
5b300 73 75 63 68 20 74 61 62 6c 65 0a 54 72 79 69 6e 67 20 74 6f 20 70 72 6f 76 6f 6b 65 20 44 42 5f such.table.Trying.to.provoke.DB_
5b320 45 52 52 4f 52 5f 41 4c 52 45 41 44 59 5f 45 58 49 53 54 53 0a 20 20 44 42 20 45 72 72 6f 72 3a ERROR_ALREADY_EXISTS...DB.Error:
5b340 20 61 6c 72 65 61 64 79 20 65 78 69 73 74 73 0a 54 72 79 69 6e 67 20 74 6f 20 70 72 6f 76 6f 6b .already.exists.Trying.to.provok
5b360 65 20 44 42 5f 45 52 52 4f 52 5f 4e 4f 53 55 43 48 54 41 42 4c 45 0a 20 20 44 42 20 45 72 72 6f e.DB_ERROR_NOSUCHTABLE...DB.Erro
5b380 72 3a 20 6e 6f 20 73 75 63 68 20 74 61 62 6c 65 0a 54 72 79 69 6e 67 20 74 6f 20 70 72 6f 76 6f r:.no.such.table.Trying.to.provo
5b3a0 6b 65 20 44 42 5f 45 52 52 4f 52 5f 43 4f 4e 53 54 52 41 49 4e 54 0a 20 20 44 42 20 45 72 72 6f ke.DB_ERROR_CONSTRAINT...DB.Erro
5b3c0 72 3a 20 63 6f 6e 73 74 72 61 69 6e 74 20 76 69 6f 6c 61 74 69 6f 6e 0a 54 72 79 69 6e 67 20 74 r:.constraint.violation.Trying.t
5b3e0 6f 20 70 72 6f 76 6f 6b 65 20 44 42 5f 45 52 52 4f 52 5f 44 49 56 5a 45 52 4f 0a 20 20 44 42 20 o.provoke.DB_ERROR_DIVZERO...DB.
5b400 45 72 72 6f 72 3a 20 64 69 76 69 73 69 6f 6e 20 62 79 20 7a 65 72 6f 0a 54 72 79 69 6e 67 20 74 Error:.division.by.zero.Trying.t
5b420 6f 20 70 72 6f 76 6f 6b 65 20 44 42 5f 45 52 52 4f 52 5f 49 4e 56 41 4c 49 44 5f 4e 55 4d 42 45 o.provoke.DB_ERROR_INVALID_NUMBE
5b440 52 0a 20 20 44 42 20 45 72 72 6f 72 3a 20 69 6e 76 61 6c 69 64 20 6e 75 6d 62 65 72 0a 54 72 79 R...DB.Error:.invalid.number.Try
5b460 69 6e 67 20 74 6f 20 70 72 6f 76 6f 6b 65 20 44 42 5f 45 52 52 4f 52 5f 4e 4f 53 55 43 48 46 49 ing.to.provoke.DB_ERROR_NOSUCHFI
5b480 45 4c 44 0a 20 20 44 42 20 45 72 72 6f 72 3a 20 6e 6f 20 73 75 63 68 20 66 69 65 6c 64 0a 54 72 ELD...DB.Error:.no.such.field.Tr
5b4a0 79 69 6e 67 20 74 6f 20 70 72 6f 76 6f 6b 65 20 44 42 5f 45 52 52 4f 52 5f 53 59 4e 54 41 58 0a ying.to.provoke.DB_ERROR_SYNTAX.
5b4c0 20 20 44 42 20 45 72 72 6f 72 3a 20 73 79 6e 74 61 78 20 65 72 72 6f 72 0a 00 00 00 00 00 00 00 ..DB.Error:.syntax.error........
5b4e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5b500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5b520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5b540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5b560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5b580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5b5a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5b5c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5b5e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5b600 44 42 2d 31 2e 35 2e 30 52 43 31 2f 74 65 73 74 73 2f 64 72 69 76 65 72 2f 31 33 6c 69 6d 69 74 DB-1.5.0RC1/tests/driver/13limit
5b620 2e 70 68 70 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .phpt...........................
5b640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5b660 00 00 00 00 31 30 30 36 34 34 20 00 20 20 20 37 36 34 20 00 20 20 20 31 34 34 20 00 20 20 20 20 ....100644.....764.....144......
5b680 20 20 20 31 35 35 31 20 20 37 34 36 37 34 31 34 37 32 34 20 20 31 32 33 30 37 20 00 00 00 00 00 ...1551..7467414724..12307......
5b6a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5b6c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5b6e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5b700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5b720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5b740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5b760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5b780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5b7a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5b7c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5b7e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5b800 2d 2d 54 45 53 54 2d 2d 0a 44 42 5f 64 72 69 76 65 72 3a 3a 72 6f 77 20 6c 69 6d 69 74 0a 2d 2d --TEST--.DB_driver::row.limit.--
5b820 53 4b 49 50 49 46 2d 2d 0a 3c 3f 70 68 70 20 63 68 64 69 72 28 64 69 72 6e 61 6d 65 28 5f 5f 46 SKIPIF--.<?php.chdir(dirname(__F
5b840 49 4c 45 5f 5f 29 29 3b 20 72 65 71 75 69 72 65 20 22 73 6b 69 70 69 66 2e 69 6e 63 22 3b 20 3f ILE__));.require."skipif.inc";.?
5b860 3e 0a 2d 2d 46 49 4c 45 2d 2d 0a 3c 3f 70 68 70 0a 72 65 71 75 69 72 65 20 27 63 6f 6e 6e 65 63 >.--FILE--.<?php.require.'connec
5b880 74 2e 69 6e 63 27 3b 0a 69 6e 63 6c 75 64 65 20 27 2e 2e 2f 6c 69 6d 69 74 2e 69 6e 63 27 3b 0a t.inc';.include.'../limit.inc';.
5b8a0 3f 3e 0a 2d 2d 45 58 50 45 43 54 2d 2d 0a 3d 3d 3d 3d 3d 3d 3d 20 46 72 6f 6d 3a 20 30 20 7c 7c ?>.--EXPECT--.=======.From:.0.||
5b8c0 20 4e 75 6d 62 65 72 20 6f 66 20 72 6f 77 73 20 74 6f 20 66 65 74 63 68 3a 20 31 30 20 3d 3d 3d .Number.of.rows.to.fetch:.10.===
5b8e0 3d 3d 3d 3d 0a 31 2e 2d 20 72 65 73 75 6c 74 20 30 0a 32 2e 2d 20 72 65 73 75 6c 74 20 31 0a 33 ====.1.-.result.0.2.-.result.1.3
5b900 2e 2d 20 72 65 73 75 6c 74 20 32 0a 34 2e 2d 20 72 65 73 75 6c 74 20 33 0a 35 2e 2d 20 72 65 73 .-.result.2.4.-.result.3.5.-.res
5b920 75 6c 74 20 34 0a 36 2e 2d 20 72 65 73 75 6c 74 20 35 0a 37 2e 2d 20 72 65 73 75 6c 74 20 36 0a ult.4.6.-.result.5.7.-.result.6.
5b940 38 2e 2d 20 72 65 73 75 6c 74 20 37 0a 39 2e 2d 20 72 65 73 75 6c 74 20 38 0a 31 30 2e 2d 20 72 8.-.result.7.9.-.result.8.10.-.r
5b960 65 73 75 6c 74 20 39 0a 3d 3d 3d 3d 3d 3d 3d 20 46 72 6f 6d 3a 20 31 30 20 7c 7c 20 4e 75 6d 62 esult.9.=======.From:.10.||.Numb
5b980 65 72 20 6f 66 20 72 6f 77 73 20 74 6f 20 66 65 74 63 68 3a 20 31 30 20 3d 3d 3d 3d 3d 3d 3d 0a er.of.rows.to.fetch:.10.=======.
5b9a0 31 31 2e 2d 20 72 65 73 75 6c 74 20 31 30 0a 31 32 2e 2d 20 72 65 73 75 6c 74 20 31 31 0a 31 33 11.-.result.10.12.-.result.11.13
5b9c0 2e 2d 20 72 65 73 75 6c 74 20 31 32 0a 31 34 2e 2d 20 72 65 73 75 6c 74 20 31 33 0a 31 35 2e 2d .-.result.12.14.-.result.13.15.-
5b9e0 20 72 65 73 75 6c 74 20 31 34 0a 31 36 2e 2d 20 72 65 73 75 6c 74 20 31 35 0a 31 37 2e 2d 20 72 .result.14.16.-.result.15.17.-.r
5ba00 65 73 75 6c 74 20 31 36 0a 31 38 2e 2d 20 72 65 73 75 6c 74 20 31 37 0a 31 39 2e 2d 20 72 65 73 esult.16.18.-.result.17.19.-.res
5ba20 75 6c 74 20 31 38 0a 32 30 2e 2d 20 72 65 73 75 6c 74 20 31 39 0a 3d 3d 3d 3d 3d 3d 3d 20 46 72 ult.18.20.-.result.19.=======.Fr
5ba40 6f 6d 3a 20 32 30 20 7c 7c 20 4e 75 6d 62 65 72 20 6f 66 20 72 6f 77 73 20 74 6f 20 66 65 74 63 om:.20.||.Number.of.rows.to.fetc
5ba60 68 3a 20 31 30 20 3d 3d 3d 3d 3d 3d 3d 0a 32 31 2e 2d 20 72 65 73 75 6c 74 20 32 30 0a 32 32 2e h:.10.=======.21.-.result.20.22.
5ba80 2d 20 72 65 73 75 6c 74 20 32 31 0a 32 33 2e 2d 20 72 65 73 75 6c 74 20 32 32 0a 32 34 2e 2d 20 -.result.21.23.-.result.22.24.-.
5baa0 72 65 73 75 6c 74 20 32 33 0a 32 35 2e 2d 20 72 65 73 75 6c 74 20 32 34 0a 32 36 2e 2d 20 72 65 result.23.25.-.result.24.26.-.re
5bac0 73 75 6c 74 20 32 35 0a 32 37 2e 2d 20 72 65 73 75 6c 74 20 32 36 0a 32 38 2e 2d 20 72 65 73 75 sult.25.27.-.result.26.28.-.resu
5bae0 6c 74 20 32 37 0a 32 39 2e 2d 20 72 65 73 75 6c 74 20 32 38 0a 33 30 2e 2d 20 72 65 73 75 6c 74 lt.27.29.-.result.28.30.-.result
5bb00 20 32 39 0a 3d 3d 3d 3d 3d 3d 3d 20 46 72 6f 6d 3a 20 33 30 20 7c 7c 20 4e 75 6d 62 65 72 20 6f .29.=======.From:.30.||.Number.o
5bb20 66 20 72 6f 77 73 20 74 6f 20 66 65 74 63 68 3a 20 31 30 20 3d 3d 3d 3d 3d 3d 3d 0a 33 31 2e 2d f.rows.to.fetch:.10.=======.31.-
5bb40 20 72 65 73 75 6c 74 20 33 30 0a 33 32 2e 2d 20 72 65 73 75 6c 74 20 33 31 0a 33 33 2e 2d 20 72 .result.30.32.-.result.31.33.-.r
5bb60 65 73 75 6c 74 20 33 32 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 esult.32........................
5bb80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5bba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5bbc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5bbe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5bc00 44 42 2d 31 2e 35 2e 30 52 43 31 2f 74 65 73 74 73 2f 64 72 69 76 65 72 2f 31 34 66 65 74 63 68 DB-1.5.0RC1/tests/driver/14fetch
5bc20 6d 6f 64 65 5f 6f 62 6a 65 63 74 2e 70 68 70 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 mode_object.phpt................
5bc40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5bc60 00 00 00 00 31 30 30 36 34 34 20 00 20 20 20 37 36 34 20 00 20 20 20 31 34 34 20 00 20 20 20 20 ....100644.....764.....144......
5bc80 20 20 20 20 37 34 36 20 20 37 34 36 37 34 31 34 37 32 34 20 20 31 34 34 34 33 20 00 00 00 00 00 ....746..7467414724..14443......
5bca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5bcc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5bce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5bd00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5bd20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5bd40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5bd60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5bd80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5bda0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5bdc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5bde0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5be00 2d 2d 54 45 53 54 2d 2d 0a 44 42 5f 64 72 69 76 65 72 3a 3a 66 65 74 63 68 6d 6f 64 65 20 6f 62 --TEST--.DB_driver::fetchmode.ob
5be20 6a 65 63 74 0a 2d 2d 53 4b 49 50 49 46 2d 2d 0a 3c 3f 70 68 70 20 63 68 64 69 72 28 64 69 72 6e ject.--SKIPIF--.<?php.chdir(dirn
5be40 61 6d 65 28 5f 5f 46 49 4c 45 5f 5f 29 29 3b 20 72 65 71 75 69 72 65 20 22 73 6b 69 70 69 66 2e ame(__FILE__));.require."skipif.
5be60 69 6e 63 22 3b 20 3f 3e 0a 2d 2d 46 49 4c 45 2d 2d 0a 3c 3f 70 68 70 0a 72 65 71 75 69 72 65 20 inc";.?>.--FILE--.<?php.require.
5be80 27 2e 2f 63 6f 6e 6e 65 63 74 2e 69 6e 63 27 3b 0a 69 6e 63 6c 75 64 65 20 27 2e 2e 2f 66 65 74 './connect.inc';.include.'../fet
5bea0 63 68 6d 6f 64 65 5f 6f 62 6a 65 63 74 2e 69 6e 63 27 3b 0a 3f 3e 0a 2d 2d 45 58 50 45 43 54 2d chmode_object.inc';.?>.--EXPECT-
5bec0 2d 0a 2d 2d 2d 20 66 65 74 63 68 20 77 69 74 68 20 70 61 72 61 6d 20 44 42 5f 46 45 54 43 48 4d -.---.fetch.with.param.DB_FETCHM
5bee0 4f 44 45 5f 4f 42 4a 45 43 54 20 2d 2d 2d 0a 73 74 64 43 6c 61 73 73 20 2d 3e 20 61 20 62 20 63 ODE_OBJECT.---.stdClass.->.a.b.c
5bf00 20 64 0a 73 74 64 43 6c 61 73 73 20 2d 3e 20 61 20 62 20 63 20 64 0a 2d 2d 2d 20 66 65 74 63 68 .d.stdClass.->.a.b.c.d.---.fetch
5bf20 20 77 69 74 68 20 64 65 66 61 75 6c 74 20 66 65 74 63 68 6d 6f 64 65 20 44 42 5f 46 45 54 43 48 .with.default.fetchmode.DB_FETCH
5bf40 4d 4f 44 45 5f 4f 42 4a 45 43 54 20 2d 2d 2d 0a 73 74 64 43 6c 61 73 73 20 2d 3e 20 61 20 62 20 MODE_OBJECT.---.stdClass.->.a.b.
5bf60 63 20 64 0a 73 74 64 43 6c 61 73 73 20 2d 3e 20 61 20 62 20 63 20 64 0a 2d 2d 2d 20 66 65 74 63 c.d.stdClass.->.a.b.c.d.---.fetc
5bf80 68 20 77 69 74 68 20 64 65 66 61 75 6c 74 20 66 65 74 63 68 6d 6f 64 65 20 44 42 5f 46 45 54 43 h.with.default.fetchmode.DB_FETC
5bfa0 48 4d 4f 44 45 5f 4f 42 4a 45 43 54 20 61 6e 64 20 63 6c 61 73 73 20 44 42 5f 52 6f 77 20 2d 2d HMODE_OBJECT.and.class.DB_Row.--
5bfc0 2d 0a 64 62 5f 72 6f 77 20 2d 3e 20 61 20 62 20 63 20 64 0a 64 62 5f 72 6f 77 20 2d 3e 20 61 20 -.db_row.->.a.b.c.d.db_row.->.a.
5bfe0 62 20 63 20 64 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 b.c.d...........................
5c000 44 42 2d 31 2e 35 2e 30 52 43 31 2f 74 65 73 74 73 2f 64 72 69 76 65 72 2f 31 35 71 75 6f 74 65 DB-1.5.0RC1/tests/driver/15quote
5c020 2e 70 68 70 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .phpt...........................
5c040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5c060 00 00 00 00 31 30 30 36 34 34 20 00 20 20 20 37 36 34 20 00 20 20 20 31 34 34 20 00 20 20 20 20 ....100644.....764.....144......
5c080 20 20 20 32 35 30 33 20 20 37 34 36 37 34 31 34 37 32 34 20 20 31 32 33 32 36 20 00 00 00 00 00 ...2503..7467414724..12326......
5c0a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5c0c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5c0e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5c100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5c120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5c140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5c160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5c180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5c1a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5c1c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5c1e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5c200 2d 2d 54 45 53 54 2d 2d 0a 44 42 5f 64 72 69 76 65 72 3a 3a 65 73 63 61 70 65 20 64 61 74 61 20 --TEST--.DB_driver::escape.data.
5c220 74 65 73 74 0a 2d 2d 53 4b 49 50 49 46 2d 2d 0a 3c 3f 70 68 70 20 63 68 64 69 72 28 64 69 72 6e test.--SKIPIF--.<?php.chdir(dirn
5c240 61 6d 65 28 5f 5f 46 49 4c 45 5f 5f 29 29 3b 20 69 6e 63 6c 75 64 65 28 22 73 6b 69 70 69 66 2e ame(__FILE__));.include("skipif.
5c260 69 6e 63 22 29 3b 20 3f 3e 0a 2d 2d 46 49 4c 45 2d 2d 0a 3c 3f 70 68 70 0a 69 6e 63 6c 75 64 65 inc");.?>.--FILE--.<?php.include
5c280 20 27 2e 2f 63 6f 6e 6e 65 63 74 2e 69 6e 63 27 3b 0a 24 64 62 68 2d 3e 73 65 74 45 72 72 6f 72 .'./connect.inc';.$dbh->setError
5c2a0 48 61 6e 64 6c 69 6e 67 28 50 45 41 52 5f 45 52 52 4f 52 5f 43 41 4c 4c 42 41 43 4b 2c 20 27 64 Handling(PEAR_ERROR_CALLBACK,.'d
5c2c0 65 62 75 67 5f 64 69 65 27 29 3b 0a 0a 24 64 62 68 2d 3e 65 78 70 65 63 74 45 72 72 6f 72 28 44 ebug_die');..$dbh->expectError(D
5c2e0 42 5f 45 52 52 4f 52 5f 41 4c 52 45 41 44 59 5f 45 58 49 53 54 53 29 3b 0a 24 64 62 68 2d 3e 71 B_ERROR_ALREADY_EXISTS);.$dbh->q
5c300 75 65 72 79 28 22 43 52 45 41 54 45 20 54 41 42 4c 45 20 70 65 61 72 71 75 6f 74 65 20 28 6e 20 uery("CREATE.TABLE.pearquote.(n.
5c320 46 4c 4f 41 54 2c 20 73 20 56 41 52 43 48 41 52 28 38 29 29 22 29 3b 0a 24 64 62 68 2d 3e 70 6f FLOAT,.s.VARCHAR(8))");.$dbh->po
5c340 70 45 78 70 65 63 74 28 29 3b 0a 0a 24 64 62 68 2d 3e 71 75 65 72 79 28 22 44 45 4c 45 54 45 20 pExpect();..$dbh->query("DELETE.
5c360 46 52 4f 4d 20 70 65 61 72 71 75 6f 74 65 22 29 3b 0a 0a 24 73 74 72 69 6e 67 73 20 3d 20 61 72 FROM.pearquote");..$strings.=.ar
5c380 72 61 79 28 0a 20 20 20 20 22 27 22 2c 0d 0a 20 20 20 20 22 5c 22 22 2c 0d 0a 20 20 20 20 22 5c ray(....."'",......"\"",......"\
5c3a0 5c 22 2c 0d 0a 20 20 20 20 22 25 22 2c 0d 0a 20 20 20 20 22 5f 22 2c 0d 0a 20 20 20 20 22 27 27 \",......"%",......"_",......"''
5c3c0 22 2c 0d 0a 20 20 20 20 22 5c 22 5c 22 22 2c 0d 0a 20 20 20 20 22 5c 5c 5c 5c 22 2c 0d 0a 20 20 ",......"\"\"",......"\\\\",....
5c3e0 20 20 22 5c 5c 27 5c 5c 27 22 2c 0d 0a 20 20 20 20 22 5c 5c 5c 22 5c 5c 5c 22 22 0d 0a 29 3b 0a .."\\'\\'",......"\\\"\\\""..);.
5c400 24 6e 75 6d 73 20 3d 20 61 72 72 61 79 28 0a 20 20 20 20 31 35 36 2c 0a 20 20 20 20 31 32 2e 33 $nums.=.array(.....156,.....12.3
5c420 2c 0a 20 20 20 20 27 31 35 27 2c 0a 20 20 20 20 27 31 32 2e 33 27 0d 0a 29 3b 0a 0a 65 63 68 6f ,.....'15',.....'12.3'..);..echo
5c440 20 22 53 74 72 69 6e 67 20 65 73 63 61 70 65 20 74 65 73 74 3a 20 22 3b 0a 66 6f 72 65 61 63 68 ."String.escape.test:.";.foreach
5c460 20 28 24 73 74 72 69 6e 67 73 20 61 73 20 24 73 29 20 7b 0a 20 20 20 20 24 71 75 6f 74 65 64 20 .($strings.as.$s).{.....$quoted.
5c480 3d 20 24 64 62 68 2d 3e 71 75 6f 74 65 28 24 73 29 3b 0a 20 20 20 20 24 64 62 68 2d 3e 71 75 65 =.$dbh->quote($s);.....$dbh->que
5c4a0 72 79 28 22 49 4e 53 45 52 54 20 49 4e 54 4f 20 70 65 61 72 71 75 6f 74 65 20 56 41 4c 55 45 53 ry("INSERT.INTO.pearquote.VALUES
5c4c0 20 28 31 2c 20 24 71 75 6f 74 65 64 29 22 29 3b 0a 7d 0a 24 64 69 66 66 20 3d 20 61 72 72 61 79 .(1,.$quoted)");.}.$diff.=.array
5c4e0 5f 64 69 66 66 28 24 73 74 72 69 6e 67 73 2c 20 24 72 65 73 20 3d 20 24 64 62 68 2d 3e 67 65 74 _diff($strings,.$res.=.$dbh->get
5c500 43 6f 6c 28 22 53 45 4c 45 43 54 20 73 20 46 52 4f 4d 20 70 65 61 72 71 75 6f 74 65 22 29 29 3b Col("SELECT.s.FROM.pearquote"));
5c520 0a 69 66 20 28 63 6f 75 6e 74 28 24 64 69 66 66 29 20 3e 20 30 29 20 7b 0a 20 20 20 20 65 63 68 .if.(count($diff).>.0).{.....ech
5c540 6f 20 22 46 41 49 4c 22 3b 0a 20 20 20 20 70 72 69 6e 74 5f 72 28 24 73 74 72 69 6e 67 73 29 3b o."FAIL";.....print_r($strings);
5c560 0a 20 20 20 20 70 72 69 6e 74 5f 72 28 24 72 65 73 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 20 20 20 .....print_r($res);.}.else.{....
5c580 20 65 63 68 6f 20 22 4f 4b 22 3b 0a 7d 0a 0a 24 64 62 68 2d 3e 71 75 65 72 79 28 22 44 45 4c 45 .echo."OK";.}..$dbh->query("DELE
5c5a0 54 45 20 46 52 4f 4d 20 70 65 61 72 71 75 6f 74 65 22 29 3b 0a 0a 65 63 68 6f 20 22 5c 6e 4e 75 TE.FROM.pearquote");..echo."\nNu
5c5c0 6d 62 65 72 20 65 73 63 61 70 65 20 74 65 73 74 3a 20 22 3b 0a 66 6f 72 65 61 63 68 20 28 24 6e mber.escape.test:.";.foreach.($n
5c5e0 75 6d 73 20 61 73 20 24 6e 29 20 7b 0a 20 20 20 20 24 71 75 6f 74 65 64 20 3d 20 24 64 62 68 2d ums.as.$n).{.....$quoted.=.$dbh-
5c600 3e 71 75 6f 74 65 28 24 6e 29 3b 0a 20 20 20 20 24 64 62 68 2d 3e 71 75 65 72 79 28 22 49 4e 53 >quote($n);.....$dbh->query("INS
5c620 45 52 54 20 49 4e 54 4f 20 70 65 61 72 71 75 6f 74 65 20 56 41 4c 55 45 53 20 28 24 71 75 6f 74 ERT.INTO.pearquote.VALUES.($quot
5c640 65 64 2c 20 27 66 6f 6f 27 29 22 29 3b 0a 7d 0a 24 64 69 66 66 20 3d 20 61 72 72 61 79 5f 64 69 ed,.'foo')");.}.$diff.=.array_di
5c660 66 66 28 24 6e 75 6d 73 2c 20 24 72 65 73 20 3d 20 24 64 62 68 2d 3e 67 65 74 43 6f 6c 28 22 53 ff($nums,.$res.=.$dbh->getCol("S
5c680 45 4c 45 43 54 20 6e 20 46 52 4f 4d 20 70 65 61 72 71 75 6f 74 65 22 29 29 3b 0a 69 66 20 28 63 ELECT.n.FROM.pearquote"));.if.(c
5c6a0 6f 75 6e 74 28 24 64 69 66 66 29 20 3e 20 30 29 20 7b 0a 20 20 20 20 65 63 68 6f 20 22 46 41 49 ount($diff).>.0).{.....echo."FAI
5c6c0 4c 22 3b 0a 20 20 20 20 70 72 69 6e 74 5f 72 28 24 6e 75 6d 73 29 3b 0a 20 20 20 20 70 72 69 6e L";.....print_r($nums);.....prin
5c6e0 74 5f 72 28 24 72 65 73 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 65 63 68 6f 20 22 4f 4b t_r($res);.}.else.{.....echo."OK
5c700 5c 6e 22 3b 0a 7d 0a 3f 3e 0a 2d 2d 45 58 50 45 43 54 2d 2d 0a 53 74 72 69 6e 67 20 65 73 63 61 \n";.}.?>.--EXPECT--.String.esca
5c720 70 65 20 74 65 73 74 3a 20 4f 4b 0a 4e 75 6d 62 65 72 20 65 73 63 61 70 65 20 74 65 73 74 3a 20 pe.test:.OK.Number.escape.test:.
5c740 4f 4b 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 OK..............................
5c760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5c780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5c7a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5c7c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5c7e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5c800 44 42 2d 31 2e 35 2e 30 52 43 31 2f 74 65 73 74 73 2f 64 72 69 76 65 72 2f 62 75 67 32 32 33 32 DB-1.5.0RC1/tests/driver/bug2232
5c820 38 2e 70 68 70 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 8.phpt..........................
5c840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5c860 00 00 00 00 31 30 30 36 34 34 20 00 20 20 20 37 36 34 20 00 20 20 20 31 34 34 20 00 20 20 20 20 ....100644.....764.....144......
5c880 20 20 20 20 37 31 31 20 20 37 36 37 35 34 34 31 35 36 36 20 20 31 32 31 36 35 20 00 00 00 00 00 ....711..7675441566..12165......
5c8a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5c8c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5c8e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5c900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5c920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5c940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5c960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5c980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5c9a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5c9c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5c9e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5ca00 2d 2d 54 45 53 54 2d 2d 0a 44 42 5f 64 72 69 76 65 72 3a 3a 62 75 67 32 32 33 32 38 0a 2d 2d 53 --TEST--.DB_driver::bug22328.--S
5ca20 4b 49 50 49 46 2d 2d 0a 3c 3f 70 68 70 20 63 68 64 69 72 28 64 69 72 6e 61 6d 65 28 5f 5f 46 49 KIPIF--.<?php.chdir(dirname(__FI
5ca40 4c 45 5f 5f 29 29 3b 20 72 65 71 75 69 72 65 20 22 73 6b 69 70 69 66 2e 69 6e 63 22 3b 20 3f 3e LE__));.require."skipif.inc";.?>
5ca60 0a 2d 2d 46 49 4c 45 2d 2d 0a 3c 3f 70 68 70 0a 72 65 71 75 69 72 65 20 27 2e 2f 63 6f 6e 6e 65 .--FILE--.<?php.require.'./conne
5ca80 63 74 2e 69 6e 63 27 3b 0a 24 64 62 68 2d 3e 73 65 74 45 72 72 6f 72 48 61 6e 64 6c 69 6e 67 28 ct.inc';.$dbh->setErrorHandling(
5caa0 50 45 41 52 5f 45 52 52 4f 52 5f 52 45 54 55 52 4e 29 3b 0a 24 72 65 73 20 3d 20 24 64 62 68 2d PEAR_ERROR_RETURN);.$res.=.$dbh-
5cac0 3e 71 75 65 72 79 28 27 73 65 6c 65 63 74 20 2a 20 66 72 6f 6d 20 70 68 70 5f 6c 69 6d 69 74 27 >query('select.*.from.php_limit'
5cae0 29 3b 0a 24 65 72 72 6f 72 20 3d 20 30 3b 0a 77 68 69 6c 65 20 28 24 72 6f 77 20 3d 20 24 72 65 );.$error.=.0;.while.($row.=.$re
5cb00 73 2d 3e 66 65 74 63 68 52 6f 77 28 44 42 5f 46 45 54 43 48 4d 4f 44 45 5f 41 53 53 4f 43 29 29 s->fetchRow(DB_FETCHMODE_ASSOC))
5cb20 20 7b 0a 09 69 66 20 28 44 42 3a 3a 69 73 45 72 72 6f 72 28 24 72 6f 77 29 20 26 26 20 24 65 72 .{..if.(DB::isError($row).&&.$er
5cb40 72 6f 72 29 20 7b 0a 09 09 64 69 65 28 27 62 75 67 27 29 3b 0a 09 7d 0a 09 24 72 65 73 32 20 3d ror).{...die('bug');..}..$res2.=
5cb60 20 24 64 62 68 2d 3e 71 75 65 72 79 28 22 46 41 4b 45 20 51 55 45 52 59 22 29 3b 0a 09 69 66 20 .$dbh->query("FAKE.QUERY");..if.
5cb80 28 21 44 42 3a 3a 69 73 45 72 72 6f 72 28 24 72 65 73 32 29 29 20 7b 0a 09 09 64 69 65 28 27 62 (!DB::isError($res2)).{...die('b
5cba0 75 67 27 29 3b 0a 09 7d 0a 09 24 65 72 72 6f 72 20 3d 20 74 72 75 65 3b 0a 7d 0a 3f 3e 0a 2d 2d ug');..}..$error.=.true;.}.?>.--
5cbc0 45 58 50 45 43 54 2d 2d 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 EXPECT--........................
5cbe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5cc00 44 42 2d 31 2e 35 2e 30 52 43 31 2f 74 65 73 74 73 2f 64 72 69 76 65 72 2f 63 6f 6e 6e 65 63 74 DB-1.5.0RC1/tests/driver/connect
5cc20 2e 69 6e 63 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .inc............................
5cc40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5cc60 00 00 00 00 31 30 30 36 34 34 20 00 20 20 20 37 36 34 20 00 20 20 20 31 34 34 20 00 20 20 20 20 ....100644.....764.....144......
5cc80 20 20 20 20 34 31 36 20 20 37 34 36 37 34 31 34 37 32 34 20 20 31 32 32 33 33 20 00 00 00 00 00 ....416..7467414724..12233......
5cca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5ccc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5cce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5cd00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5cd20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5cd40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5cd60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5cd80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5cda0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5cdc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5cde0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5ce00 3c 3f 70 68 70 0a 72 65 71 75 69 72 65 20 27 2e 2f 73 65 74 75 70 2e 69 6e 63 27 3b 0a 65 72 72 <?php.require.'./setup.inc';.err
5ce20 6f 72 5f 72 65 70 6f 72 74 69 6e 67 28 45 5f 41 4c 4c 29 3b 0a 72 65 71 75 69 72 65 5f 6f 6e 63 or_reporting(E_ALL);.require_onc
5ce40 65 20 22 44 42 2e 70 68 70 22 3b 0a 24 64 62 68 20 3d 20 44 42 3a 3a 63 6f 6e 6e 65 63 74 28 44 e."DB.php";.$dbh.=.DB::connect(D
5ce60 52 49 56 45 52 5f 44 53 4e 2c 20 61 72 72 61 79 28 27 6f 70 74 69 6d 69 7a 65 27 20 3d 3e 20 27 RIVER_DSN,.array('optimize'.=>.'
5ce80 70 6f 72 74 61 62 69 6c 69 74 79 27 29 29 3b 0a 69 66 20 28 44 42 3a 3a 69 73 45 72 72 6f 72 28 portability'));.if.(DB::isError(
5cea0 24 64 62 68 29 29 20 7b 0a 20 20 20 20 64 69 65 28 22 63 6f 6e 6e 65 63 74 2e 69 6e 63 3a 20 22 $dbh)).{.....die("connect.inc:."
5cec0 2e 24 64 62 68 2d 3e 74 6f 53 74 72 69 6e 67 28 29 29 3b 0a 7d 0a 0a 66 75 6e 63 74 69 6f 6e 20 .$dbh->toString());.}..function.
5cee0 64 65 62 75 67 5f 64 69 65 28 24 6f 29 7b 0a 20 20 20 20 64 69 65 28 24 6f 2d 3e 74 6f 53 74 72 debug_die($o){.....die($o->toStr
5cf00 69 6e 67 28 29 29 3b 0a 7d 0a 0a 3f 3e 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ing());.}..?>...................
5cf20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5cf40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5cf60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5cf80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5cfa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5cfc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5cfe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5d000 44 42 2d 31 2e 35 2e 30 52 43 31 2f 74 65 73 74 73 2f 64 72 69 76 65 72 2f 6d 6b 74 61 62 6c 65 DB-1.5.0RC1/tests/driver/mktable
5d020 2e 69 6e 63 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .inc............................
5d040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5d060 00 00 00 00 31 30 30 36 34 34 20 00 20 20 20 37 36 34 20 00 20 20 20 31 34 34 20 00 20 20 20 20 ....100644.....764.....144......
5d080 20 20 20 20 37 35 35 20 20 37 34 36 37 34 31 34 37 32 34 20 20 31 32 32 32 37 20 00 00 00 00 00 ....755..7467414724..12227......
5d0a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5d0c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5d0e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5d100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5d120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5d140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5d160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5d180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5d1a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5d1c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5d1e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5d200 3c 3f 70 68 70 0a 72 65 71 75 69 72 65 5f 6f 6e 63 65 20 22 2e 2f 63 6f 6e 6e 65 63 74 2e 69 6e <?php.require_once."./connect.in
5d220 63 22 3b 0a 0a 24 64 62 68 2d 3e 73 65 74 45 72 72 6f 72 48 61 6e 64 6c 69 6e 67 28 50 45 41 52 c";..$dbh->setErrorHandling(PEAR
5d240 5f 45 52 52 4f 52 5f 52 45 54 55 52 4e 29 3b 0a 24 64 62 68 2d 3e 71 75 65 72 79 28 22 44 52 4f _ERROR_RETURN);.$dbh->query("DRO
5d260 50 20 54 41 42 4c 45 20 70 68 70 74 65 73 74 22 29 3b 0a 0a 2f 2f 24 64 62 68 2d 3e 73 65 74 45 P.TABLE.phptest");..//$dbh->setE
5d280 72 72 6f 72 48 61 6e 64 6c 69 6e 67 28 50 45 41 52 5f 45 52 52 4f 52 5f 54 52 49 47 47 45 52 29 rrorHandling(PEAR_ERROR_TRIGGER)
5d2a0 3b 0a 24 64 62 68 2d 3e 73 65 74 45 72 72 6f 72 48 61 6e 64 6c 69 6e 67 28 50 45 41 52 5f 45 52 ;.$dbh->setErrorHandling(PEAR_ER
5d2c0 52 4f 52 5f 43 41 4c 4c 42 41 43 4b 2c 20 27 64 65 62 75 67 5f 64 69 65 27 29 3b 0a 24 74 65 73 ROR_CALLBACK,.'debug_die');.$tes
5d2e0 74 5f 6d 6b 74 61 62 6c 65 5f 71 75 65 72 79 20 3d 20 22 43 52 45 41 54 45 20 54 41 42 4c 45 20 t_mktable_query.=."CREATE.TABLE.
5d300 70 68 70 74 65 73 74 20 28 61 20 49 4e 54 45 47 45 52 2c 20 62 20 56 41 52 43 48 41 52 28 34 30 phptest.(a.INTEGER,.b.VARCHAR(40
5d320 29 2c 20 63 20 56 41 52 43 48 41 52 28 32 35 35 29 2c 20 64 20 56 41 52 43 48 41 52 28 32 30 29 ),.c.VARCHAR(255),.d.VARCHAR(20)
5d340 29 22 3b 0a 24 64 62 68 2d 3e 71 75 65 72 79 28 24 74 65 73 74 5f 6d 6b 74 61 62 6c 65 5f 71 75 )";.$dbh->query($test_mktable_qu
5d360 65 72 79 29 3b 0a 24 64 62 68 2d 3e 71 75 65 72 79 28 22 49 4e 53 45 52 54 20 49 4e 54 4f 20 70 ery);.$dbh->query("INSERT.INTO.p
5d380 68 70 74 65 73 74 20 56 41 4c 55 45 53 28 34 32 2c 20 27 62 69 6e 67 27 2c 20 27 54 68 69 73 20 hptest.VALUES(42,.'bing',.'This.
5d3a0 69 73 20 61 20 74 65 73 74 27 2c 20 27 31 39 39 39 2d 31 31 2d 32 31 27 29 22 29 3b 0a 0a 24 64 is.a.test',.'1999-11-21')");..$d
5d3c0 62 68 2d 3e 73 65 74 45 72 72 6f 72 48 61 6e 64 6c 69 6e 67 28 50 45 41 52 5f 45 52 52 4f 52 5f bh->setErrorHandling(PEAR_ERROR_
5d3e0 52 45 54 55 52 4e 29 3b 0a 0a 3f 3e 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 RETURN);..?>....................
5d400 44 42 2d 31 2e 35 2e 30 52 43 31 2f 74 65 73 74 73 2f 64 72 69 76 65 72 2f 73 65 74 75 70 2e 69 DB-1.5.0RC1/tests/driver/setup.i
5d420 6e 63 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 nc..............................
5d440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5d460 00 00 00 00 31 30 30 36 34 34 20 00 20 20 20 37 36 34 20 00 20 20 20 31 34 34 20 00 20 20 20 20 ....100644.....764.....144......
5d480 20 20 20 31 30 31 30 20 20 37 36 37 35 34 34 31 34 30 30 20 20 31 31 37 34 31 20 00 00 00 00 00 ...1010..7675441400..11741......
5d4a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5d4c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5d4e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5d500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5d520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5d540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5d560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5d580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5d5a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5d5c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5d5e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5d600 3c 3f 70 68 70 0a 69 6e 69 5f 73 65 74 28 27 69 6e 63 6c 75 64 65 5f 70 61 74 68 27 2c 20 72 65 <?php.ini_set('include_path',.re
5d620 61 6c 70 61 74 68 28 64 69 72 6e 61 6d 65 28 5f 5f 46 49 4c 45 5f 5f 29 20 2e 20 22 2f 2e 2e 2f alpath(dirname(__FILE__)..."/../
5d640 2e 2e 22 29 20 2e 20 22 3a 2e 3a 22 20 2e 20 69 6e 69 5f 67 65 74 28 27 69 6e 63 6c 75 64 65 5f ..")...":.:"...ini_get('include_
5d660 70 61 74 68 27 29 29 3b 0a 0a 64 65 66 69 6e 65 28 27 44 52 49 56 45 52 5f 44 53 4e 27 2c 20 27 path'));..define('DRIVER_DSN',.'
5d680 27 29 3b 0a 2f 2f 64 65 66 69 6e 65 28 27 44 52 49 56 45 52 5f 44 53 4e 27 2c 20 27 70 67 73 71 ');.//define('DRIVER_DSN',.'pgsq
5d6a0 6c 3a 2f 2f 70 6f 73 74 67 72 65 73 40 6c 6f 63 61 6c 68 6f 73 74 2f 74 65 73 74 27 29 3b 0a 2f l://postgres@localhost/test');./
5d6c0 2f 64 65 66 69 6e 65 28 27 44 52 49 56 45 52 5f 44 53 4e 27 2c 20 27 6d 79 73 71 6c 3a 2f 2f 72 /define('DRIVER_DSN',.'mysql://r
5d6e0 6f 6f 74 40 6c 6f 63 61 6c 68 6f 73 74 2f 74 65 73 74 27 29 3b 0a 2f 2f 64 65 66 69 6e 65 28 27 oot@localhost/test');.//define('
5d700 44 52 49 56 45 52 5f 44 53 4e 27 2c 20 27 6f 63 69 38 3a 2f 2f 73 79 73 74 65 6d 3a 6d 61 6e 61 DRIVER_DSN',.'oci8://system:mana
5d720 67 65 72 40 27 29 3b 0a 2f 2f 64 65 66 69 6e 65 28 27 44 52 49 56 45 52 5f 44 53 4e 27 2c 20 27 ger@');.//define('DRIVER_DSN',.'
5d740 69 62 61 73 65 28 66 69 72 65 62 69 72 64 29 3a 2f 2f 53 59 53 44 42 41 3a 6d 61 73 74 65 72 6b ibase(firebird)://SYSDBA:masterk
5d760 65 79 40 2f 2f 6f 70 74 2f 69 6e 74 65 72 62 61 73 65 2f 65 78 61 6d 70 6c 65 73 2f 65 6d 70 6c ey@//opt/interbase/examples/empl
5d780 6f 79 65 65 2e 67 64 62 3f 64 69 61 6c 65 63 74 3d 33 27 29 3b 0a 2f 2f 64 65 66 69 6e 65 28 27 oyee.gdb?dialect=3');.//define('
5d7a0 44 52 49 56 45 52 5f 44 53 4e 27 2c 20 27 6d 73 73 71 6c 3a 2f 2f 73 61 40 73 6f 6d 65 68 6f 73 DRIVER_DSN',.'mssql://sa@somehos
5d7c0 74 2f 70 75 62 73 27 29 3b 0a 2f 2f 64 65 66 69 6e 65 28 27 44 52 49 56 45 52 5f 44 53 4e 27 2c t/pubs');.//define('DRIVER_DSN',
5d7e0 20 27 6f 64 62 63 28 64 62 32 29 3a 2f 2f 64 62 32 69 6e 73 74 31 3a 58 58 58 58 40 53 41 4d 50 .'odbc(db2)://db2inst1:XXXX@SAMP
5d800 4c 45 27 29 3b 0a 3f 3e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 LE');.?>........................
5d820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5d840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5d860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5d880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5d8a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5d8c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5d8e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5d900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5d920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5d940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5d960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5d980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5d9a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5d9c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5d9e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5da00 44 42 2d 31 2e 35 2e 30 52 43 31 2f 74 65 73 74 73 2f 64 72 69 76 65 72 2f 73 6b 69 70 69 66 2e DB-1.5.0RC1/tests/driver/skipif.
5da20 69 6e 63 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 inc.............................
5da40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5da60 00 00 00 00 31 30 30 36 34 34 20 00 20 20 20 37 36 34 20 00 20 20 20 31 34 34 20 00 20 20 20 20 ....100644.....764.....144......
5da80 20 20 20 20 37 30 31 20 20 37 34 36 37 34 31 34 37 32 34 20 20 31 32 30 36 34 20 00 00 00 00 00 ....701..7467414724..12064......
5daa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5dac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5dae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5db00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5db20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5db40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5db60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5db80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5dba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5dbc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5dbe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5dc00 3c 3f 70 68 70 0a 2f 2f 20 54 68 69 73 20 73 63 72 69 70 74 20 70 72 69 6e 74 73 20 22 73 6b 69 <?php.//.This.script.prints."ski
5dc20 70 22 20 75 6e 6c 65 73 73 3a 0a 2f 2f 20 2a 20 74 68 65 20 6d 79 73 71 6c 20 65 78 74 65 6e 73 p".unless:.//.*.the.mysql.extens
5dc40 69 6f 6e 20 69 73 20 62 75 69 6c 74 2d 69 6e 20 6f 72 20 6c 6f 61 64 61 62 6c 65 2c 20 41 4e 44 ion.is.built-in.or.loadable,.AND
5dc60 0a 2f 2f 20 2a 20 74 68 65 72 65 20 69 73 20 61 20 64 61 74 61 62 61 73 65 20 63 61 6c 6c 65 64 .//.*.there.is.a.database.called
5dc80 20 22 74 65 73 74 22 20 61 63 63 65 73 73 69 62 6c 65 0a 2f 2f 20 20 20 77 69 74 68 20 6e 6f 20 ."test".accessible.//...with.no.
5dca0 75 73 65 72 6e 61 6d 65 2f 70 61 73 73 77 6f 72 64 2c 20 41 4e 44 0a 2f 2f 20 2a 20 77 65 20 68 username/password,.AND.//.*.we.h
5dcc0 61 76 65 20 63 72 65 61 74 65 2f 64 72 6f 70 20 70 72 69 76 69 6c 65 67 65 73 20 6f 6e 20 74 68 ave.create/drop.privileges.on.th
5dce0 65 20 65 6e 74 69 72 65 20 22 74 65 73 74 22 0a 2f 2f 20 20 20 64 61 74 61 62 61 73 65 0a 69 6e e.entire."test".//...database.in
5dd00 63 6c 75 64 65 20 27 2e 2f 73 65 74 75 70 2e 69 6e 63 27 3b 0a 72 65 71 75 69 72 65 5f 6f 6e 63 clude.'./setup.inc';.require_onc
5dd20 65 20 27 44 42 2e 70 68 70 27 3b 0a 69 66 20 28 21 64 65 66 69 6e 65 64 28 27 44 52 49 56 45 52 e.'DB.php';.if.(!defined('DRIVER
5dd40 5f 44 53 4e 27 29 20 7c 7c 20 44 52 49 56 45 52 5f 44 53 4e 20 3d 3d 20 27 27 29 20 7b 0a 20 20 _DSN').||.DRIVER_DSN.==.'').{...
5dd60 20 20 64 69 65 28 22 73 6b 69 70 5c 6e 22 29 3b 0a 7d 0a 24 64 62 20 3d 20 44 42 3a 3a 63 6f 6e ..die("skip\n");.}.$db.=.DB::con
5dd80 6e 65 63 74 28 44 52 49 56 45 52 5f 44 53 4e 29 3b 0a 69 66 20 28 44 42 3a 3a 69 73 45 72 72 6f nect(DRIVER_DSN);.if.(DB::isErro
5dda0 72 28 24 64 62 29 29 20 7b 0a 20 20 20 20 64 69 65 28 22 73 6b 69 70 5c 6e 22 29 3b 0a 7d 0a 3f r($db)).{.....die("skip\n");.}.?
5ddc0 3e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 >...............................
5dde0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5de00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5de20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5de40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5de60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5de80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5dea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5dec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5dee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5df00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5df20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5df40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5df60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5df80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5dfa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5dfc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5dfe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................