source: tmp/version-2_5-test/data/module/adodb/tests/testdatabases.inc.php @ 18609

Revision 18609, 17.5 KB checked in by kajiwara, 16 years ago (diff)

正式版にナイトリービルド版をマージしてみるテスト

Line 
1<?php
2 
3/*
4V4.80 8 Mar 2006  (c) 2000-2009 John Lim (jlim#natsoft.com). All rights reserved.
5  Released under both BSD license and Lesser GPL library license.
6  Whenever there is any discrepancy between the two licenses,
7  the BSD license will take precedence.
8*/
9 
10 /* this file is used by the ADODB test program: test.php */
11 ?>
12
13<table><tr valign=top><td>
14<form method=get>
15<input type=checkbox name="testaccess" value=1 <?php echo !empty($testaccess) ? 'checked' : '' ?>> <b>Access</b><br>
16<input type=checkbox name="testibase" value=1 <?php echo !empty($testibase) ? 'checked' : '' ?>> <b>Interbase</b><br>
17<input type=checkbox name="testmssql" value=1 <?php echo !empty($testmssql) ? 'checked' : '' ?>> <b>MSSQL</b><br>
18 <input type=checkbox name="testmysql" value=1 <?php echo !empty($testmysql) ? 'checked' : '' ?>> <b>MySQL</b><br>
19<input type=checkbox name="testmysqlodbc" value=1 <?php echo !empty($testmysqlodbc) ? 'checked' : '' ?>> <b>MySQL ODBC</b><br>
20<input type=checkbox name="testmysqli" value=1 <?php echo !empty($testmysqli) ? 'checked' : '' ?>> <b>MySQLi</b>
21<br>
22<td><input type=checkbox name="testsqlite" value=1 <?php echo !empty($testsqlite) ? 'checked' : '' ?>> <b>SQLite</b><br>
23<input type=checkbox name="testproxy" value=1 <?php echo !empty($testproxy) ? 'checked' : '' ?>> <b>MySQL Proxy</b><br>
24<input type=checkbox name="testoracle" value=1 <?php echo !empty($testoracle) ? 'checked' : '' ?>> <b>Oracle (oci8)</b> <br>
25<input type=checkbox name="testpostgres" value=1 <?php echo !empty($testpostgres) ? 'checked' : '' ?>> <b>PostgreSQL</b><br>
26<input type=checkbox name="testpgodbc" value=1 <?php echo !empty($testpgodbc) ? 'checked' : '' ?>> <b>PostgreSQL ODBC</b><br>
27<td>
28<input type=checkbox name="testpdopgsql" value=1 <?php echo !empty($testpdopgsql) ? 'checked' : '' ?>> <b>PgSQL PDO</b><br>
29<input type=checkbox name="testpdomysql" value=1 <?php echo !empty($testpdomysql) ? 'checked' : '' ?>> <b>MySQL PDO</b><br>
30<input type=checkbox name="testpdosqlite" value=1 <?php echo !empty($testpdosqlite) ? 'checked' : '' ?>> <b>SQLite PDO</b><br>
31<input type=checkbox name="testpdoaccess" value=1 <?php echo !empty($testpdoaccess) ? 'checked' : '' ?>> <b>Access PDO</b><br>
32<input type=checkbox name="testpdomssql" value=1 <?php echo !empty($testpdomssql) ? 'checked' : '' ?>> <b>MSSQL PDO</b><br>
33
34<input type=checkbox name="testpdoora" value=1 <?php echo !empty($testpdoora) ? 'checked' : '' ?>> <b>OCI PDO</b><br>
35
36<td><input type=checkbox name="testdb2" value=1 <?php echo !empty($testdb2) ? 'checked' : '' ?>> DB2<br>
37<input type=checkbox name="testvfp" value=1 <?php echo !empty($testvfp) ? 'checked' : '' ?>> VFP+ODBTP<br>
38<input type=checkbox name="testado" value=1 <?php echo !empty($testado) ? 'checked' : '' ?>> ADO (for mssql and access)<br>
39<input type=checkbox name="nocountrecs" value=1 <?php echo !empty($nocountrecs) ? 'checked' : '' ?>> $ADODB_COUNTRECS=false<br>
40<input type=checkbox name="nolog" value=1 <?php echo !empty($nolog) ? 'checked' : '' ?>> No SQL Logging<br>
41<input type=checkbox name="time" value=1 <?php echo !empty($_GET['time']) ? 'checked' : '' ?>> ADOdb time test
42</table>
43<input type=submit>
44</form>
45
46<?php
47
48if ($ADODB_FETCH_MODE != ADODB_FETCH_DEFAULT) print "<h3>FETCH MODE IS NOT ADODB_FETCH_DEFAULT</h3>";
49
50if (isset($nocountrecs)) $ADODB_COUNTRECS = false;
51
52// cannot test databases below, but we include them anyway to check
53// if they parse ok...
54
55if (!strpos(PHP_VERSION,'5') === 0) {
56    ADOLoadCode("sybase");
57    //ADOLoadCode("postgres");
58    //ADOLoadCode("postgres7");
59    ADOLoadCode("firebird");
60    ADOLoadCode("borland_ibase");
61    ADOLoadCode("informix");
62    ADOLoadCode("sqlanywhere");
63//  ADOLoadCode('mysqli');
64}
65
66
67flush();
68if (!empty($testpostgres)) {
69    //ADOLoadCode("postgres");
70
71    $db = &ADONewConnection('postgres');
72    print "<h1>Connecting $db->databaseType...</h1>";
73    if ($db->Connect("localhost","tester","test","test")) {
74        testdb($db,"create table ADOXYZ (id integer, firstname char(24), lastname varchar,created date)");
75    }else
76        print "ERROR: PostgreSQL requires a database called test on server, user tester, password test.<BR>".$db->ErrorMsg();
77}
78
79if (!empty($testpgodbc)) {
80   
81    $db = &ADONewConnection('odbc');
82    $db->hasTransactions = false;
83    print "<h1>Connecting $db->databaseType...</h1>";
84   
85    if ($db->PConnect('Postgresql')) {
86        $db->hasTransactions = true;
87        testdb($db,
88        "create table ADOXYZ (id int, firstname char(24), lastname char(24), created date) type=innodb");
89    } else print "ERROR: PostgreSQL requires a database called test on server, user tester, password test.<BR>".$db->ErrorMsg();
90}
91
92if (!empty($testibase)) {
93    //$_GET['nolog'] = true;
94    $db = &ADONewConnection('firebird');
95    print "<h1>Connecting $db->databaseType...</h1>";
96    if ($db->PConnect("localhost:d:\\firebird\\151\\examples\\EMPLOYEE.fdb", "sysdba", "masterkey", ""))
97        testdb($db,"create table ADOXYZ (id integer, firstname char(24), lastname char(24),price numeric(12,2),created date)");
98     else print "ERROR: Interbase test requires a database called employee.gdb".'<BR>'.$db->ErrorMsg();
99   
100}
101
102
103if (!empty($testsqlite)) {
104    $path =urlencode('d:\inetpub\adodb\sqlite.db');
105    $dsn = "sqlite://$path/";
106    $db = ADONewConnection($dsn);
107    //echo $dsn;
108   
109    //$db = &ADONewConnection('sqlite');
110   
111
112    if ($db && $db->PConnect("d:\\inetpub\\adodb\\sqlite.db", "", "", "")) {
113        print "<h1>Connecting $db->databaseType...</h1>";
114        testdb($db,"create table ADOXYZ (id int, firstname char(24), lastname char(24),created datetime)");
115    } else
116        print "ERROR: SQLite";
117   
118}
119
120if (!empty($testpdopgsql)) {
121    $connstr = "pgsql:dbname=test";
122    $u = 'tester';$p='test';
123    $db = &ADONewConnection('pdo');
124    print "<h1>Connecting $db->databaseType...</h1>";
125    $db->Connect($connstr,$u,$p) || die("CONNECT FAILED");
126    testdb($db,
127        "create table ADOXYZ (id int, firstname char(24), lastname char(24), created date)");
128}
129
130if (!empty($testpdomysql)) {
131    $connstr = "mysql:dbname=northwind";
132    $u = 'root';$p='';
133    $db = &ADONewConnection('pdo');
134    print "<h1>Connecting $db->databaseType...</h1>";
135    $db->Connect($connstr,$u,$p) || die("CONNECT FAILED");
136   
137    testdb($db,
138        "create table ADOXYZ (id int, firstname char(24), lastname char(24), created date)");
139}
140
141if (!empty($testpdomssql)) {
142    $connstr = "mssql:dbname=northwind";
143    $u = 'sa';$p='natsoft';
144    $db = &ADONewConnection('pdo');
145    print "<h1>Connecting $db->databaseType...</h1>";
146    $db->Connect($connstr,$u,$p) || die("CONNECT FAILED");
147   
148    testdb($db,
149        "create table ADOXYZ (id int, firstname char(24), lastname char(24), created date)");
150}
151
152if (!empty($testpdosqlite)) {
153    $connstr = "sqlite:d:/inetpub/adodb/sqlite-pdo.db3";
154    $u = '';$p='';
155    $db = &ADONewConnection('pdo');
156    $db->hasTransactions = false;
157    print "<h1>Connecting $db->databaseType...</h1>";
158    $db->Connect($connstr,$u,$p) || die("CONNECT FAILED");
159    testdb($db,
160        "create table ADOXYZ (id int, firstname char(24), lastname char(24), created date)");
161}
162
163if (!empty($testpdoaccess)) {
164    $connstr = 'odbc:nwind';
165    $u = '';$p='';
166    $db = &ADONewConnection('pdo');
167    $db->hasTransactions = false;
168    print "<h1>Connecting $db->databaseType...</h1>";
169    $db->Connect($connstr,$u,$p) || die("CONNECT FAILED");
170    testdb($db,
171        "create table ADOXYZ (id int, firstname char(24), lastname char(24), created date)");
172}
173
174if (!empty($testpdoora)) {
175    $connstr = 'oci:';
176    $u = 'scott';$p='natsoft';
177    $db = &ADONewConnection('pdo');
178    #$db->hasTransactions = false;
179    print "<h1>Connecting $db->databaseType...</h1>";
180    $db->Connect($connstr,$u,$p) || die("CONNECT FAILED");
181    testdb($db,
182        "create table ADOXYZ (id int, firstname char(24), lastname char(24), created date)");
183}
184
185// REQUIRES ODBC DSN CALLED nwind
186if (!empty($testaccess)) {
187    $db = &ADONewConnection('access');
188    print "<h1>Connecting $db->databaseType...</h1>";
189    $access = 'd:\inetpub\wwwroot\php\NWIND.MDB';
190    $dsn = "nwind";
191    $dsn = "Driver={Microsoft Access Driver (*.mdb)};Dbq=$access;Uid=Admin;Pwd=;";
192   
193    //$dsn =  'Provider=Microsoft.Jet.OLEDB.4.0;DATA SOURCE=' . $access . ';';
194    if ($db->PConnect($dsn, "", "", ""))
195        testdb($db,"create table ADOXYZ (id int, firstname char(24), lastname char(24),created datetime)");
196    else print "ERROR: Access test requires a Windows ODBC DSN=nwind, Access driver";
197   
198}
199
200if (!empty($testaccess) && !empty($testado)) { // ADO ACCESS
201
202    $db = &ADONewConnection("ado_access");
203    print "<h1>Connecting $db->databaseType...</h1>";
204   
205    $access = 'd:\inetpub\wwwroot\php\NWIND.MDB';
206    $myDSN =  'PROVIDER=Microsoft.Jet.OLEDB.4.0;'
207        . 'DATA SOURCE=' . $access . ';';
208        //. 'USER ID=;PASSWORD=;';
209    $_GET['nolog'] = 1;
210    if ($db->PConnect($myDSN, "", "", "")) {
211        print "ADO version=".$db->_connectionID->version."<br>";
212        testdb($db,"create table ADOXYZ (id int, firstname char(24), lastname char(24),created datetime)");
213    } else print "ERROR: Access test requires a Access database $access".'<BR>'.$db->ErrorMsg();
214   
215}
216
217if (!empty($testvfp)) { // ODBC
218    $db = &ADONewConnection('vfp');
219    print "<h1>Connecting $db->databaseType...</h1>";flush();
220
221    if ( $db->PConnect("vfp-adoxyz")) {
222        testdb($db,"create table d:\\inetpub\\adodb\\ADOXYZ (id int, firstname char(24), lastname char(24),created date)");
223     } else print "ERROR: Visual FoxPro test requires a Windows ODBC DSN=vfp-adoxyz, VFP driver";
224   
225    echo "<hr />";
226    $db = &ADONewConnection('odbtp');
227   
228    if ( $db->PConnect('localhost','DRIVER={Microsoft Visual FoxPro Driver};SOURCETYPE=DBF;SOURCEDB=d:\inetpub\adodb;EXCLUSIVE=NO;')) {
229    print "<h1>Connecting $db->databaseType...</h1>";flush();
230    testdb($db,"create table d:\\inetpub\\adodb\\ADOXYZ (id int, firstname char(24), lastname char(24),created date)");
231     } else print "ERROR: Visual FoxPro odbtp requires a Windows ODBC DSN=vfp-adoxyz, VFP driver";
232   
233}
234
235
236// REQUIRES MySQL server at localhost with database 'test'
237if (!empty($testmysql)) { // MYSQL
238
239
240    if (PHP_VERSION >= 5 || $_SERVER['HTTP_HOST'] == 'localhost') $server = 'localhost';
241    else $server = "mangrove";
242    $user = 'root'; $password = ''; $database = 'northwind';
243    $db = &ADONewConnection("mysqlt://$user:$password@$server/$database?persist");
244    print "<h1>Connecting $db->databaseType...</h1>";
245   
246    if (true || $db->PConnect($server, "root", "", "northwind")) {
247        //$db->Execute("DROP TABLE ADOXYZ") || die('fail drop');
248        //$db->debug=1;$db->Execute('drop table ADOXYZ');
249        testdb($db,
250        "create table ADOXYZ (id int, firstname char(24), lastname char(24), created date) Type=InnoDB");
251    } else print "ERROR: MySQL test requires a MySQL server on localhost, userid='admin', password='', database='test'".'<BR>'.$db->ErrorMsg();
252}
253
254// REQUIRES MySQL server at localhost with database 'test'
255if (!empty($testmysqli)) { // MYSQL
256
257    $db = &ADONewConnection('mysqli');
258    print "<h1>Connecting $db->databaseType...</h1>";
259    if (PHP_VERSION >= 5 || $_SERVER['HTTP_HOST'] == 'localhost') $server = 'localhost';
260    else $server = "mangrove";
261    if ($db->PConnect($server, "root", "", "northwind")) {
262        //$db->debug=1;$db->Execute('drop table ADOXYZ');
263        testdb($db,
264        "create table ADOXYZ (id int, firstname char(24), lastname char(24), created date)");
265    } else print "ERROR: MySQL test requires a MySQL server on localhost, userid='admin', password='', database='test'".'<BR>'.$db->ErrorMsg();
266}
267
268
269// REQUIRES MySQL server at localhost with database 'test'
270if (!empty($testmysqlodbc)) { // MYSQL
271   
272    $db = &ADONewConnection('odbc');
273    $db->hasTransactions = false;
274    print "<h1>Connecting $db->databaseType...</h1>";
275    if ($_SERVER['HTTP_HOST'] == 'localhost') $server = 'localhost';
276    else $server = "mangrove";
277    if ($db->PConnect('mysql', "root", ""))
278        testdb($db,
279        "create table ADOXYZ (id int, firstname char(24), lastname char(24), created date) type=innodb");
280    else print "ERROR: MySQL test requires a MySQL server on localhost, userid='admin', password='', database='test'".'<BR>'.$db->ErrorMsg();
281}
282
283if (!empty($testproxy)){
284    $db = &ADONewConnection('proxy');
285    print "<h1>Connecting $db->databaseType...</h1>";
286    if ($_SERVER['HTTP_HOST'] == 'localhost') $server = 'localhost';
287
288    if ($db->PConnect('http://localhost/php/phplens/adodb/server.php'))
289        testdb($db,
290        "create table ADOXYZ (id int, firstname char(24), lastname char(24), created date) type=innodb");
291    else print "ERROR: MySQL test requires a MySQL server on localhost, userid='admin', password='', database='test'".'<BR>'.$db->ErrorMsg();
292
293}
294
295ADOLoadCode('oci805');
296ADOLoadCode("oci8po");
297   
298if (!empty($testoracle)) {
299    $dsn = "oci8po";//juris10:natsoft@sherkhan?persist";
300    $db = ADONewConnection($dsn );//'oci8');
301   
302    //$db->debug=1;
303    print "<h1>Connecting $db->databaseType...</h1>";
304    if ( $db->Connect('', "scott", "natsoft",'kk2'))
305        testdb($db,"create table ADOXYZ (id int, firstname varchar(24), lastname varchar(24),created date)");
306    else
307        print "ERROR: Oracle test requires an Oracle server setup with scott/natsoft".'<BR>'.$db->ErrorMsg();
308
309}
310ADOLoadCode("oracle"); // no longer supported
311if (false && !empty($testoracle)) {
312   
313    $db = ADONewConnection();
314    print "<h1>Connecting $db->databaseType...</h1>";
315    if ($db->PConnect("", "scott", "tiger", "natsoft.domain"))
316        testdb($db,"create table ADOXYZ (id int, firstname varchar(24), lastname varchar(24),created date)");
317    else print "ERROR: Oracle test requires an Oracle server setup with scott/tiger".'<BR>'.$db->ErrorMsg();
318
319}
320
321ADOLoadCode("odbc_db2"); // no longer supported
322if (!empty($testdb2)) {
323    if (PHP_VERSION>=5.1) {
324        $db = ADONewConnection("db2");
325        print "<h1>Connecting $db->databaseType...</h1>";
326       
327        #$db->curMode = SQL_CUR_USE_ODBC;
328        #$dsn = "driver={IBM db2 odbc DRIVER};Database=test;hostname=localhost;port=50000;protocol=TCPIP; uid=natsoft; pwd=guest";
329        if ($db->Connect('localhost','natsoft','guest','test')) {
330            testdb($db,"create table ADOXYZ (id int, firstname varchar(24), lastname varchar(24),created date)");
331        } else print "ERROR: DB2 test requires an server setup with odbc data source db2_sample".'<BR>'.$db->ErrorMsg();
332    } else {
333        $db = ADONewConnection("odbc_db2");
334        print "<h1>Connecting $db->databaseType...</h1>";
335       
336        $dsn = "db2test";
337        #$db->curMode = SQL_CUR_USE_ODBC;
338        #$dsn = "driver={IBM db2 odbc DRIVER};Database=test;hostname=localhost;port=50000;protocol=TCPIP; uid=natsoft; pwd=guest";
339        if ($db->Connect($dsn)) {
340            testdb($db,"create table ADOXYZ (id int, firstname varchar(24), lastname varchar(24),created date)");
341        } else print "ERROR: DB2 test requires an server setup with odbc data source db2_sample".'<BR>'.$db->ErrorMsg();
342    }
343echo "<hr />";
344flush();
345    $dsn = "driver={IBM db2 odbc DRIVER};Database=sample;hostname=localhost;port=50000;protocol=TCPIP; uid=root; pwd=natsoft";
346   
347    $db = ADONewConnection('odbtp');
348    if ($db->Connect('127.0.0.1',$dsn)) {
349       
350        $db->debug=1;
351         $arr = $db->GetArray( "||SQLProcedures" ); adodb_pr($arr);
352         $arr = $db->GetArray( "||SQLProcedureColumns|||GET_ROUTINE_SAR" );adodb_pr($arr);
353   
354        testdb($db,"create table ADOXYZ (id int, firstname varchar(24), lastname varchar(24),created date)");
355    } else echo ("ERROR Connection");
356    echo $db->ErrorMsg();
357}
358
359
360$server = 'sherkhan';
361
362
363
364ADOLoadCode("mssqlpo");
365if (!empty($testmssql)) { // MS SQL Server -- the extension is buggy -- probably better to use ODBC
366    $db = ADONewConnection("mssqlpo");
367    //$db->debug=1;
368    print "<h1>Connecting $db->databaseType...</h1>";
369   
370    #$ok = $db->Connect('','adodb','natsoft','northwind');
371
372    if ($db->PConnect("mangrove", "sa", "natsoft", "Northwind")) {
373        AutoDetect_MSSQL_Date_Order($db);
374    //  $db->Execute('drop table adoxyz');
375        testdb($db,"create table ADOXYZ (id int, firstname char(24) null, lastname char(24) null,created datetime null)");
376    } else print "ERROR: MSSQL test 2 requires a MS SQL 7 on a server='192.168.0.1', userid='adodb', password='natsoft', database='ai'".'<BR>'.$db->ErrorMsg();
377   
378}
379
380
381ADOLoadCode('odbc_mssql');
382if (!empty($testmssql)) { // MS SQL Server via ODBC
383    $db = ADONewConnection();
384   
385    print "<h1>Connecting $db->databaseType...</h1>";
386   
387    $dsn = "PROVIDER=MSDASQL;Driver={SQL Server};Server=$server;Database=northwind;";
388   
389    if ($db->PConnect($dsn, "adodb", "natsoft", ""))  {
390        testdb($db,"create table ADOXYZ (id int, firstname char(24) null, lastname char(24) null,created datetime null)");
391    }
392    else print "ERROR: MSSQL test 1 requires a MS SQL 7 server setup with DSN setup";
393
394}
395
396ADOLoadCode("ado_mssql");
397if (!empty($testmssql) && !empty($testado) ) { // ADO ACCESS MSSQL -- thru ODBC -- DSN-less
398   
399    $db = &ADONewConnection("ado_mssql");
400    //$db->debug=1;
401    print "<h1>Connecting DSN-less $db->databaseType...</h1>";
402   
403    $myDSN="PROVIDER=MSDASQL;DRIVER={SQL Server};"
404        . "SERVER=$server;DATABASE=NorthWind;UID=adodb;PWD=natsoft;Trusted_Connection=No";
405
406       
407    if ($db->PConnect($myDSN, "", "", ""))
408        testdb($db,"create table ADOXYZ (id int, firstname char(24) null, lastname char(24) null,created datetime null)");
409    else print "ERROR: MSSQL test 2 requires MS SQL 7";
410   
411}
412
413if (!empty($testmssql) && !empty($testado)) { // ADO ACCESS MSSQL with OLEDB provider
414
415    $db = &ADONewConnection("ado_mssql");
416    print "<h1>Connecting DSN-less OLEDB Provider $db->databaseType...</h1>";
417    //$db->debug=1;
418    $myDSN="SERVER=localhost;DATABASE=northwind;Trusted_Connection=yes";
419    if ($db->PConnect($myDSN, "adodb", "natsoft", 'SQLOLEDB')) {
420        testdb($db,"create table ADOXYZ (id int, firstname char(24), lastname char(24),created datetime)");
421    } else print "ERROR: MSSQL test 2 requires a MS SQL 7 on a server='mangrove', userid='sa', password='', database='ai'";
422
423}
424
425
426if (extension_loaded('odbtp') && !empty($testmssql)) { // MS SQL Server via ODBC
427    $db = ADONewConnection('odbtp');
428   
429    $dsn = "PROVIDER=MSDASQL;Driver={SQL Server};Server=$server;Database=northwind;uid=adodb;pwd=natsoft";
430   
431    if ($db->PConnect('localhost',$dsn, "", ""))  {
432        print "<h1>Connecting $db->databaseType...</h1>";               
433        testdb($db,"create table ADOXYZ (id int, firstname char(24) null, lastname char(24) null,created datetime null)");
434    }
435    else print "ERROR: MSSQL test 1 requires a MS SQL 7 server setup with DSN setup";
436
437}
438
439
440print "<h3>Tests Completed</h3>";
441
442?>
Note: See TracBrowser for help on using the repository browser.