diff -urN moodle/lib/adodb/server.php moodle.adodb/lib/adodb/server.php
--- moodle/lib/adodb/server.php 2005-11-10 21:05:24.000000000 -0500
+++ moodle.adodb/lib/adodb/server.php 2006-01-03 21:07:46.000000000 -0500
@@ -1,98 +1,10 @@
<?php
-/**
- * @version V4.66 28 Sept 2005 (c) 2000-2005 John Lim (jlim@natsoft.com.my). All rights reserved.
- * Released under both BSD license and Lesser GPL library license.
- Whenever there is any discrepancy between the two licenses,
- the BSD license will take precedence.
- */
-
-/* Documentation on usage is at http://php.weblogs.com/adodb_csv
- *
- * Legal query string parameters:
- *
- * sql = holds sql string
- * nrows = number of rows to return
- * offset = skip offset rows of data
- * fetch = $ADODB_FETCH_MODE
- *
- * example:
- *
- * http://localhost/php/server.php?select+*+from+table&nrows=10&offset=2
- */
+require_once('../../config.php');
+require_once('../weblib.php');
-
-/*
- * Define the IP address you want to accept requests from
- * as a security measure. If blank we accept anyone promisciously!
- */
-$ACCEPTIP = '';
-
-/*
- * Connection parameters
- */
-$driver = 'mysql';
-$host = 'localhost'; // DSN for odbc
-$uid = 'root';
-$pwd = '';
-$database = 'test';
-
-/*============================ DO NOT MODIFY BELOW HERE =================================*/
-// $sep must match csv2rs() in adodb.inc.php
-$sep = ' :::: ';
-
-include('./adodb.inc.php');
-include_once(ADODB_DIR.'/adodb-csvlib.inc.php');
-
-function err($s)
-{
- die('**** '.$s.' ');
-}
-
-// undo stupid magic quotes
-function undomq(&$m)
-{
- if (get_magic_quotes_gpc()) {
- // undo the damage
- $m = str_replace('\\\\','\\',$m);
- $m = str_replace('\"','"',$m);
- $m = str_replace('\\\'','\'',$m);
-
- }
- return $m;
-}
-
-///////////////////////////////////////// DEFINITIONS
-
-
-$remote = $_SERVER["REMOTE_ADDR"];
-
-if (empty($_REQUEST['sql'])) err('No SQL');
-
-if (!empty($ACCEPTIP))
- if ($remote != '127.0.0.1' && $remote != $ACCEPTIP)
- err("Unauthorised client: '$remote'");
-
-
-$conn = &ADONewConnection($driver);
-
-if (!$conn->Connect($host,$uid,$pwd,$database)) err($conn->ErrorNo(). $sep . $conn->ErrorMsg());
-$sql = undomq($_REQUEST['sql']);
-
-if (isset($_REQUEST['fetch']))
- $ADODB_FETCH_MODE = $_REQUEST['fetch'];
-
-if (isset($_REQUEST['nrows'])) {
- $nrows = $_REQUEST['nrows'];
- $offset = isset($_REQUEST['offset']) ? $_REQUEST['offset'] : -1;
- $rs = $conn->SelectLimit($sql,$nrows,$offset);
-} else
- $rs = $conn->Execute($sql);
-if ($rs){
- //$rs->timeToLive = 1;
- echo _rs2serialize($rs,$conn,$sql);
- $rs->Close();
-} else
- err($conn->ErrorNo(). $sep .$conn->ErrorMsg());
+add_to_log(0, 'adodb', 'intrusion attempt', 'lib/adodb/server.php');
+trigger_error('SECURITY WARNING: intrusion attempt against lib/adodb/server.php from ' . getremoteaddr());
+error('SECURITY WARNING: logged intrusion attempt against lib/adodb/server.php');
?>
\ No newline at end of file
diff -urN moodle/lib/adodb/tests/benchmark.php moodle.adodb/lib/adodb/tests/benchmark.php
--- moodle/lib/adodb/tests/benchmark.php 2005-11-10 21:05:25.000000000 -0500
+++ moodle.adodb/lib/adodb/tests/benchmark.php 1969-12-31 19:00:00.000000000 -0500
@@ -1,84 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-
-<html>
-<head>
- <title>ADODB Benchmarks</title>
-</head>
-
-<body>
-<?php
-/*
-V4.66 28 Sept 2005 (c) 2000-2005 John Lim (jlim@natsoft.com.my). All rights reserved.
- Released under both BSD license and Lesser GPL library license.
- Whenever there is any discrepancy between the two licenses,
- the BSD license will take precedence.
-
- Benchmark code to test the speed to the ADODB library with different databases.
- This is a simplistic benchmark to be used as the basis for further testing.
- It should not be used as proof of the superiority of one database over the other.
-*/
-
-$testmssql = true;
-//$testvfp = true;
-$testoracle = true;
-$testado = true;
-$testibase = true;
-$testaccess = true;
-$testmysql = true;
-$testsqlite = true;;
-
-set_time_limit(240); // increase timeout
-
-include("../tohtml.inc.php");
-include("../adodb.inc.php");
-
-function testdb(&$db,$createtab="create table ADOXYZ (id int, firstname char(24), lastname char(24), created date)")
-{
-GLOBAL $ADODB_version,$ADODB_FETCH_MODE;
-
- adodb_backtrace();
-
- $max = 100;
- $sql = 'select * from ADOXYZ';
- $ADODB_FETCH_MODE = ADODB_FETCH_NUM;
-
- //print "<h3>ADODB Version: $ADODB_version Host: <i>$db->host</i> Database: <i>$db->database</i></h3>";
-
- // perform query once to cache results so we are only testing throughput
- $rs = $db->Execute($sql);
- if (!$rs){
- print "Error in recordset<p>";
- return;
- }
- $arr = $rs->GetArray();
- //$db->debug = true;
- global $ADODB_COUNTRECS;
- $ADODB_COUNTRECS = false;
- $start = microtime();
- for ($i=0; $i < $max; $i++) {
- $rs =& $db->Execute($sql);
- $arr =& $rs->GetArray();
- // print $arr[0][1];
- }
- $end = microtime();
- $start = explode(' ',$start);
- $end = explode(' ',$end);
-
- //print_r($start);
- //print_r($end);
-
- // print_r($arr);
- $total = $end[0]+trim($end[1]) - $start[0]-trim($start[1]);
- printf ("<p>seconds = %8.2f for %d iterations each with %d records</p>",$total,$max, sizeof($arr));
- flush();
-
-
- //$db->Close();
-}
-include("testdatabases.inc.php");
-
-?>
-
-
-</body>
-</html>
diff -urN moodle/lib/adodb/tests/client.php moodle.adodb/lib/adodb/tests/client.php
--- moodle/lib/adodb/tests/client.php 2004-07-12 23:13:35.000000000 -0400
+++ moodle.adodb/lib/adodb/tests/client.php 1969-12-31 19:00:00.000000000 -0500
@@ -1,194 +0,0 @@
-<html>
-<body bgcolor=white>
-<?php
-/**
- * V4.50 6 July 2004 (c) 2001-2002 John Lim (jlim@natsoft.com.my). All rights reserved.
- * Released under both BSD license and Lesser GPL library license.
- Whenever there is any discrepancy between the two licenses,
- the BSD license will take precedence.
- *
- * set tabs to 8
- */
-
- // documentation on usage is at http://php.weblogs.com/adodb_csv
-
-include('../adodb.inc.php');
-include('../tohtml.inc.php');
-
- function &send2server($url,$sql)
- {
- $url .= '?sql='.urlencode($sql);
- print "<p>$url</p>";
- $rs = csv2rs($url,$err);
- if ($err) print $err;
- return $rs;
- }
-
- function print_pre($s)
- {
- print "<pre>";print_r($s);print "</pre>";
- }
-
-
-$serverURL = 'http://localhost/php/phplens/adodb/server.php';
-$testhttp = false;
-
-$sql1 = "insertz into products (productname) values ('testprod 1')";
-$sql2 = "insert into products (productname) values ('testprod 1')";
-$sql3 = "insert into products (productname) values ('testprod 2')";
-$sql4 = "delete from products where productid>80";
-$sql5 = 'select * from products';
-
-if ($testhttp) {
- print "<a href=#c>Client Driver Tests</a><p>";
- print "<h3>Test Error</h3>";
- $rs = send2server($serverURL,$sql1);
- print_pre($rs);
- print "<hr>";
-
- print "<h3>Test Insert</h3>";
-
- $rs = send2server($serverURL,$sql2);
- print_pre($rs);
- print "<hr>";
-
- print "<h3>Test Insert2</h3>";
-
- $rs = send2server($serverURL,$sql3);
- print_pre($rs);
- print "<hr>";
-
- print "<h3>Test Delete</h3>";
-
- $rs = send2server($serverURL,$sql4);
- print_pre($rs);
- print "<hr>";
-
-
- print "<h3>Test Select</h3>";
- $rs = send2server($serverURL,$sql5);
- if ($rs) rs2html($rs);
-
- print "<hr>";
-}
-
-
-print "<a name=c><h1>CLIENT Driver Tests</h1>";
-$conn = ADONewConnection('csv');
-$conn->Connect($serverURL);
-$conn->debug = true;
-
-print "<h3>Bad SQL</h3>";
-
-$rs = $conn->Execute($sql1);
-
-print "<h3>Insert SQL 1</h3>";
-$rs = $conn->Execute($sql2);
-
-print "<h3>Insert SQL 2</h3>";
-$rs = $conn->Execute($sql3);
-
-print "<h3>Select SQL</h3>";
-$rs = $conn->Execute($sql5);
-if ($rs) rs2html($rs);
-
-print "<h3>Delete SQL</h3>";
-$rs = $conn->Execute($sql4);
-
-print "<h3>Select SQL</h3>";
-$rs = $conn->Execute($sql5);
-if ($rs) rs2html($rs);
-
-
-/* EXPECTED RESULTS FOR HTTP TEST:
-
-Test Insert
-http://localhost/php/adodb/server.php?sql=insert+into+products+%28productname%29+values+%28%27testprod%27%29
-
-adorecordset Object
-(
- [dataProvider] => native
- [fields] =>
- [blobSize] => 64
- [canSeek] =>
- [EOF] => 1
- [emptyTimeStamp] =>
- [emptyDate] =>
- [debug] =>
- [timeToLive] => 0
- [bind] =>
- [_numOfRows] => -1
- [_numOfFields] => 0
- [_queryID] => 1
- [_currentRow] => -1
- [_closed] =>
- [_inited] =>
- [sql] => insert into products (productname) values ('testprod')
- [affectedrows] => 1
- [insertid] => 81
-)
-
-
---------------------------------------------------------------------------------
-
-Test Insert2
-http://localhost/php/adodb/server.php?sql=insert+into+products+%28productname%29+values+%28%27testprod%27%29
-
-adorecordset Object
-(
- [dataProvider] => native
- [fields] =>
- [blobSize] => 64
- [canSeek] =>
- [EOF] => 1
- [emptyTimeStamp] =>
- [emptyDate] =>
- [debug] =>
- [timeToLive] => 0
- [bind] =>
- [_numOfRows] => -1
- [_numOfFields] => 0
- [_queryID] => 1
- [_currentRow] => -1
- [_closed] =>
- [_inited] =>
- [sql] => insert into products (productname) values ('testprod')
- [affectedrows] => 1
- [insertid] => 82
-)
-
-
---------------------------------------------------------------------------------
-
-Test Delete
-http://localhost/php/adodb/server.php?sql=delete+from+products+where+productid%3E80
-
-adorecordset Object
-(
- [dataProvider] => native
- [fields] =>
- [blobSize] => 64
- [canSeek] =>
- [EOF] => 1
- [emptyTimeStamp] =>
- [emptyDate] =>
- [debug] =>
- [timeToLive] => 0
- [bind] =>
- [_numOfRows] => -1
- [_numOfFields] => 0
- [_queryID] => 1
- [_currentRow] => -1
- [_closed] =>
- [_inited] =>
- [sql] => delete from products where productid>80
- [affectedrows] => 2
- [insertid] => 0
-)
-
-[more stuff deleted]
- .
- .
- .
-*/
-?>
diff -urN moodle/lib/adodb/tests/pdo.php moodle.adodb/lib/adodb/tests/pdo.php
--- moodle/lib/adodb/tests/pdo.php 2005-11-10 21:05:25.000000000 -0500
+++ moodle.adodb/lib/adodb/tests/pdo.php 1969-12-31 19:00:00.000000000 -0500
@@ -1,82 +0,0 @@
-<?php
-error_reporting(E_ALL);
-include('../adodb.inc.php');
-
-try {
- echo "New Connection\n";
- $DB = NewADOConnection('pdo');
- echo "Connect\n";
-
- $u = ''; $p = '';
- /*
- $connstr = 'odbc:nwind';
-
- $connstr = 'oci:';
- $u = 'scott';
- $p = 'natsoft';
-
-
- $connstr ="sqlite:d:\inetpub\adodb\sqlite.db";
- */
-
- $connstr = "mysql:dbname=northwind";
- $u = 'root';
-
- $connstr = "pgsql:dbname=test";
- $u = 'tester';
- $p = 'test';
-
- $DB->Connect($connstr,$u,$p) || die("CONNECT FAILED");
-
-
- echo "$connstr: Execute\n";
-
- //$ADODB_FETCH_MODE = ADODB_FETCH_ASSOC;
- $rs = $DB->Execute("select * from ADOXYZ where id<3");
- echo "*** e=".$DB->ErrorNo() . " ".($DB->ErrorMsg())."\n";
-
-
- //print_r(get_class_methods($DB->_stmt));
-
- if (!$rs) die("NO RS");
-
- echo "Meta\n";
- for ($i=0; $i < $rs->NumCols(); $i++) {
- var_dump($rs->FetchField($i));
- echo "<br>";
- }
-
- echo "FETCH\n";
- $cnt = 0;
- while (!$rs->EOF) {
- adodb_pr($rs->fields);
- $rs->MoveNext();
- if ($cnt++ > 1000) break;
- }
-
- echo "<br>--------------------------------------------------------<br>\n\n\n";
-
- $stmt = $DB->PrepareStmt("select * from ADOXYZ");
-
- $rs = $stmt->Execute();
- $cols = $stmt->NumCols(); // execute required
-
- echo "COLS = $cols";
- for($i=1;$i<=$cols;$i++) {
- $v = $stmt->_stmt->getColumnMeta($i);
- var_dump($v);
- }
-
- echo "e=".$stmt->ErrorNo() . " ".($stmt->ErrorMsg())."\n";
- while ($arr = $rs->FetchRow()) {
- adodb_pr($arr);
- }
- die("DONE\n");
-
-} catch (exception $e) {
- echo "<pre>";
- echo $e;
- echo "</pre>";
-}
-
-?>
\ No newline at end of file
diff -urN moodle/lib/adodb/tests/test2.php moodle.adodb/lib/adodb/tests/test2.php
--- moodle/lib/adodb/tests/test2.php 2005-05-24 02:07:02.000000000 -0400
+++ moodle.adodb/lib/adodb/tests/test2.php 1969-12-31 19:00:00.000000000 -0500
@@ -1,26 +0,0 @@
-<?php
-
-// BASIC ADO test
-
- include_once('../adodb.inc.php');
-
- $db = &ADONewConnection("ado_access");
- $db->debug=1;
- $access = 'd:\inetpub\wwwroot\php\NWIND.MDB';
- $myDSN = 'PROVIDER=Microsoft.Jet.OLEDB.4.0;'
- . 'DATA SOURCE=' . $access . ';';
-
- echo "<p>PHP ",PHP_VERSION,"</p>";
-
- $db->Connect($myDSN) || die('fail');
-
- print_r($db->ServerInfo());
-
- try {
- $rs = $db->Execute("select $db->sysTimeStamp,* from adoxyz where id>02xx");
- print_r($rs->fields);
- } catch(exception $e) {
- print_r($e);
- echo "<p> Date m/d/Y =",$db->UserDate($rs->fields[4],'m/d/Y');
- }
-?>
\ No newline at end of file
diff -urN moodle/lib/adodb/tests/test3.php moodle.adodb/lib/adodb/tests/test3.php
--- moodle/lib/adodb/tests/test3.php 2005-11-10 21:05:25.000000000 -0500
+++ moodle.adodb/lib/adodb/tests/test3.php 1969-12-31 19:00:00.000000000 -0500
@@ -1,44 +0,0 @@
-<?php
-/*
- V4.66 28 Sept 2005 (c) 2000-2005 John Lim (jlim@natsoft.com.my). All rights reserved.
- Released under both BSD license and Lesser GPL library license.
- Whenever there is any discrepancy between the two licenses,
- the BSD license will take precedence.
- Set tabs to 8.
- */
-
-
-error_reporting(E_ALL);
-
-$path = dirname(__FILE__);
-
-include("$path/../adodb-exceptions.inc.php");
-include("$path/../adodb.inc.php");
-
-try {
-$db = NewADOConnection("oci8");
-$db->Connect('','scott','natsoft');
-$db->debug=1;
-
-$cnt = $db->GetOne("select count(*) from adoxyz");
-$rs = $db->Execute("select * from adoxyz order by id");
-
-$i = 0;
-foreach($rs as $k => $v) {
- $i += 1;
- echo $k; adodb_pr($v);
- flush();
-}
-
-if ($i != $cnt) die("actual cnt is $i, cnt should be $cnt\n");
-
-
-
-$rs = $db->Execute("select bad from badder");
-
-} catch (exception $e) {
- adodb_pr($e);
- $e = adodb_backtrace($e->trace);
-}
-
-?>
\ No newline at end of file
diff -urN moodle/lib/adodb/tests/test4.php moodle.adodb/lib/adodb/tests/test4.php
--- moodle/lib/adodb/tests/test4.php 2005-05-24 02:07:02.000000000 -0400
+++ moodle.adodb/lib/adodb/tests/test4.php 1969-12-31 19:00:00.000000000 -0500
@@ -1,134 +0,0 @@
-<?php
-
-/**
- * @version V4.50 6 July 2004 (c) 2000-2005 John Lim (jlim@natsoft.com.my). All rights reserved.
- * Released under both BSD license and Lesser GPL library license.
- * Whenever there is any discrepancy between the two licenses,
- * the BSD license will take precedence.
- *
- * Set tabs to 4 for best viewing.
- *
- * Latest version is available at http://php.weblogs.com
- *
- * Test GetUpdateSQL and GetInsertSQL.
- */
-
-error_reporting(E_ALL);
-function testsql()
-{
-
-
-include('../adodb.inc.php');
-include('../tohtml.inc.php');
-
-global $ADODB_FORCE_TYPE;
-
-
-//==========================
-// This code tests an insert
-
-$sql = "
-SELECT *
-FROM ADOXYZ WHERE id = -1";
-// Select an empty record from the database
-
-
-#$conn = &ADONewConnection("mssql"); // create a connection
-#$conn->PConnect("", "sa", "natsoft", "northwind"); // connect to MySQL, testdb
-
-$conn = &ADONewConnection("mysql"); // create a connection
-$conn->PConnect("localhost", "root", "", "test"); // connect to MySQL, testdb
-
-//$conn =& ADONewConnection('oci8');
-//$conn->Connect('','scott','natsoft');
-//$ADODB_FETCH_MODE = ADODB_FETCH_ASSOC;
-
-$conn->debug=1;
-$conn->Execute("delete from adoxyz where lastname like 'Smi%'");
-
-$rs = $conn->Execute($sql); // Execute the query and get the empty recordset
-$record = array(); // Initialize an array to hold the record data to insert
-
-if (strpos($conn->databaseType,'mssql')!==false) $record['id'] = 751;
-$record["firstname"] = 'Jann';
-$record["lastname"] = "Smitts";
-$record["created"] = time();
-
-$insertSQL = $conn->GetInsertSQL($rs, $record);
-$conn->Execute($insertSQL); // Insert the record into the database
-
-if (strpos($conn->databaseType,'mssql')!==false) $record['id'] = 752;
-// Set the values for the fields in the record
-$record["firstname"] = 'null';
-$record["lastname"] = "Smith\$@//";
-$record["created"] = time();
-
-if (isset($_GET['f'])) $ADODB_FORCE_TYPE = $_GET['f'];
-
-//$record["id"] = -1;
-
-// Pass the empty recordset and the array containing the data to insert
-// into the GetInsertSQL function. The function will process the data and return
-// a fully formatted insert sql statement.
-$insertSQL = $conn->GetInsertSQL($rs, $record);
-$conn->Execute($insertSQL); // Insert the record into the database
-
-
-
-$insertSQL2 = $conn->GetInsertSQL($table='ADOXYZ', $record);
-if ($insertSQL != $insertSQL2) echo "<p><b>Walt's new stuff failed</b>: $insertSQL2</p>";
-//==========================
-// This code tests an update
-
-$sql = "
-SELECT *
-FROM ADOXYZ WHERE lastname=".$conn->Param('var'). " ORDER BY 1";
-// Select a record to update
-
-$varr = array('var'=>$record['lastname'].'');
-$rs = $conn->Execute($sql,$varr); // Execute the query and get the existing record to update
-if (!$rs || $rs->EOF) print "<p><b>No record found!</b></p>";
-
-$record = array(); // Initialize an array to hold the record data to update
-
-
-// Set the values for the fields in the record
-$record["firstName"] = "Caroline".rand();
-//$record["lasTname"] = ""; // Update Caroline's lastname from Miranda to Smith
-$record["creAted"] = '2002-12-'.(rand()%30+1);
-$record['num'] = '';
-// Pass the single record recordset and the array containing the data to update
-// into the GetUpdateSQL function. The function will process the data and return
-// a fully formatted update sql statement.
-// If the data has not changed, no recordset is returned
-
-$updateSQL = $conn->GetUpdateSQL($rs, $record);
-$conn->Execute($updateSQL,$varr); // Update the record in the database
-if ($conn->Affected_Rows() != 1)print "<p><b>Error1 </b>: Rows Affected=".$conn->Affected_Rows().", should be 1</p>";
-
-$record["firstName"] = "Caroline".rand();
-$record["lasTname"] = "Smithy Jones"; // Update Caroline's lastname from Miranda to Smith
-$record["creAted"] = '2002-12-'.(rand()%30+1);
-$record['num'] = 331;
-$updateSQL = $conn->GetUpdateSQL($rs, $record);
-$conn->Execute($updateSQL,$varr); // Update the record in the database
-if ($conn->Affected_Rows() != 1)print "<p><b>Error 2</b>: Rows Affected=".$conn->Affected_Rows().", should be 1</p>";
-
-$rs = $conn->Execute("select * from ADOXYZ where lastname like 'Sm%'");
-//adodb_pr($rs);
-rs2html($rs);
-
-$record["firstName"] = "Carol-new-".rand();
-$record["lasTname"] = "Smithy"; // Update Caroline's lastname from Miranda to Smith
-$record["creAted"] = '2002-12-'.(rand()%30+1);
-$record['num'] = 331;
-
-$conn->AutoExecute('ADOXYZ',$record,'UPDATE', "lastname like 'Sm%'");
-$rs = $conn->Execute("select * from ADOXYZ where lastname like 'Sm%'");
-//adodb_pr($rs);
-rs2html($rs);
-}
-
-
-testsql();
-?>
\ No newline at end of file
diff -urN moodle/lib/adodb/tests/test5.php moodle.adodb/lib/adodb/tests/test5.php
--- moodle/lib/adodb/tests/test5.php 2005-11-10 21:05:25.000000000 -0500
+++ moodle.adodb/lib/adodb/tests/test5.php 1969-12-31 19:00:00.000000000 -0500
@@ -1,47 +0,0 @@
-<?php
-/*
-V4.66 28 Sept 2005 (c) 2000-2005 John Lim (jlim@natsoft.com.my). All rights reserved.
- Released under both BSD license and Lesser GPL library license.
- Whenever there is any discrepancy between the two licenses,
- the BSD license will take precedence.
- Set tabs to 4 for best viewing.
-
- Latest version is available at http://adodb.sourceforge.net
-*/
-
-
-// Select an empty record from the database
-
-include('../adodb.inc.php');
-include('../tohtml.inc.php');
-
-include('../adodb-errorpear.inc.php');
-
-if (0) {
- $conn = &ADONewConnection('mysql');
- $conn->debug=1;
- $conn->PConnect("localhost","root","","xphplens");
- print $conn->databaseType.':'.$conn->GenID().'<br>';
-}
-
-if (0) {
- $conn = &ADONewConnection("oci8"); // create a connection
- $conn->debug=1;
- $conn->PConnect("falcon", "scott", "tiger", "juris8.ecosystem.natsoft.com.my"); // connect to MySQL, testdb
- print $conn->databaseType.':'.$conn->GenID();
-}
-
-if (0) {
- $conn = &ADONewConnection("ibase"); // create a connection
- $conn->debug=1;
- $conn->Connect("localhost:c:\\Interbase\\Examples\\Database\\employee.gdb", "sysdba", "masterkey", ""); // connect to MySQL, testdb
- print $conn->databaseType.':'.$conn->GenID().'<br>';
-}
-
-if (0) {
- $conn = &ADONewConnection('postgres');
- $conn->debug=1;
- @$conn->PConnect("susetikus","tester","test","test");
- print $conn->databaseType.':'.$conn->GenID().'<br>';
-}
-?>
diff -urN moodle/lib/adodb/tests/testcache.php moodle.adodb/lib/adodb/tests/testcache.php
--- moodle/lib/adodb/tests/testcache.php 2005-11-10 21:05:25.000000000 -0500
+++ moodle.adodb/lib/adodb/tests/testcache.php 1969-12-31 19:00:00.000000000 -0500
@@ -1,29 +0,0 @@
-<html>
-<body>
-<?php
-/*
-V4.66 28 Sept 2005 (c) 2000-2005 John Lim (jlim@natsoft.com.my). All rights reserved.
- Released under both BSD license and Lesser GPL library license.
- Whenever there is any discrepancy between the two licenses,
- the BSD license will take precedence.
- Set tabs to 4 for best viewing.
-
- Latest version is available at http://adodb.sourceforge.net
-*/
-
-$ADODB_CACHE_DIR = dirname(tempnam('/tmp',''));
-include("../adodb.inc.php");
-
-if (isset($access)) {
- $db=ADONewConnection('access');
- $db->PConnect('nwind');
-} else {
- $db = ADONewConnection('mysql');
- $db->PConnect('mangrove','root','','xphplens');
-}
-if (isset($cache)) $rs = $db->CacheExecute(120,'select * from products');
-else $rs = $db->Execute('select * from products');
-
-$arr = $rs->GetArray();
-print sizeof($arr);
-?>
\ No newline at end of file
diff -urN moodle/lib/adodb/tests/testdatabases.inc.php moodle.adodb/lib/adodb/tests/testdatabases.inc.php
--- moodle/lib/adodb/tests/testdatabases.inc.php 2005-11-10 21:05:25.000000000 -0500
+++ moodle.adodb/lib/adodb/tests/testdatabases.inc.php 1969-12-31 19:00:00.000000000 -0500
@@ -1,412 +0,0 @@
-<?php
-
-/*
-V4.66 28 Sept 2005 (c) 2000-2005 John Lim (jlim@natsoft.com.my). All rights reserved.
- Released under both BSD license and Lesser GPL library license.
- Whenever there is any discrepancy between the two licenses,
- the BSD license will take precedence.
-*/
-
- /* this file is used by the ADODB test program: test.php */
- ?>
-
-<table><tr valign=top><td>
-<form method=get>
-<input type=checkbox name="testaccess" value=1 <?php echo !empty($testaccess) ? 'checked' : '' ?>> <b>Access</b><br>
-<input type=checkbox name="testibase" value=1 <?php echo !empty($testibase) ? 'checked' : '' ?>> <b>Interbase</b><br>
-<input type=checkbox name="testmssql" value=1 <?php echo !empty($testmssql) ? 'checked' : '' ?>> <b>MSSQL</b><br>
- <input type=checkbox name="testmysql" value=1 <?php echo !empty($testmysql) ? 'checked' : '' ?>> <b>MySQL</b><br>
-<input type=checkbox name="testmysqlodbc" value=1 <?php echo !empty($testmysqlodbc) ? 'checked' : '' ?>> <b>MySQL ODBC</b><br>
-<input type=checkbox name="testmysqli" value=1 <?php echo !empty($testmysqli) ? 'checked' : '' ?>> <b>MySQLi</b>
-<br>
-<td><input type=checkbox name="testsqlite" value=1 <?php echo !empty($testsqlite) ? 'checked' : '' ?>> <b>SQLite</b><br>
-<input type=checkbox name="testproxy" value=1 <?php echo !empty($testproxy) ? 'checked' : '' ?>> <b>MySQL Proxy</b><br>
-<input type=checkbox name="testoracle" value=1 <?php echo !empty($testoracle) ? 'checked' : '' ?>> <b>Oracle (oci8)</b> <br>
-<input type=checkbox name="testpostgres" value=1 <?php echo !empty($testpostgres) ? 'checked' : '' ?>> <b>PostgreSQL</b><br>
-<input type=checkbox name="testpgodbc" value=1 <?php echo !empty($testpgodbc) ? 'checked' : '' ?>> <b>PostgreSQL ODBC</b><br>
-<td>
-<input type=checkbox name="testpdopgsql" value=1 <?php echo !empty($testpdopgsql) ? 'checked' : '' ?>> <b>PgSQL PDO</b><br>
-<input type=checkbox name="testpdomysql" value=1 <?php echo !empty($testpdomysql) ? 'checked' : '' ?>> <b>MySQL PDO</b><br>
-<input type=checkbox name="testpdosqlite" value=1 <?php echo !empty($testpdosqlite) ? 'checked' : '' ?>> <b>SQLite PDO</b><br>
-<input type=checkbox name="testpdoaccess" value=1 <?php echo !empty($testpdoaccess) ? 'checked' : '' ?>> <b>Access PDO</b><br>
-
-<input type=checkbox name="testpdoora" value=1 <?php echo !empty($testpdoora) ? 'checked' : '' ?>> <b>OCI PDO</b><br>
-
-<td><input type=checkbox name="testdb2" value=1 <?php echo !empty($testdb2) ? 'checked' : '' ?>> DB2<br>
-<input type=checkbox name="testvfp" value=1 <?php echo !empty($testvfp) ? 'checked' : '' ?>> VFP+ODBTP<br>
-<input type=checkbox name="testado" value=1 <?php echo !empty($testado) ? 'checked' : '' ?>> ADO (for mssql and access)<br>
-<input type=checkbox name="nocountrecs" value=1 <?php echo !empty($nocountrecs) ? 'checked' : '' ?>> $ADODB_COUNTRECS=false<br>
-<input type=checkbox name="nolog" value=1 <?php echo !empty($nolog) ? 'checked' : '' ?>> No SQL Logging<br>
-<input type=checkbox name="time" value=1 <?php echo !empty($_GET['time']) ? 'checked' : '' ?>> ADOdb time test
-</table>
-<input type=submit>
-</form>
-
-<?php
-
-if ($ADODB_FETCH_MODE != ADODB_FETCH_DEFAULT) print "<h3>FETCH MODE IS NOT ADODB_FETCH_DEFAULT</h3>";
-
-if (isset($nocountrecs)) $ADODB_COUNTRECS = false;
-
-// cannot test databases below, but we include them anyway to check
-// if they parse ok...
-
-if (!strpos(PHP_VERSION,'5') === 0) {
- ADOLoadCode("sybase");
- //ADOLoadCode("postgres");
- //ADOLoadCode("postgres7");
- ADOLoadCode("firebird");
- ADOLoadCode("borland_ibase");
- ADOLoadCode("informix");
- ADOLoadCode("sqlanywhere");
-// ADOLoadCode('mysqli');
-}
-
-
-flush();
-if (!empty($testpostgres)) {
- //ADOLoadCode("postgres");
-
- $db = &ADONewConnection('postgres');
- print "<h1>Connecting $db->databaseType...</h1>";
- if ($db->Connect("localhost","tester","test","test")) {
- testdb($db,"create table ADOXYZ (id integer, firstname char(24), lastname varchar,created date)");
- }else
- print "ERROR: PostgreSQL requires a database called test on server, user tester, password test.<BR>".$db->ErrorMsg();
-}
-
-if (!empty($testpgodbc)) {
-
- $db = &ADONewConnection('odbc');
- $db->hasTransactions = false;
- print "<h1>Connecting $db->databaseType...</h1>";
-
- if ($db->PConnect('Postgresql')) {
- $db->hasTransactions = true;
- testdb($db,
- "create table ADOXYZ (id int, firstname char(24), lastname char(24), created date) type=innodb");
- } else print "ERROR: PostgreSQL requires a database called test on server, user tester, password test.<BR>".$db->ErrorMsg();
-}
-
-if (!empty($testibase)) {
- //$_GET['nolog'] = true;
- $db = &ADONewConnection('firebird');
- print "<h1>Connecting $db->databaseType...</h1>";
- if ($db->PConnect("localhost:d:\\firebird\\151\\examples\\EMPLOYEE.fdb", "sysdba", "masterkey", ""))
- testdb($db,"create table ADOXYZ (id integer, firstname char(24), lastname char(24),price numeric(12,2),created date)");
- else print "ERROR: Interbase test requires a database called employee.gdb".'<BR>'.$db->ErrorMsg();
-
-}
-
-
-if (!empty($testsqlite)) {
- $path =urlencode('d:\inetpub\adodb\sqlite.db');
- $dsn = "sqlite://$path/";
- $db = ADONewConnection($dsn);
- echo $dsn;
-
-// $db = &ADONewConnection('sqlite');
- print "<h1>Connecting $db->databaseType...</h1>";
-
- if (1)
- //if ($db->PConnect("d:\\inetpub\\adodb\\sqlite.db", "", "", ""))
- testdb($db,"create table ADOXYZ (id int, firstname char(24), lastname char(24),created datetime)");
- else print "ERROR: SQLite";
-
-}
-
-if (!empty($testpdopgsql)) {
- $connstr = "pgsql:dbname=test";
- $u = 'tester';$p='test';
- $db = &ADONewConnection('pdo');
- print "<h1>Connecting $db->databaseType...</h1>";
- $db->Connect($connstr,$u,$p) || die("CONNECT FAILED");
- testdb($db,
- "create table ADOXYZ (id int, firstname char(24), lastname char(24), created date)");
-}
-
-if (!empty($testpdomysql)) {
- $connstr = "mysql:dbname=northwind";
- $u = 'root';$p='';
- $db = &ADONewConnection('pdo');
- print "<h1>Connecting $db->databaseType...</h1>";
- $db->Connect($connstr,$u,$p) || die("CONNECT FAILED");
-
- testdb($db,
- "create table ADOXYZ (id int, firstname char(24), lastname char(24), created date)");
-}
-
-if (!empty($testpdosqlite)) {
- $connstr = "sqlite:d:/inetpub/adodb/sqlite-pdo.db3";
- $u = '';$p='';
- $db = &ADONewConnection('pdo');
- $db->hasTransactions = false;
- print "<h1>Connecting $db->databaseType...</h1>";
- $db->Connect($connstr,$u,$p) || die("CONNECT FAILED");
- testdb($db,
- "create table ADOXYZ (id int, firstname char(24), lastname char(24), created date)");
-}
-
-if (!empty($testpdoaccess)) {
- $connstr = 'odbc:nwind';
- $u = '';$p='';
- $db = &ADONewConnection('pdo');
- $db->hasTransactions = false;
- print "<h1>Connecting $db->databaseType...</h1>";
- $db->Connect($connstr,$u,$p) || die("CONNECT FAILED");
- testdb($db,
- "create table ADOXYZ (id int, firstname char(24), lastname char(24), created date)");
-}
-
-if (!empty($testpdoora)) {
- $connstr = 'oci:';
- $u = 'scott';$p='natsoft';
- $db = &ADONewConnection('pdo');
- #$db->hasTransactions = false;
- print "<h1>Connecting $db->databaseType...</h1>";
- $db->Connect($connstr,$u,$p) || die("CONNECT FAILED");
- testdb($db,
- "create table ADOXYZ (id int, firstname char(24), lastname char(24), created date)");
-}
-
-// REQUIRES ODBC DSN CALLED nwind
-if (!empty($testaccess)) {
- $db = &ADONewConnection('access');
- print "<h1>Connecting $db->databaseType...</h1>";
- $access = 'd:\inetpub\wwwroot\php\NWIND.MDB';
- $dsn = "nwind";
- $dsn = "Driver={Microsoft Access Driver (*.mdb)};Dbq=$access;Uid=Admin;Pwd=;";
-
- //$dsn = 'Provider=Microsoft.Jet.OLEDB.4.0;DATA SOURCE=' . $access . ';';
- if ($db->PConnect($dsn, "", "", ""))
- testdb($db,"create table ADOXYZ (id int, firstname char(24), lastname char(24),created datetime)");
- else print "ERROR: Access test requires a Windows ODBC DSN=nwind, Access driver";
-
-}
-
-if (!empty($testaccess) && !empty($testado)) { // ADO ACCESS
-
- $db = &ADONewConnection("ado_access");
- print "<h1>Connecting $db->databaseType...</h1>";
-
- $access = 'd:\inetpub\wwwroot\php\NWIND.MDB';
- $myDSN = 'PROVIDER=Microsoft.Jet.OLEDB.4.0;'
- . 'DATA SOURCE=' . $access . ';';
- //. 'USER ID=;PASSWORD=;';
- $_GET['nolog'] = 1;
- if ($db->PConnect($myDSN, "", "", "")) {
- print "ADO version=".$db->_connectionID->version."<br>";
- testdb($db,"create table ADOXYZ (id int, firstname char(24), lastname char(24),created datetime)");
- } else print "ERROR: Access test requires a Access database $access".'<BR>'.$db->ErrorMsg();
-
-}
-
-if (!empty($testvfp)) { // ODBC
- $db = &ADONewConnection('vfp');
- print "<h1>Connecting $db->databaseType...</h1>";flush();
-
- if ( $db->PConnect("vfp-adoxyz")) {
- testdb($db,"create table d:\\inetpub\\adodb\\ADOXYZ (id int, firstname char(24), lastname char(24),created date)");
- } else print "ERROR: Visual FoxPro test requires a Windows ODBC DSN=vfp-adoxyz, VFP driver";
-
- echo "<hr>";
- $db = &ADONewConnection('odbtp');
-
- if ( $db->PConnect('localhost','DRIVER={Microsoft Visual FoxPro Driver};SOURCETYPE=DBF;SOURCEDB=d:\inetpub\adodb;EXCLUSIVE=NO;')) {
- print "<h1>Connecting $db->databaseType...</h1>";flush();
- testdb($db,"create table d:\\inetpub\\adodb\\ADOXYZ (id int, firstname char(24), lastname char(24),created date)");
- } else print "ERROR: Visual FoxPro odbtp requires a Windows ODBC DSN=vfp-adoxyz, VFP driver";
-
-}
-
-
-// REQUIRES MySQL server at localhost with database 'test'
-if (!empty($testmysql)) { // MYSQL
-
-
- if (PHP_VERSION >= 5 || $_SERVER['HTTP_HOST'] == 'localhost') $server = 'localhost';
- else $server = "mangrove";
- $user = 'root'; $password = ''; $database = 'northwind';
- $db = &ADONewConnection("mysqlt://$user:$password@$server/$database?persist");
- print "<h1>Connecting $db->databaseType...</h1>";
-
- if (true || $db->PConnect($server, "root", "", "northwind")) {
- //$db->Execute("DROP TABLE ADOXYZ") || die('fail drop');
- //$db->debug=1;$db->Execute('drop table ADOXYZ');
- testdb($db,
- "create table ADOXYZ (id int, firstname char(24), lastname char(24), created date) Type=InnoDB");
- } else print "ERROR: MySQL test requires a MySQL server on localhost, userid='admin', password='', database='test'".'<BR>'.$db->ErrorMsg();
-}
-
-// REQUIRES MySQL server at localhost with database 'test'
-if (!empty($testmysqli)) { // MYSQL
-
- $db = &ADONewConnection('mysqli');
- print "<h1>Connecting $db->databaseType...</h1>";
- if (PHP_VERSION >= 5 || $_SERVER['HTTP_HOST'] == 'localhost') $server = 'localhost';
- else $server = "mangrove";
- if ($db->PConnect($server, "root", "", "northwind")) {
- //$db->debug=1;$db->Execute('drop table ADOXYZ');
- testdb($db,
- "create table ADOXYZ (id int, firstname char(24), lastname char(24), created date)");
- } else print "ERROR: MySQL test requires a MySQL server on localhost, userid='admin', password='', database='test'".'<BR>'.$db->ErrorMsg();
-}
-
-
-// REQUIRES MySQL server at localhost with database 'test'
-if (!empty($testmysqlodbc)) { // MYSQL
-
- $db = &ADONewConnection('odbc');
- $db->hasTransactions = false;
- print "<h1>Connecting $db->databaseType...</h1>";
- if ($_SERVER['HTTP_HOST'] == 'localhost') $server = 'localhost';
- else $server = "mangrove";
- if ($db->PConnect('mysql', "root", ""))
- testdb($db,
- "create table ADOXYZ (id int, firstname char(24), lastname char(24), created date) type=innodb");
- else print "ERROR: MySQL test requires a MySQL server on localhost, userid='admin', password='', database='test'".'<BR>'.$db->ErrorMsg();
-}
-
-if (!empty($testproxy)){
- $db = &ADONewConnection('proxy');
- print "<h1>Connecting $db->databaseType...</h1>";
- if ($_SERVER['HTTP_HOST'] == 'localhost') $server = 'localhost';
-
- if ($db->PConnect('http://localhost/php/phplens/adodb/server.php'))
- testdb($db,
- "create table ADOXYZ (id int, firstname char(24), lastname char(24), created date) type=innodb");
- else print "ERROR: MySQL test requires a MySQL server on localhost, userid='admin', password='', database='test'".'<BR>'.$db->ErrorMsg();
-
-}
-
-ADOLoadCode('oci805');
-ADOLoadCode("oci8po");
-if (!empty($testoracle)) {
- $dsn = "oci8po://juris10:natsoft@sherkhan?persist";
- $db = ADONewConnection($dsn);
- print "<h1>Connecting $db->databaseType...</h1>";
- if (true || $db->Connect('', "scott", "natsoft",''))
- testdb($db,"create table ADOXYZ (id int, firstname varchar(24), lastname varchar(24),created date)");
- else print "ERROR: Oracle test requires an Oracle server setup with scott/natsoft".'<BR>'.$db->ErrorMsg();
-
-}
-ADOLoadCode("oracle"); // no longer supported
-if (false && !empty($testoracle)) {
-
- $db = ADONewConnection();
- print "<h1>Connecting $db->databaseType...</h1>";
- if ($db->PConnect("", "scott", "tiger", "natsoft.domain"))
- testdb($db,"create table ADOXYZ (id int, firstname varchar(24), lastname varchar(24),created date)");
- else print "ERROR: Oracle test requires an Oracle server setup with scott/tiger".'<BR>'.$db->ErrorMsg();
-
-}
-
-ADOLoadCode("db2"); // no longer supported
-if (!empty($testdb2)) {
- $db = ADONewConnection();
- print "<h1>Connecting $db->databaseType...</h1>";
-
- $dsn = "db2_sample";
- $dsn = "driver={IBM db2 odbc DRIVER};Database=sample;hostname=localhost;port=50000;protocol=TCPIP; uid=root; pwd=natsoft";
- if ($db->Connect($dsn)) {
- // testdb($db,"create table ADOXYZ (id int, firstname varchar(24), lastname varchar(24),created date)");
- } else print "ERROR: DB2 test requires an server setup with odbc data source db2_sample".'<BR>'.$db->ErrorMsg();
-
-echo "<hr>";
-flush();
- $dsn = "driver={IBM db2 odbc DRIVER};Database=sample;hostname=localhost;port=50000;protocol=TCPIP; uid=root; pwd=natsoft";
-
- $db = ADONewConnection('odbtp');
- if ($db->Connect('127.0.0.1',$dsn)) {
-
- $db->debug=1;
- $arr = $db->GetArray( "||SQLProcedures" ); adodb_pr($arr);
- $arr = $db->GetArray( "||SQLProcedureColumns|||GET_ROUTINE_SAR" );adodb_pr($arr);
-
- testdb($db,"create table ADOXYZ (id int, firstname varchar(24), lastname varchar(24),created date)");
- } else echo ("ERROR Connection");
- echo $db->ErrorMsg();
-}
-
-
-$server = 'sherkhan';
-
-ADOLoadCode('odbc_mssql');
-if (!empty($testmssql)) { // MS SQL Server via ODBC
- $db = ADONewConnection();
-
- print "<h1>Connecting $db->databaseType...</h1>";
-
- $dsn = "PROVIDER=MSDASQL;Driver={SQL Server};Server=$server;Database=northwind;";
-
- if ($db->PConnect($dsn, "adodb", "natsoft", "")) {
- testdb($db,"create table ADOXYZ (id int, firstname char(24) null, lastname char(24) null,created datetime null)");
- }
- else print "ERROR: MSSQL test 1 requires a MS SQL 7 server setup with DSN setup";
-
-}
-
-ADOLoadCode("ado_mssql");
-if (!empty($testmssql) && !empty($testado) ) { // ADO ACCESS MSSQL -- thru ODBC -- DSN-less
-
- $db = &ADONewConnection("ado_mssql");
- //$db->debug=1;
- print "<h1>Connecting DSN-less $db->databaseType...</h1>";
-
- $myDSN="PROVIDER=MSDASQL;DRIVER={SQL Server};"
- . "SERVER=$server;DATABASE=NorthWind;UID=adodb;PWD=natsoft;Trusted_Connection=No";
-
-
- if ($db->PConnect($myDSN, "", "", ""))
- testdb($db,"create table ADOXYZ (id int, firstname char(24) null, lastname char(24) null,created datetime null)");
- else print "ERROR: MSSQL test 2 requires MS SQL 7";
-
-}
-
-
-ADOLoadCode("mssqlpo");
-if (!empty($testmssql)) { // MS SQL Server -- the extension is buggy -- probably better to use ODBC
- $db = ADONewConnection("mssqlpo");
- //$db->debug=1;
- print "<h1>Connecting $db->databaseType...</h1>";
-
- $ok = $db->Connect('','adodb','natsoft','northwind');
-
- if ($ok or $db->PConnect("mangrove", "sa", "natsoft", "ai")) {
- AutoDetect_MSSQL_Date_Order($db);
- // $db->Execute('drop table adoxyz');
- testdb($db,"create table ADOXYZ (id int, firstname char(24) null, lastname char(24) null,created datetime null)");
- } 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();
-
-}
-
-if (!empty($testmssql) && !empty($testado)) { // ADO ACCESS MSSQL with OLEDB provider
-
- $db = &ADONewConnection("ado_mssql");
- print "<h1>Connecting DSN-less OLEDB Provider $db->databaseType...</h1>";
- //$db->debug=1;
- $myDSN="SERVER=localhost;DATABASE=northwind;Trusted_Connection=yes";
- if ($db->PConnect($myDSN, "adodb", "natsoft", 'SQLOLEDB')) {
- testdb($db,"create table ADOXYZ (id int, firstname char(24), lastname char(24),created datetime)");
- } else print "ERROR: MSSQL test 2 requires a MS SQL 7 on a server='mangrove', userid='sa', password='', database='ai'";
-
-}
-
-
-if (extension_loaded('odbtp') && !empty($testmssql)) { // MS SQL Server via ODBC
- $db = ADONewConnection('odbtp');
-
- $dsn = "PROVIDER=MSDASQL;Driver={SQL Server};Server=$server;Database=northwind;uid=adodb;pwd=natsoft";
-
- if ($db->PConnect('localhost',$dsn, "", "")) {
- print "<h1>Connecting $db->databaseType...</h1>";
- testdb($db,"create table ADOXYZ (id int, firstname char(24) null, lastname char(24) null,created datetime null)");
- }
- else print "ERROR: MSSQL test 1 requires a MS SQL 7 server setup with DSN setup";
-
-}
-
-
-print "<h3>Tests Completed</h3>";
-
-?>
diff -urN moodle/lib/adodb/tests/test-datadict.php moodle.adodb/lib/adodb/tests/test-datadict.php
--- moodle/lib/adodb/tests/test-datadict.php 2005-11-10 21:05:25.000000000 -0500
+++ moodle.adodb/lib/adodb/tests/test-datadict.php 1969-12-31 19:00:00.000000000 -0500
@@ -1,248 +0,0 @@
-<?php
-/*
-
- V4.66 28 Sept 2005 (c) 2000-2005 John Lim (jlim@natsoft.com.my). All rights reserved.
- Released under both BSD license and Lesser GPL library license.
- Whenever there is any discrepancy between the two licenses,
- the BSD license will take precedence.
-
- Set tabs to 4 for best viewing.
-
-*/
-
-error_reporting(E_ALL);
-include_once('../adodb.inc.php');
-
-foreach(array('sapdb','sybase','mysqlt','access','oci8','postgres','odbc_mssql','odbc','db2','firebird','informix') as $dbType) {
- echo "<h3>$dbType</h3><p>";
- $db = NewADOConnection($dbType);
- $dict = NewDataDictionary($db);
-
- if (!$dict) continue;
- $dict->debug = 1;
-
- $opts = array('REPLACE','mysql' => 'TYPE=INNODB', 'oci8' => 'TABLESPACE USERS');
-
-/* $flds = array(
- array('id', 'I',
- 'AUTO','KEY'),
-
- array('name' => 'firstname', 'type' => 'varchar','size' => 30,
- 'DEFAULT'=>'Joan'),
-
- array('lastname','varchar',28,
- 'DEFAULT'=>'Chen','key'),
-
- array('averylonglongfieldname','X',1024,
- 'NOTNULL','default' => 'test'),
-
- array('price','N','7.2',
- 'NOTNULL','default' => '0.00'),
-
- array('MYDATE', 'D',
- 'DEFDATE'),
- array('TS','T',
- 'DEFTIMESTAMP')
- );*/
-
- $flds = "
-ID I AUTO KEY,
-FIRSTNAME VARCHAR(30) DEFAULT 'Joan',
-LASTNAME VARCHAR(28) DEFAULT 'Chen' key,
-averylonglongfieldname X(1024) DEFAULT 'test',
-price N(7.2) DEFAULT '0.00',
-MYDATE D DEFDATE,
-BIGFELLOW X NOTNULL,
-TS T DEFTIMESTAMP";
-
-
- $sqla = $dict->CreateDatabase('KUTU',array('postgres'=>"LOCATION='/u01/postdata'"));
- $dict->SetSchema('KUTU');
-
- $sqli = ($dict->CreateTableSQL('testtable',$flds, $opts));
- $sqla = array_merge($sqla,$sqli);
-
- $sqli = $dict->CreateIndexSQL('idx','testtable','firstname,lastname',array('BITMAP','FULLTEXT','CLUSTERED','HASH'));
- $sqla = array_merge($sqla,$sqli);
- $sqli = $dict->CreateIndexSQL('idx2','testtable','price,lastname');//,array('BITMAP','FULLTEXT','CLUSTERED'));
- $sqla = array_merge($sqla,$sqli);
-
- $addflds = array(array('height', 'F'),array('weight','F'));
- $sqli = $dict->AddColumnSQL('testtable',$addflds);
- $sqla = array_merge($sqla,$sqli);
- $addflds = array(array('height', 'F','NOTNULL'),array('weight','F','NOTNULL'));
- $sqli = $dict->AlterColumnSQL('testtable',$addflds);
- $sqla = array_merge($sqla,$sqli);
-
-
- printsqla($dbType,$sqla);
-
- if (file_exists('d:\inetpub\wwwroot\php\phplens\adodb\adodb.inc.php'))
- if ($dbType == 'mysqlt') {
- $db->Connect('localhost', "root", "", "test");
- $dict->SetSchema('');
- $sqla2 = $dict->ChangeTableSQL('adoxyz',$flds);
- if ($sqla2) printsqla($dbType,$sqla2);
- }
- if ($dbType == 'postgres') {
- if (@$db->Connect('localhost', "tester", "test", "test"));
- $dict->SetSchema('');
- $sqla2 = $dict->ChangeTableSQL('adoxyz',$flds);
- if ($sqla2) printsqla($dbType,$sqla2);
- }
-
- if ($dbType == 'odbc_mssql') {
- $dsn = $dsn = "PROVIDER=MSDASQL;Driver={SQL Server};Server=localhost;Database=northwind;";
- if (@$db->Connect($dsn, "sa", "natsoft", "test"));
- $dict->SetSchema('');
- $sqla2 = $dict->ChangeTableSQL('adoxyz',$flds);
- if ($sqla2) printsqla($dbType,$sqla2);
- }
-
-
-
- adodb_pr($dict->databaseType);
- printsqla($dbType, $dict->DropColumnSQL('table',array('my col','`col2_with_Quotes`','A_col3','col3(10)')));
- printsqla($dbType, $dict->ChangeTableSQL('adoxyz','LASTNAME varchar(32)'));
-
-}
-
-function printsqla($dbType,$sqla)
-{
- print "<pre>";
- //print_r($dict->MetaTables());
- foreach($sqla as $s) {
- $s = htmlspecialchars($s);
- print "$s;\n";
- if ($dbType == 'oci8') print "/\n";
- }
- print "</pre><hr>";
-}
-
-/***
-
-Generated SQL:
-
-mysql
-
-CREATE DATABASE KUTU;
-DROP TABLE KUTU.testtable;
-CREATE TABLE KUTU.testtable (
-id INTEGER NOT NULL AUTO_INCREMENT,
-firstname VARCHAR(30) DEFAULT 'Joan',
-lastname VARCHAR(28) NOT NULL DEFAULT 'Chen',
-averylonglongfieldname LONGTEXT NOT NULL,
-price NUMERIC(7,2) NOT NULL DEFAULT 0.00,
-MYDATE DATE DEFAULT CURDATE(),
- PRIMARY KEY (id, lastname)
-)TYPE=ISAM;
-CREATE FULLTEXT INDEX idx ON KUTU.testtable (firstname,lastname);
-CREATE INDEX idx2 ON KUTU.testtable (price,lastname);
-ALTER TABLE KUTU.testtable ADD height DOUBLE;
-ALTER TABLE KUTU.testtable ADD weight DOUBLE;
-ALTER TABLE KUTU.testtable MODIFY COLUMN height DOUBLE NOT NULL;
-ALTER TABLE KUTU.testtable MODIFY COLUMN weight DOUBLE NOT NULL;
-
-
---------------------------------------------------------------------------------
-
-oci8
-
-CREATE USER KUTU IDENTIFIED BY tiger;
-/
-GRANT CREATE SESSION, CREATE TABLE,UNLIMITED TABLESPACE,CREATE SEQUENCE TO KUTU;
-/
-DROP TABLE KUTU.testtable CASCADE CONSTRAINTS;
-/
-CREATE TABLE KUTU.testtable (
-id NUMBER(16) NOT NULL,
-firstname VARCHAR(30) DEFAULT 'Joan',
-lastname VARCHAR(28) DEFAULT 'Chen' NOT NULL,
-averylonglongfieldname CLOB NOT NULL,
-price NUMBER(7,2) DEFAULT 0.00 NOT NULL,
-MYDATE DATE DEFAULT TRUNC(SYSDATE),
- PRIMARY KEY (id, lastname)
-)TABLESPACE USERS;
-/
-DROP SEQUENCE KUTU.SEQ_testtable;
-/
-CREATE SEQUENCE KUTU.SEQ_testtable;
-/
-CREATE OR REPLACE TRIGGER KUTU.TRIG_SEQ_testtable BEFORE insert ON KUTU.testtable
- FOR EACH ROW
- BEGIN
- select KUTU.SEQ_testtable.nextval into :new.id from dual;
- END;
-/
-CREATE BITMAP INDEX idx ON KUTU.testtable (firstname,lastname);
-/
-CREATE INDEX idx2 ON KUTU.testtable (price,lastname);
-/
-ALTER TABLE testtable ADD (
- height NUMBER,
- weight NUMBER);
-/
-ALTER TABLE testtable MODIFY(
- height NUMBER NOT NULL,
- weight NUMBER NOT NULL);
-/
-
-
---------------------------------------------------------------------------------
-
-postgres
-AlterColumnSQL not supported for PostgreSQL
-
-
-CREATE DATABASE KUTU LOCATION='/u01/postdata';
-DROP TABLE KUTU.testtable;
-CREATE TABLE KUTU.testtable (
-id SERIAL,
-firstname VARCHAR(30) DEFAULT 'Joan',
-lastname VARCHAR(28) DEFAULT 'Chen' NOT NULL,
-averylonglongfieldname TEXT NOT NULL,
-price NUMERIC(7,2) DEFAULT 0.00 NOT NULL,
-MYDATE DATE DEFAULT CURRENT_DATE,
- PRIMARY KEY (id, lastname)
-);
-CREATE INDEX idx ON KUTU.testtable USING HASH (firstname,lastname);
-CREATE INDEX idx2 ON KUTU.testtable (price,lastname);
-ALTER TABLE KUTU.testtable ADD height FLOAT8;
-ALTER TABLE KUTU.testtable ADD weight FLOAT8;
-
-
---------------------------------------------------------------------------------
-
-odbc_mssql
-
-CREATE DATABASE KUTU;
-DROP TABLE KUTU.testtable;
-CREATE TABLE KUTU.testtable (
-id INT IDENTITY(1,1) NOT NULL,
-firstname VARCHAR(30) DEFAULT 'Joan',
-lastname VARCHAR(28) DEFAULT 'Chen' NOT NULL,
-averylonglongfieldname TEXT NOT NULL,
-price NUMERIC(7,2) DEFAULT 0.00 NOT NULL,
-MYDATE DATETIME DEFAULT GetDate(),
- PRIMARY KEY (id, lastname)
-);
-CREATE CLUSTERED INDEX idx ON KUTU.testtable (firstname,lastname);
-CREATE INDEX idx2 ON KUTU.testtable (price,lastname);
-ALTER TABLE KUTU.testtable ADD
- height REAL,
- weight REAL;
-ALTER TABLE KUTU.testtable ALTER COLUMN height REAL NOT NULL;
-ALTER TABLE KUTU.testtable ALTER COLUMN weight REAL NOT NULL;
-
-
---------------------------------------------------------------------------------
-*/
-
-
-echo "<h1>Test XML Schema</h1>";
-$ff = file('xmlschema.xml');
-echo "<pre>";
-foreach($ff as $xml) echo htmlspecialchars($xml);
-echo "</pre>";
-include_once('test-xmlschema.php');
-?>
\ No newline at end of file
diff -urN moodle/lib/adodb/tests/testgenid.php moodle.adodb/lib/adodb/tests/testgenid.php
--- moodle/lib/adodb/tests/testgenid.php 2004-07-12 23:13:35.000000000 -0400
+++ moodle.adodb/lib/adodb/tests/testgenid.php 1969-12-31 19:00:00.000000000 -0500
@@ -1,36 +0,0 @@
-<?php
-/*
- V4.50 6 July 2004
-
- Run multiple copies of this php script at the same time
- to test unique generation of id's in multiuser mode
-*/
-include_once('../adodb.inc.php');
-$testaccess = true;
-include_once('testdatabases.inc.php');
-
-function testdb(&$db,$createtab="create table ADOXYZ (id int, firstname char(24), lastname char(24), created date)")
-{
- $table = 'adodbseq';
-
- $db->Execute("drop table $table");
- //$db->debug=true;
-
- $ctr = 5000;
- $lastnum = 0;
-
- while (--$ctr >= 0) {
- $num = $db->GenID($table);
- if ($num === false) {
- print "GenID returned false";
- break;
- }
- if ($lastnum + 1 == $num) print " $num ";
- else {
- print " <font color=red>$num</font> ";
- flush();
- }
- $lastnum = $num;
- }
-}
-?>
\ No newline at end of file
diff -urN moodle/lib/adodb/tests/testmssql.php moodle.adodb/lib/adodb/tests/testmssql.php
--- moodle/lib/adodb/tests/testmssql.php 2005-11-10 21:05:25.000000000 -0500
+++ moodle.adodb/lib/adodb/tests/testmssql.php 1969-12-31 19:00:00.000000000 -0500
@@ -1,76 +0,0 @@
-<?php
-
-/**
- * @version V4.50 6 July 2004 (c) 2000-2005 John Lim (jlim@natsoft.com.my). All rights reserved.
- * Released under both BSD license and Lesser GPL library license.
- * Whenever there is any discrepancy between the two licenses,
- * the BSD license will take precedence.
- *
- * Set tabs to 4 for best viewing.
- *
- * Latest version is available at http://php.weblogs.com
- *
- * Test GetUpdateSQL and GetInsertSQL.
- */
-
-error_reporting(E_ALL);
-
-
-include('../adodb.inc.php');
-include('../tohtml.inc.php');
-
-//==========================
-// This code tests an insert
-
-
-
-$conn = &ADONewConnection("mssql"); // create a connection
-$conn->Connect('127.0.0.1','adodb','natsoft','northwind') or die('Fail');
-
-$conn->debug =1;
-$query = 'select * from products';
-$conn->SetFetchMode(ADODB_FETCH_ASSOC);
-$rs = $conn->Execute($query);
-echo "<pre>";
-while( !$rs->EOF ) {
- $output[] = $rs->fields;
- var_dump($rs->fields);
- $rs->MoveNext();
- print "<p>";
-}
-die();
-
-
-$p = $conn->Prepare('insert into products (productname,unitprice,dcreated) values (?,?,?)');
-echo "<pre>";
-print_r($p);
-
-$conn->debug=1;
-$conn->Execute($p,array('John'.rand(),33.3,$conn->DBDate(time())));
-
-$p = $conn->Prepare('select * from products where productname like ?');
-$arr = $conn->getarray($p,array('V%'));
-print_r($arr);
-die();
-
-//$conn = &ADONewConnection("mssql");
-//$conn->Connect('mangrove','sa','natsoft','ai');
-
-//$conn->Connect('mangrove','sa','natsoft','ai');
-$conn->debug=1;
-$conn->Execute('delete from blobtest');
-
-$conn->Execute('insert into blobtest (id) values(1)');
-$conn->UpdateBlobFile('blobtest','b1','../cute_icons_for_site/adodb.gif','id=1');
-$rs = $conn->Execute('select b1 from blobtest where id=1');
-
-$output = "c:\\temp\\test_out-".date('H-i-s').".gif";
-print "Saving file <b>$output</b>, size=".strlen($rs->fields[0])."<p>";
-$fd = fopen($output, "wb");
-fwrite($fd, $rs->fields[0]);
-fclose($fd);
-
-print " <a href=file://$output>View Image</a>";
-//$rs = $conn->Execute('SELECT id,SUBSTRING(b1, 1, 10) FROM blobtest');
-//rs2html($rs);
-?>
\ No newline at end of file
diff -urN moodle/lib/adodb/tests/testoci8cursor.php moodle.adodb/lib/adodb/tests/testoci8cursor.php
--- moodle/lib/adodb/tests/testoci8cursor.php 2005-11-10 21:05:25.000000000 -0500
+++ moodle.adodb/lib/adodb/tests/testoci8cursor.php 1969-12-31 19:00:00.000000000 -0500
@@ -1,111 +0,0 @@
-<?php
-/*
-V4.66 28 Sept 2005 (c) 2000-2005 John Lim (jlim@natsoft.com.my). All rights reserved.
- Released under both BSD license and Lesser GPL library license.
- Whenever there is any discrepancy between the two licenses,
- the BSD license will take precedence.
- Set tabs to 4 for best viewing.
-
- Latest version is available at http://adodb.sourceforge.net
-*/
-
-/*
- Test for Oracle Variable Cursors, which are treated as ADOdb recordsets.
-
- We have 2 examples. The first shows us using the Parameter statement.
- The second shows us using the new ExecuteCursor($sql, $cursorName)
- function.
-
-------------------------------------------------------------------
--- TEST PACKAGE YOU NEED TO INSTALL ON ORACLE - run from sql*plus
-------------------------------------------------------------------
-
-
--- TEST PACKAGE
-CREATE OR REPLACE PACKAGE adodb AS
-TYPE TabType IS REF CURSOR RETURN tab%ROWTYPE;
-PROCEDURE open_tab (tabcursor IN OUT TabType,tablenames in varchar);
-PROCEDURE data_out(input IN varchar, output OUT varchar);
-
-procedure myproc (p1 in number, p2 out number);
-END adodb;
-/
-
-CREATE OR REPLACE PACKAGE BODY adodb AS
-PROCEDURE open_tab (tabcursor IN OUT TabType,tablenames in varchar) IS
- BEGIN
- OPEN tabcursor FOR SELECT * FROM tab where tname like tablenames;
- END open_tab;
-
-PROCEDURE data_out(input IN varchar, output OUT varchar) IS
- BEGIN
- output := 'Cinta Hati '||input;
- END;
-
-procedure myproc (p1 in number, p2 out number) as
-begin
-p2 := p1;
-end;
-END adodb;
-/
-
-------------------------------------------------------------------
--- END PACKAGE
-------------------------------------------------------------------
-
-*/
-
-include('../adodb.inc.php');
-include('../tohtml.inc.php');
-
- error_reporting(E_ALL);
- $db = ADONewConnection('oci8');
- $db->PConnect('','scott','natsoft');
- $db->debug = 99;
-
-
-/*
-*/
-
- define('MYNUM',5);
-
-
- $rs = $db->ExecuteCursor("BEGIN adodb.open_tab(:RS,'A%'); END;");
-
- if ($rs && !$rs->EOF) {
- print "Test 1 RowCount: ".$rs->RecordCount()."<p>";
- } else {
- print "<b>Error in using Cursor Variables 1</b><p>";
- }
-
- print "<h4>Testing Stored Procedures for oci8</h4>";
-
- $stid = $db->PrepareSP('BEGIN adodb.myproc('.MYNUM.', :myov); END;');
- $db->OutParameter($stid, $myov, 'myov');
- $db->Execute($stid);
- if ($myov != MYNUM) print "<p><b>Error with myproc</b></p>";
-
-
- $stmt = $db->PrepareSP("BEGIN adodb.data_out(:a1, :a2); END;",true);
- $a1 = 'Malaysia';
- //$a2 = ''; # a2 doesn't even need to be defined!
- $db->InParameter($stmt,$a1,'a1');
- $db->OutParameter($stmt,$a2,'a2');
- $rs = $db->Execute($stmt);
- if ($rs) {
- if ($a2 !== 'Cinta Hati Malaysia') print "<b>Stored Procedure Error: a2 = $a2</b><p>";
- else echo "OK: a2=$a2<p>";
- } else {
- print "<b>Error in using Stored Procedure IN/Out Variables</b><p>";
- }
-
-
- $tname = 'A%';
-
- $stmt = $db->PrepareSP('select * from tab where tname like :tablename');
- $db->Parameter($stmt,$tname,'tablename');
- $rs = $db->Execute($stmt);
- rs2html($rs);
-
-
-?>
\ No newline at end of file
diff -urN moodle/lib/adodb/tests/testoci8.php moodle.adodb/lib/adodb/tests/testoci8.php
--- moodle/lib/adodb/tests/testoci8.php 2005-11-10 21:05:25.000000000 -0500
+++ moodle.adodb/lib/adodb/tests/testoci8.php 1969-12-31 19:00:00.000000000 -0500
@@ -1,83 +0,0 @@
-<html>
-<body>
-<?php
-/*
-V4.66 28 Sept 2005 (c) 2000-2005 John Lim (jlim@natsoft.com.my). All rights reserved.
- Released under both BSD license and Lesser GPL library license.
- Whenever there is any discrepancy between the two licenses,
- the BSD license will take precedence.
- Set tabs to 4 for best viewing.
-
- Latest version is available at http://adodb.sourceforge.net
-*/
-error_reporting(63);
-include("../adodb.inc.php");
-include("../tohtml.inc.php");
-
-if (0) {
- $db = ADONewConnection('oci8po');
-
- $db->PConnect('','scott','natsoft');
- if (!empty($testblob)) {
- $varHoldingBlob = 'ABC DEF GEF John TEST';
- $num = time()%10240;
- // create table atable (id integer, ablob blob);
- $db->Execute('insert into ATABLE (id,ablob) values('.$num.',empty_blob())');
- $db->UpdateBlob('ATABLE', 'ablob', $varHoldingBlob, 'id='.$num, 'BLOB');
-
- $rs = &$db->Execute('select * from atable');
-
- if (!$rs) die("Empty RS");
- if ($rs->EOF) die("EOF RS");
- rs2html($rs);
- }
- $stmt = $db->Prepare('select * from adoxyz where id=?');
- for ($i = 1; $i <= 10; $i++) {
- $rs = &$db->Execute(
- $stmt,
- array($i));
-
- if (!$rs) die("Empty RS");
- if ($rs->EOF) die("EOF RS");
- rs2html($rs);
- }
-}
-if (1) {
- $db = ADONewConnection('oci8');
- $db->PConnect('','scott','natsoft');
- $db->debug = true;
- $db->Execute("delete from emp where ename='John'");
- print $db->Affected_Rows().'<BR>';
- $stmt = &$db->Prepare('insert into emp (empno, ename) values (:empno, :ename)');
- $rs = $db->Execute($stmt,array('empno'=>4321,'ename'=>'John'));
- // prepare not quite ready for prime time
- //$rs = $db->Execute($stmt,array('empno'=>3775,'ename'=>'John'));
- if (!$rs) die("Empty RS");
-
- $db->setfetchmode(ADODB_FETCH_NUM);
-
- $vv = 'A%';
- $stmt = $db->PrepareSP("BEGIN adodb.open_tab2(:rs,:tt); END;",true);
- $db->OutParameter($stmt, $cur, 'rs', -1, OCI_B_CURSOR);
- $db->OutParameter($stmt, $vv, 'tt');
- $rs = $db->Execute($stmt);
- while (!$rs->EOF) {
- adodb_pr($rs->fields);
- $rs->MoveNext();
- }
- echo " val = $vv";
-
-}
-
-if (0) {
- $db = ADONewConnection('odbc_oracle');
- if (!$db->PConnect('local_oracle','scott','tiger')) die('fail connect');
- $db->debug = true;
- $rs = &$db->Execute(
- 'select * from adoxyz where firstname=? and trim(lastname)=?',
- array('first'=>'Caroline','last'=>'Miranda'));
- if (!$rs) die("Empty RS");
- if ($rs->EOF) die("EOF RS");
- rs2html($rs);
-}
-?>
\ No newline at end of file
diff -urN moodle/lib/adodb/tests/testpaging.php moodle.adodb/lib/adodb/tests/testpaging.php
--- moodle/lib/adodb/tests/testpaging.php 2005-11-10 21:05:25.000000000 -0500
+++ moodle.adodb/lib/adodb/tests/testpaging.php 1969-12-31 19:00:00.000000000 -0500
@@ -1,86 +0,0 @@
-<?php
-/*
-V4.66 28 Sept 2005 (c) 2000-2005 John Lim (jlim@natsoft.com.my). All rights reserved.
- Released under both BSD license and Lesser GPL library license.
- Whenever there is any discrepancy between the two licenses,
- the BSD license will take precedence.
- Set tabs to 4 for best viewing.
-
- Latest version is available at http://adodb.sourceforge.net
-*/
-
-error_reporting(E_ALL);
-
-
-include_once('../adodb.inc.php');
-include_once('../adodb-pager.inc.php');
-
-$driver = 'oci8';
-$sql = 'select ID, firstname as "First Name", lastname as "Last Name" from adoxyz order by id';
-//$sql = 'select count(*),firstname from adoxyz group by firstname order by 2 ';
-//$sql = 'select distinct firstname, lastname from adoxyz order by firstname';
-
-if ($driver == 'postgres') {
- $db = NewADOConnection('postgres');
- $db->PConnect('localhost','tester','test','test');
-}
-
-if ($driver == 'access') {
- $db = NewADOConnection('access');
- $db->PConnect("nwind", "", "", "");
-}
-
-if ($driver == 'ibase') {
- $db = NewADOConnection('ibase');
- $db->PConnect("localhost:e:\\firebird\\examples\\employee.gdb", "sysdba", "masterkey", "");
- $sql = 'select distinct firstname, lastname from adoxyz order by firstname';
-
-}
-if ($driver == 'mssql') {
- $db = NewADOConnection('mssql');
- $db->Connect('JAGUAR\vsdotnet','adodb','natsoft','northwind');
-}
-if ($driver == 'oci8') {
- $db = NewADOConnection('oci8');
- $db->Connect('','scott','natsoft');
-
-$sql = "select * from (select ID, firstname as \"First Name\", lastname as \"Last Name\" from adoxyz
- order by (1))";
-}
-
-if ($driver == 'access') {
- $db = NewADOConnection('access');
- $db->Connect('nwind');
-}
-
-if (empty($driver) or $driver == 'mysql') {
- $db = NewADOConnection('mysql');
- $db->Connect('localhost','root','','test');
-}
-
-//$db->pageExecuteCountRows = false;
-
-$db->debug = true;
-
-if (0) {
-$rs = &$db->Execute($sql);
-include_once('../toexport.inc.php');
-print "<pre>";
-print rs2csv($rs); # return a string
-
-print '<hr>';
-$rs->MoveFirst(); # note, some databases do not support MoveFirst
-print rs2tab($rs); # return a string
-
-print '<hr>';
-$rs->MoveFirst();
-rs2tabout($rs); # send to stdout directly
-print "</pre>";
-}
-
-$pager = new ADODB_Pager($db,$sql);
-$pager->showPageLinks = true;
-$pager->linksPerPage = 10;
-$pager->cache = 60;
-$pager->Render($rows=7);
-?>
\ No newline at end of file
diff -urN moodle/lib/adodb/tests/testpear.php moodle.adodb/lib/adodb/tests/testpear.php
--- moodle/lib/adodb/tests/testpear.php 2005-11-10 21:05:25.000000000 -0500
+++ moodle.adodb/lib/adodb/tests/testpear.php 1969-12-31 19:00:00.000000000 -0500
@@ -1,34 +0,0 @@
-<?php
-/*
-V4.66 28 Sept 2005 (c) 2000-2005 John Lim (jlim@natsoft.com.my). All rights reserved.
- Released under both BSD license and Lesser GPL library license.
- Whenever there is any discrepancy between the two licenses,
- the BSD license will take precedence.
- Set tabs to 4 for best viewing.
-
- Latest version is available at http://adodb.sourceforge.net
-*/
-
-error_reporting(E_ALL);
-
-include_once('../adodb-pear.inc.php');
-$username = 'root';
-$password = '';
-$hostname = 'localhost';
-$databasename = 'xphplens';
-$driver = 'mysql';
-
-$dsn = "$driver://$username:$password@$hostname/$databasename";
-
-$db = DB::Connect($dsn);
-$db->setFetchMode(ADODB_FETCH_ASSOC);
-$rs = $db->Query('select firstname,lastname from adoxyz');
-$cnt = 0;
-while ($arr = $rs->FetchRow()) {
- print_r($arr);
- print "<br>";
- $cnt += 1;
-}
-
-if ($cnt != 50) print "<b>Error in \$cnt = $cnt</b>";
-?>
\ No newline at end of file
diff -urN moodle/lib/adodb/tests/test-perf.php moodle.adodb/lib/adodb/tests/test-perf.php
--- moodle/lib/adodb/tests/test-perf.php 2003-10-22 04:52:42.000000000 -0400
+++ moodle.adodb/lib/adodb/tests/test-perf.php 1969-12-31 19:00:00.000000000 -0500
@@ -1,50 +0,0 @@
-<?php
-
-include_once('../adodb-perf.inc.php');
-
-error_reporting(E_ALL);
-session_start();
-
-if (isset($_GET)) {
- foreach($_GET as $k => $v) {
- if (strncmp($k,'test',4) == 0) $_SESSION['_db'] = $k;
- }
-}
-
-if (isset($_SESSION['_db'])) {
- $_db = $_SESSION['_db'];
- $_GET[$_db] = 1;
- $$_db = 1;
-}
-
-echo "<h1>Performance Monitoring</h1>";
-include_once('testdatabases.inc.php');
-
-
-function testdb($db)
-{
- if (!$db) return;
- echo "<font size=1>";print_r($db->ServerInfo()); echo " user=".$db->user."</font>";
-
- $perf = NewPerfMonitor($db);
-
- # unit tests
- if (0) {
- //$DB->debug=1;
- echo "Data Cache Size=".$perf->DBParameter('data cache size').'<p>';
- echo $perf->HealthCheck();
- echo($perf->SuspiciousSQL());
- echo($perf->ExpensiveSQL());
- echo($perf->InvalidSQL());
- echo $perf->Tables();
-
- echo "<pre>";
- echo $perf->HealthCheckCLI();
- $perf->Poll(3);
- die();
- }
-
- if ($perf) $perf->UI(3);
-}
-
-?>
diff -urN moodle/lib/adodb/tests/test-pgblob.php moodle.adodb/lib/adodb/tests/test-pgblob.php
--- moodle/lib/adodb/tests/test-pgblob.php 2004-03-06 21:33:26.000000000 -0500
+++ moodle.adodb/lib/adodb/tests/test-pgblob.php 1969-12-31 19:00:00.000000000 -0500
@@ -1,88 +0,0 @@
-<?php
-
-function getmicrotime()
-{
- $t = microtime();
- $t = explode(' ',$t);
- return (float)$t[1]+ (float)$t[0];
-}
-
-function doloop()
-{
-global $db,$MAX;
-
- $sql = "select id,firstname,lastname from adoxyz where
- firstname not like ? and lastname not like ? and id=?";
- $offset = 0;
- /*$sql = "select * from juris9.employee join juris9.emp_perf_plan on epp_empkey = emp_id
- where emp_name not like ? and emp_name not like ? and emp_id=28000+?";
- $offset = 28000;*/
- for ($i=1; $i <= $MAX; $i++) {
- $db->Param(false);
- $x = (rand() % 10) + 1;
- $db->debug= ($i==1);
- $id = $db->GetOne($sql,
- array('Z%','Z%',$x));
- if($id != $offset+$x) {
- print "<p>Error at $x";
- break;
- }
- }
-}
-
-include_once('../adodb.inc.php');
-$db = NewADOConnection('postgres7');
-$db->PConnect('localhost','tester','test','test') || die("failed connection");
-
-$enc = "GIF89a%01%00%01%00%80%FF%00%C0%C0%C0%00%00%00%21%F9%04%01%00%00%00%00%2C%00%00%00%00%01%00%01%00%00%01%012%00%3Bt_clear.gif%0D";
-$val = rawurldecode($enc);
-
-$MAX = 1000;
-
-adodb_pr($db->ServerInfo());
-
-echo "<h4>Testing PREPARE/EXECUTE PLAN</h4>";
-
-
-$db->_bindInputArray = true; // requires postgresql 7.3+ and ability to modify database
-$t = getmicrotime();
-doloop();
-echo '<p>',$MAX,' times, with plan=',getmicrotime() - $t,'</p>';
-
-
-$db->_bindInputArray = false;
-$t = getmicrotime();
-doloop();
-echo '<p>',$MAX,' times, no plan=',getmicrotime() - $t,'</p>';
-
-
-
-echo "<h4>Testing UPDATEBLOB</h4>";
-$db->debug=1;
-
-### TEST BEGINS
-
-$db->Execute("insert into photos (id,name) values(9999,'dot.gif')");
-$db->UpdateBlob('photos','photo',$val,'id=9999');
-$v = $db->GetOne('select photo from photos where id=9999');
-
-
-### CLEANUP
-
-$db->Execute("delete from photos where id=9999");
-
-### VALIDATION
-
-if ($v !== $val) echo "<b>*** ERROR: Inserted value does not match downloaded val<b>";
-else echo "<b>*** OK: Passed</b>";
-
-echo "<pre>";
-echo "INSERTED: ", $enc;
-echo "<hr>";
-echo"RETURNED: ", rawurlencode($v);
-echo "<hr><p>";
-echo "INSERTED: ", $val;
-echo "<hr>";
-echo "RETURNED: ", $v;
-
-?>
\ No newline at end of file
diff -urN moodle/lib/adodb/tests/test.php moodle.adodb/lib/adodb/tests/test.php
--- moodle/lib/adodb/tests/test.php 2005-11-10 21:05:25.000000000 -0500
+++ moodle.adodb/lib/adodb/tests/test.php 1969-12-31 19:00:00.000000000 -0500
@@ -1,1705 +0,0 @@
-<?php
-/*
-V4.66 28 Sept 2005 (c) 2000-2005 John Lim (jlim@natsoft.com.my). All rights reserved.
- Released under both BSD license and Lesser GPL library license.
- Whenever there is any discrepancy between the two licenses,
- the BSD license will take precedence.
- Set tabs to 4 for best viewing.
-
- Latest version is available at http://adodb.sourceforge.net
-*/
-
-error_reporting(E_ALL);
-
-$ADODB_FLUSH = true;
-
-define('ADODB_ASSOC_CASE',0);
-
-
-function getmicrotime()
-{
- $t = microtime();
- $t = explode(' ',$t);
- return (float)$t[1]+ (float)$t[0];
-}
-
-
-if (PHP_VERSION < 5) include_once('../adodb-pear.inc.php');
-//--------------------------------------------------------------------------------------
-//define('ADODB_ASSOC_CASE',1);
-//
-function Err($msg)
-{
- print "<b>$msg</b><br>";
- flush();
-}
-
-function CheckWS($conn)
-{
-global $ADODB_EXTENSION;
-
- include_once('../session/adodb-session.php');
- if (defined('CHECKWSFAIL')){ echo " TESTING $conn ";flush();}
- $saved = $ADODB_EXTENSION;
- $db = ADONewConnection($conn);
- $ADODB_EXTENSION = $saved;
- if (headers_sent()) {
- print "<p><b>White space detected in adodb-$conn.inc.php or include file...</b></p>";
- //die();
- }
-}
-
-function do_strtolower(&$arr)
-{
- foreach($arr as $k => $v) {
- if (is_object($v)) $arr[$k] = adodb_pr($v,true);
- else $arr[$k] = strtolower($v);
- }
-}
-
-
-function CountExecs($db, $sql, $inputarray)
-{
-global $EXECS; $EXECS++;
-}
-
-function CountCachedExecs($db, $secs2cache, $sql, $inputarray)
-{
-global $CACHED; $CACHED++;
-}
-
-// the table creation code is specific to the database, so we allow the user
-// to define their own table creation stuff
-
-function testdb(&$db,$createtab="create table ADOXYZ (id int, firstname char(24), lastname char(24), created date)")
-{
-GLOBAL $ADODB_vers,$ADODB_CACHE_DIR,$ADODB_FETCH_MODE,$ADODB_COUNTRECS;
-
-?> <form method=GET>
- </p>
- <table width=100% ><tr><td bgcolor=beige> </td></tr></table>
- </p>
-<?php
- $create =false;
- /*$ADODB_FETCH_MODE = ADODB_FETCH_NUM;
-
- $rs = $db->Execute('select lastname,firstname,lastname,id from adoxyz');
- $arr = $rs->GetAssoc();
- echo "<pre>";print_r($arr);
- die();*/
-
- GLOBAL $EXECS, $CACHED;
-
- $EXECS = 0;
- $CACHED = 0;
- //$db->Execute("drop table adodb_logsql");
- if ((rand()%3) == 0) @$db->Execute("delete from adodb_logsql");
- $db->debug=1;
-
- $db->fnExecute = 'CountExecs';
- $db->fnCacheExecute = 'CountCachedExecs';
-
- if (empty($_GET['nolog'])) {
- echo "<h3>SQL Logging enabled</h3>";
- $db->LogSQL();/*
- $sql =
-"SELECT t1.sid, t1.sid, t1.title, t1.hometext, t1.notes, t1.aid, t1.informant,
-t2.url, t2.email, t1.catid, t3.title, t1.topic, t4.topicname, t4.topicimage,
-t4.topictext, t1.score, t1.ratings, t1.counter, t1.comments, t1.acomm
-FROM `nuke_stories` `t1`, `nuke_authors` `t2`, `nuke_stories_cat` `t3`, `nuke_topics` `t4`
- WHERE ((t2.aid=t1.aid) AND (t3.catid=t1.catid) AND (t4.topicid=t1.topic)
- AND ((t1.alanguage='german') OR (t1.alanguage='')) AND (t1.ihome='0'))
- ORDER BY t1.time DESC";
- $db->SelectLimit($sql);
- echo $db->ErrorMsg();*/
- }
- $ADODB_CACHE_DIR = dirname(TempNam('/tmp','testadodb'));
- $db->debug = false;
- //print $db->UnixTimeStamp('2003-7-22 23:00:00');
-
- $phpv = phpversion();
- if (defined('ADODB_EXTENSION')) $ext = ' Extension '.ADODB_EXTENSION.' installed';
- else $ext = '';
- print "<h3>ADODB Version: $ADODB_vers Host: <i>$db->host</i> Database: <i>$db->database</i> PHP: $phpv $ext</h3>";
- flush();
-
-
- $arr = $db->ServerInfo();
- print_r($arr);
- echo "<br>";
- $e = error_reporting(E_ALL-E_WARNING);
- flush();
-
- $tt = $db->Time();
- if ($tt == 0) echo '<br><b>$db->Time failed</b>';
- else echo "<br>db->Time: ".date('d-m-Y H:i:s',$tt);
- echo '<br>';
-
- echo "Date=",$db->UserDate('2002-04-07'),'<br>';
- print "<i>date1</i> (1969-02-20) = ".$db->DBDate('1969-2-20');
- print "<br><i>date1</i> (1999-02-20) = ".$db->DBDate('1999-2-20');
- print "<br><i>date1.1</i> 1999 = ".$db->DBDate("'1999'");
- print "<br><i>date2</i> (1970-1-2) = ".$db->DBDate(24*3600)."<p>";
- print "<i>ts1</i> (1999-02-20 13:40:50) = ".$db->DBTimeStamp('1999-2-20 1:40:50 pm');
- print "<br><i>ts1.1</i> (1999-02-20 13:40:00) = ".$db->DBTimeStamp('1999-2-20 13:40');
- print "<br><i>ts2</i> (1999-02-20) = ".$db->DBTimeStamp('1999-2-20');
- print "<br><i>ts3</i> (1970-1-2 +/- timezone) = ".$db->DBTimeStamp(24*3600);
- print "<br> Fractional TS (1999-2-20 13:40:50.91): ".$db->DBTimeStamp($db->UnixTimeStamp('1999-2-20 13:40:50.91+1'));
- $dd = $db->UnixDate('1999-02-20');
- print "<br>unixdate</i> 1999-02-20 = ".date('Y-m-d',$dd)."<p>";
- print "<br><i>ts4</i> =".($db->UnixTimeStamp("19700101000101")+8*3600);
- print "<br><i>ts5</i> =".$db->DBTimeStamp($db->UnixTimeStamp("20040110092123"));
- print "<br><i>ts6</i> =".$db->UserTimeStamp("20040110092123");
- print "<br><i>ts7</i> =".$db->DBTimeStamp("20040110092123");
- flush();
- // mssql too slow in failing bad connection
- if (false && $db->databaseType != 'mssql') {
- print "<p>Testing bad connection. Ignore following error msgs:<br>";
- $db2 = ADONewConnection();
- $rez = $db2->Connect("bad connection");
- $err = $db2->ErrorMsg();
- print "<i>Error='$err'</i></p>";
- if ($rez) print "<b>Cannot check if connection failed.</b> The Connect() function returned true.</p>";
- }
- error_reporting($e);
- flush();
-
- //$ADODB_COUNTRECS=false;
- $rs=$db->Execute('select * from adoxyz order by id');
- if($rs === false) $create = true;
- else $rs->Close();
-
- //if ($db->databaseType !='vfp') $db->Execute("drop table ADOXYZ");
-
- if ($create) {
- if (false && $db->databaseType == 'ibase') {
- print "<b>Please create the following table for testing:</b></p>$createtab</p>";
- return;
- } else {
- $db->debug = 99;
- $e = error_reporting(E_ALL-E_WARNING);
- $db->Execute($createtab);
- error_reporting($e);
- }
- }
-
- echo "<p>Testing Metatypes</p>";
- $t = $db->MetaType('varchar');
- if ($t != 'C') Err("Bad Metatype for varchar");
-
- $rs = &$db->Execute("delete from ADOXYZ"); // some ODBC drivers will fail the drop so we delete
- if ($rs) {
- if(! $rs->EOF) print "<b>Error: </b>RecordSet returned by Execute('delete...') should show EOF</p>";
- $rs->Close();
- } else print "err=".$db->ErrorMsg();
-
- print "<p>Test select on empty table, FetchField when EOF, and GetInsertSQL</p>";
- $rs = &$db->Execute("select id,firstname from ADOXYZ where id=9999");
- if ($rs && !$rs->EOF) print "<b>Error: </b>RecordSet returned by Execute(select...') on empty table should show EOF</p>";
- if ($rs->EOF && (($ox = $rs->FetchField(0)) && !empty($ox->name))) {
- $record['id'] = 99;
- $record['firstname'] = 'John';
- $sql = $db->GetInsertSQL($rs, $record);
- if (strtoupper($sql) != strtoupper("INSERT INTO ADOXYZ ( id, firstname ) VALUES ( 99, 'John' )")) Err("GetInsertSQL does not work on empty table: $sql");
- } else {
- Err("FetchField does not work on empty recordset, meaning GetInsertSQL will fail...");
- }
- if ($rs) $rs->Close();
- flush();
- //$db->debug=true;
- print "<p>Testing Commit: ";
- $time = $db->DBDate(time());
- if (!$db->BeginTrans()) {
- print '<b>Transactions not supported</b></p>';
- if ($db->hasTransactions) Err("hasTransactions should be false");
- } else { /* COMMIT */
- if (!$db->hasTransactions) Err("hasTransactions should be true");
- if ($db->transCnt != 1) Err("Invalid transCnt = $db->transCnt (should be 1)");
- $rs = $db->Execute("insert into ADOXYZ (id,firstname,lastname,created) values (99,'Should Not','Exist (Commit)',$time)");
- if ($rs && $db->CommitTrans()) {
- $rs->Close();
- $rs = &$db->Execute("select * from ADOXYZ where id=99");
- if ($rs === false || $rs->EOF) {
- print '<b>Data not saved</b></p>';
- $rs = &$db->Execute("select * from ADOXYZ where id=99");
- print_r($rs);
- die();
- } else print 'OK</p>';
- if ($rs) $rs->Close();
- } else {
- if (!$rs) {
- print "<b>Insert failed</b></p>";
- $db->RollbackTrans();
- } else print "<b>Commit failed</b></p>";
- }
- if ($db->transCnt != 0) Err("Invalid transCnt = $db->transCnt (should be 0)");
-
- /* ROLLBACK */
- if (!$db->BeginTrans()) print "<p><b>Error in BeginTrans</b>()</p>";
- print "<p>Testing Rollback: ";
- $db->Execute("insert into ADOXYZ (id,firstname,lastname,created) values (100,'Should Not','Exist (Rollback)',$time)");
- if ($db->RollbackTrans()) {
- $rs = $db->Execute("select * from ADOXYZ where id=100");
- if ($rs && !$rs->EOF) print '<b>Fail: Data should rollback</b></p>';
- else print 'OK</p>';
- if ($rs) $rs->Close();
- } else
- print "<b>Commit failed</b></p>";
-
- $rs = &$db->Execute('delete from ADOXYZ where id>50');
- if ($rs) $rs->Close();
-
- if ($db->transCnt != 0) Err("Invalid transCnt = $db->transCnt (should be 0)");
- }
-
- if (1) {
- print "<p>Testing MetaDatabases()</p>";
- print_r( $db->MetaDatabases());
-
- print "<p>Testing MetaTables() and MetaColumns()</p>";
- $a = $db->MetaTables();
- if ($a===false) print "<b>MetaTables not supported</b></p>";
- else {
- print "Array of tables and views: ";
- foreach($a as $v) print " ($v) ";
- print '</p>';
- }
-
- $a = $db->MetaTables('VIEW');
- if ($a===false) print "<b>MetaTables not supported (views)</b></p>";
- else {
- print "Array of views: ";
- foreach($a as $v) print " ($v) ";
- print '</p>';
- }
-
- $a = $db->MetaTables(false,false,'aDo%');
- if ($a===false) print "<b>MetaTables not supported (mask)</b></p>";
- else {
- print "Array of ado%: ";
- foreach($a as $v) print " ($v) ";
- print '</p>';
- }
-
- $a = $db->MetaTables('TABLE');
- if ($a===false) print "<b>MetaTables not supported</b></p>";
- else {
- print "Array of tables: ";
- foreach($a as $v) print " ($v) ";
- print '</p>';
- }
-
- $db->debug=0;
- $rez = $db->MetaColumns("NOSUCHTABLEHERE");
- if ($rez !== false) {
- Err("MetaColumns error handling failed");
- var_dump($rez);
- }
- $db->debug=1;
- $a = $db->MetaColumns('ADOXYZ');
- if ($a===false) print "<b>MetaColumns not supported</b></p>";
- else {
- print "<p>Columns of ADOXYZ: <font size=1><br>";
- foreach($a as $v) {print_r($v); echo "<br>";}
- echo "</font>";
- }
-
- print "<p>Testing MetaIndexes</p>";
-
- $a = $db->MetaIndexes(('ADOXYZ'),true);
- if ($a===false) print "<b>MetaIndexes not supported</b></p>";
- else {
- print "<p>Indexes of ADOXYZ: <font size=1><br>";
- adodb_pr($a);
- echo "</font>";
- }
- print "<p>Testing MetaPrimaryKeys</p>";
- $a = $db->MetaPrimaryKeys('ADOXYZ');
- var_dump($a);
- }
- $rs = &$db->Execute('delete from ADOXYZ');
- if ($rs) $rs->Close();
-
- $db->debug = false;
-
-
- switch ($db->databaseType) {
- case 'vfp':
-
- if (0) {
- // memo test
- $rs = $db->Execute("select data from memo");
- rs2html($rs);
- }
- break;
-
- case 'postgres7':
- case 'postgres64':
- case 'postgres':
- case 'ibase':
- print "<p>Encode=".$db->BlobEncode("abc\0d\"'
-ef")."</p>";//'
-
- print "<p>Testing Foreign Keys</p>";
- $arr = $db->MetaForeignKeys('adoxyz',false,true);
- print_r($arr);
- if (!$arr) Err("No MetaForeignKeys");
- break;
-
- case 'odbc_mssql':
- case 'mssqlpo':
- print "<p>Testing Foreign Keys</p>";
- $arr = $db->MetaForeignKeys('Orders',false,true);
- print_r($arr);
- if (!$arr) Err("Bad MetaForeignKeys");
- if ($db->databaseType == 'odbc_mssql') break;
-
- case 'mssql':
-
-
-/*
-ASSUME Northwind available...
-
-CREATE PROCEDURE SalesByCategory
- @CategoryName nvarchar(15), @OrdYear nvarchar(4) = '1998'
-AS
-IF @OrdYear != '1996' AND @OrdYear != '1997' AND @OrdYear != '1998'
-BEGIN
- SELECT @OrdYear = '1998'
-END
-
-SELECT ProductName,
- TotalPurchase=ROUND(SUM(CONVERT(decimal(14,2), OD.Quantity * (1-OD.Discount) * OD.UnitPrice)), 0)
-FROM [Order Details] OD, Orders O, Products P, Categories C
-WHERE OD.OrderID = O.OrderID
- AND OD.ProductID = P.ProductID
- AND P.CategoryID = C.CategoryID
- AND C.CategoryName = @CategoryName
- AND SUBSTRING(CONVERT(nvarchar(22), O.OrderDate, 111), 1, 4) = @OrdYear
-GROUP BY ProductName
-ORDER BY ProductName
-GO
-
-
-CREATE PROCEDURE ADODBTestSP
-@a nvarchar(25)
-AS
-SELECT GETDATE() AS T, @a AS A
-GO
-*/
- print "<h4>Testing Stored Procedures for mssql</h4>";
- $saved = $db->debug;
- $db->debug=true;
-
- $cmd = $db->PrepareSP('ADODBTestSP');
- $ss = "You should see me in the output.";
- $db->InParameter($cmd,$ss,'a');
- $rs = $db->Execute($cmd);
- echo $rs->fields['T']." --- ".$rs->fields['A']."---<br>";
-
- $cat = 'Dairy Products';
- $yr = '1998';
-
- $stmt = $db->PrepareSP('SalesByCategory');
- $db->InParameter($stmt,$cat,'CategoryName');
- $db->InParameter($stmt,$yr,'OrdYear');
- $rs = $db->Execute($stmt);
- rs2html($rs);
-
- $cat = 'Grains/Cereals';
- $yr = 1998;
-
- $stmt = $db->PrepareSP('SalesByCategory');
- $db->InParameter($stmt,$cat,'CategoryName');
- $db->InParameter($stmt,$yr,'OrdYear');
- $rs = $db->Execute($stmt);
- rs2html($rs);
-
- /*
- Test out params - works in PHP 4.2.3 and 4.3.3 and 4.3.8 but not 4.3.0:
-
- CREATE PROCEDURE at_date_interval
- @days INTEGER,
- @start VARCHAR(20) OUT,
- @end VARCHAR(20) OUT
- AS
- BEGIN
- set @start = CONVERT(VARCHAR(20), getdate(), 101)
- set @end =CONVERT(VARCHAR(20), dateadd(day, @days, getdate()), 101 )
- END
- GO
- */
- $db->debug=1;
- $stmt = $db->PrepareSP('at_date_interval');
- $days = 10;
- $begin_date = '';
- $end_date = '';
- $db->InParameter($stmt,$days,'days', 4, SQLINT4);
- $db->OutParameter($stmt,$begin_date,'start', 20, SQLVARCHAR );
- $db->OutParameter($stmt,$end_date,'end', 20, SQLVARCHAR );
- $db->Execute($stmt);
- if (empty($begin_date) or empty($end_date) or $begin_date == $end_date) {
- Err("MSSQL SP Test for OUT Failed");
- print "begin=$begin_date end=$end_date<p>";
- } else print "(Today +10days) = (begin=$begin_date end=$end_date)<p>";
-
- $db->debug = $saved;
- break;
- case 'oci8':
- case 'oci8po':
-
- if (0) {
- $t = getmicrotime();
- $ADODB_FETCH_MODE = ADODB_FETCH_NUM;
- $arr = $db->GetArray('select * from abalone_tree');
- $arr = $db->GetArray('select * from abalone_tree');
- $arr = $db->GetArray('select * from abalone_tree');
- echo "<p>t = ",getmicrotime() - $t,"</p>";
- die();
- }
-
- # cleanup
- $db->Execute("delete from photos where id=99 or id=1");
- $db->Execute("insert into photos (id) values(1)");
- $db->Execute("update photos set photo=null,descclob=null where id=1");
-
- $saved = $db->debug;
- $db->debug=true;
-
-
-
- /*
- CREATE TABLE PHOTOS
- (
- ID NUMBER(16),
- PHOTO BLOB,
- DESCRIPTION VARCHAR2(4000 BYTE),
- DESCCLOB CLOB
- );
-
- INSERT INTO PHOTOS (ID) VALUES(1);
- */
- $s = '';
- for ($i = 0; $i <= 500; $i++) {
- $s .= '1234567890';
- }
-
- $sql = "INSERT INTO photos ( ID, photo) ".
- "VALUES ( :id, empty_blob() )".
- " RETURNING photo INTO :xx";
-
-
- $blob_data = $s;
- $id = 99;
-
- $stmt = $db->PrepareSP($sql);
- $db->InParameter($stmt, $id, 'id');
- $blob = $db->InParameter($stmt, $s, 'xx',-1, OCI_B_BLOB);
- $db->StartTrans();
- $result = $db->Execute($stmt);
- $db->CompleteTrans();
-
- $s2= $db->GetOne("select photo from photos where id=99");
- echo "<br>---$s2";
- if ($s !== $s2) Err("insert blob does not match");
-
- print "<h4>Testing Blob: size=".strlen($s)."</h4>";
- $ok = $db->Updateblob('photos','photo',$s,'id=1');
- if (!$ok) Err("Blob failed 1");
- else {
- $s2= $db->GetOne("select photo from photos where id=1");
- if ($s !== $s2) Err("updateblob does not match");
- }
-
- print "<h4>Testing Clob: size=".strlen($s)."</h4>";
- $ok = $db->UpdateClob('photos','descclob',$s,'id=1');
- if (!$ok) Err("Clob failed 1");
- else {
- $s2= $db->GetOne("select descclob from photos where id=1");
- if ($s !== $s2) Err("updateclob does not match");
- }
-
-
- $s = '';
- $s2 = '';
- print "<h4>Testing Foreign Keys</h4>";
- $arr = $db->MetaForeignKeys('emp','scott');
- print_r($arr);
- if (!$arr) Err("Bad MetaForeignKeys");
-/*
--- TEST PACKAGE
--- "Set scan off" turns off substitution variables.
-Set scan off;
-
-CREATE OR REPLACE PACKAGE Adodb AS
-TYPE TabType IS REF CURSOR RETURN TAB%ROWTYPE;
-PROCEDURE open_tab (tabcursor IN OUT TabType,tablenames IN VARCHAR);
-PROCEDURE open_tab2 (tabcursor IN OUT TabType,tablenames IN OUT VARCHAR) ;
-PROCEDURE data_out(input IN VARCHAR, output OUT VARCHAR);
-PROCEDURE data_in(input IN VARCHAR);
-PROCEDURE myproc (p1 IN NUMBER, p2 OUT NUMBER);
-END Adodb;
-/
-
-
-CREATE OR REPLACE PACKAGE BODY Adodb AS
-PROCEDURE open_tab (tabcursor IN OUT TabType,tablenames IN VARCHAR) IS
- BEGIN
- OPEN tabcursor FOR SELECT * FROM TAB WHERE tname LIKE tablenames;
- END open_tab;
-
- PROCEDURE open_tab2 (tabcursor IN OUT TabType,tablenames IN OUT VARCHAR) IS
- BEGIN
- OPEN tabcursor FOR SELECT * FROM TAB WHERE tname LIKE tablenames;
- tablenames := 'TEST';
- END open_tab2;
-
-PROCEDURE data_out(input IN VARCHAR, output OUT VARCHAR) IS
- BEGIN
- output := 'Cinta Hati '||input;
- END;
-
-PROCEDURE data_in(input IN VARCHAR) IS
- ignore varchar(1000);
- BEGIN
- ignore := input;
- END;
-
-PROCEDURE myproc (p1 IN NUMBER, p2 OUT NUMBER) AS
-BEGIN
-p2 := p1;
-END;
-END Adodb;
-/
-
-*/
-
- print "<h4>Testing Cursor Variables</h4>";
- $rs = $db->ExecuteCursor("BEGIN adodb.open_tab(:zz,'A%'); END;",'zz');
-
- if ($rs && !$rs->EOF) {
- $v = $db->GetOne("SELECT count(*) FROM tab where tname like 'A%'");
- if ($v == $rs->RecordCount()) print "Test 1 RowCount: OK<p>";
- else Err("Test 1 RowCount ".$rs->RecordCount().", actual = $v");
- } else {
- print "<b>Error in using Cursor Variables 1</b><p>";
- }
- $rs->Close();
-
- print "<h4>Testing Stored Procedures for oci8</h4>";
-
- $stmt = $db->PrepareSP("BEGIN adodb.data_out(:a1, :a2); END;");
- $a1 = 'Malaysia';
- //$a2 = ''; # a2 doesn't even need to be defined!
- $db->InParameter($stmt,$a1,'a1');
- $db->OutParameter($stmt,$a2,'a2');
- $rs = $db->Execute($stmt);
- if ($rs) {
- if ($a2 !== 'Cinta Hati Malaysia') print "<b>Stored Procedure Error: a2 = $a2</b><p>";
- else echo "OK: a2=$a2<p>";
- } else {
- print "<b>Error in using Stored Procedure IN/Out Variables</b><p>";
- }
-
- $tname = 'A%';
-
- $stmt = $db->PrepareSP('select * from tab where tname like :tablename');
- $db->Parameter($stmt,$tname,'tablename');
- $rs = $db->Execute($stmt);
- rs2html($rs);
-
- $stmt = $db->PrepareSP("begin adodb.data_in(:a1); end;");
- $db->InParameter($stmt,$a1,'a1');
- $db->Execute($stmt);
-
- $db->debug = $saved;
- break;
-
- default:
- break;
- }
- $arr = array(
- array(1,'Caroline','Miranda'),
- array(2,'John','Lim'),
- array(3,'Wai Hun','See')
- );
- //$db->debug=1;
- print "<p>Testing Bulk Insert of 3 rows</p>";
-
- $sql = "insert into ADOXYZ (id,firstname,lastname) values (".$db->Param('0').",".$db->Param('1').",".$db->Param('2').")";
- $db->StartTrans();
- $db->Execute($sql,$arr);
- $db->CompleteTrans();
- $rs = $db->Execute('select * from ADOXYZ order by id');
- if (!$rs || $rs->RecordCount() != 3) Err("Bad bulk insert");
-
- rs2html($rs);
-
- $db->Execute('delete from ADOXYZ');
-
- print "<p>Inserting 50 rows</p>";
-
- for ($i = 0; $i < 5; $i++) {
-
- $time = $db->DBDate(time());
- if (empty($_GET['hide'])) $db->debug = true;
- switch($db->databaseType){
- case 'mssqlpo':
- case 'mssql':
- $sqlt = "CREATE TABLE mytable (
- row1 INT IDENTITY(1,1) NOT NULL,
- row2 varchar(16),
- PRIMARY KEY (row1))";
- //$db->debug=1;
- if (!$db->Execute("delete from mytable"))
- $db->Execute($sqlt);
-
- $ok = $db->Execute("insert into mytable (row2) values ('test')");
- $ins_id=$db->Insert_ID();
- echo "Insert ID=";var_dump($ins_id);
- if ($ins_id == 0) Err("Bad Insert_ID()");
- $ins_id2 = $db->GetOne("select row1 from mytable");
- if ($ins_id != $ins_id2) Err("Bad Insert_ID() 2");
-
- $arr = array(0=>'Caroline',1=>'Miranda');
- $sql = "insert into ADOXYZ (id,firstname,lastname,created) values ($i*10+0,?,?,$time)";
- break;
- case 'mysqli':
- case 'mysqlt':
- case 'mysql':
- $sqlt = "CREATE TABLE `mytable` (
- `row1` int(11) NOT NULL auto_increment,
- `row2` varchar(16) NOT NULL default '',
- PRIMARY KEY (`row1`),
- KEY `myindex` (`row1`,`row2`)
-) ";
- if (!$db->Execute("delete from mytable"))
- $db->Execute($sqlt);
-
- $ok = $db->Execute("insert into mytable (row2) values ('test')");
- $ins_id=$db->Insert_ID();
- echo "Insert ID=";var_dump($ins_id);
- if ($ins_id == 0) Err("Bad Insert_ID()");
- $ins_id2 = $db->GetOne("select row1 from mytable");
- if ($ins_id != $ins_id2) Err("Bad Insert_ID() 2");
-
- default:
- $arr = array(0=>'Caroline',1=>'Miranda');
- $sql = "insert into ADOXYZ (id,firstname,lastname,created) values ($i*10+0,?,?,$time)";
- break;
-
- case 'oci8':
- case 'oci805':
- $arr = array('first'=>'Caroline','last'=>'Miranda');
- $amt = rand() % 100;
- $sql = "insert into ADOXYZ (id,firstname,lastname,created) values ($i*10+0,:first,:last,$time)";
- break;
- }
- if ($i & 1) {
- $sql = $db->Prepare($sql);
- }
- $rs = $db->Execute($sql,$arr);
-
- if ($rs === false) Err( 'Error inserting with parameters');
- else $rs->Close();
- $db->debug = false;
- $db->Execute("insert into ADOXYZ (id,firstname,lastname,created) values ($i*10+1,'John','Lim',$time)");
- /*$ins_id=$db->Insert_ID();
- echo "Insert ID=";var_dump($ins_id);*/
- if ($db->databaseType == 'mysql') if ($ins_id == 0) Err('Bad Insert_ID');
- $db->Execute("insert into ADOXYZ (id,firstname,lastname,created) values ($i*10+2,'Mary','Lamb',$time )");
- $db->Execute("insert into ADOXYZ (id,firstname,lastname,created) values ($i*10+3,'George','Washington',$time )");
- $db->Execute("insert into ADOXYZ (id,firstname,lastname,created) values ($i*10+4,'Mr. Alan','Tam',$time )");
- $db->Execute("insert into ADOXYZ (id,firstname,lastname,created) values ($i*10+5,'Alan',".$db->quote("Turing'ton").",$time )");
- $db->Execute("insert into ADOXYZ (id,firstname,lastname,created)values ($i*10+6,'Serena','Williams',$time )");
- $db->Execute("insert into ADOXYZ (id,firstname,lastname,created) values ($i*10+7,'Yat Sun','Sun',$time )");
- $db->Execute("insert into ADOXYZ (id,firstname,lastname,created) values ($i*10+8,'Wai Hun','See',$time )");
- $db->Execute("insert into ADOXYZ (id,firstname,lastname,created) values ($i*10+9,'Steven','Oey',$time )");
- } // for
- if (1) {
- $db->debug=1;
- $ADODB_FETCH_MODE = ADODB_FETCH_ASSOC;
- $cnt = $db->GetOne("select count(*) from ADOXYZ");
- $rs = $db->Execute('update ADOXYZ set id=id+1');
- if (!is_object($rs)) {
- print_r($rs);
- err("Update should return object");
- }
- if (!$rs) err("Update generated error");
-
- $nrows = $db->Affected_Rows();
- if ($nrows === false) print "<p><b>Affected_Rows() not supported</b></p>";
- else if ($nrows != $cnt) print "<p><b>Affected_Rows() Error: $nrows returned (should be 50) </b></p>";
- else print "<p>Affected_Rows() passed</p>";
- }
-
- /*if ($db->dataProvider == 'oci8') */ $array = array('zid'=>1,'zdate'=>date('Y-m-d',time()));
- /*else $array=array(1,date('Y-m-d',time()));*/
-
- $id = $db->GetOne("select id from ADOXYZ
- where id=".$db->Param('zid')." and created>=".$db->Param('ZDATE')."",
- $array);
- if ($id != 1) Err("Bad bind; id=$id");
- else echo "<br>Bind date/integer passed";
-
- $db->debug = false;
- $ADODB_FETCH_MODE = ADODB_FETCH_ASSOC;
- //////////////////////////////////////////////////////////////////////////////////////////
-
- $rs = $db->Execute("select * from ADOXYZ where firstname = 'not known'");
- if (!$rs || !$rs->EOF) print "<p><b>Error on empty recordset</b></p>";
- else if ($rs->RecordCount() != 0) {
- print "<p><b>Error on RecordCount. Should be 0. Was ".$rs->RecordCount()."</b></p>";
- print_r($rs->fields);
- }
- if ($db->databaseType !== 'odbc') {
- $rs = &$db->Execute("select id,firstname,lastname,created,".$db->random." from ADOXYZ order by id");
- if ($rs) {
- if ($rs->RecordCount() != 50) {
- print "<p><b>RecordCount returns ".$rs->RecordCount().", should be 50</b></p>";
- adodb_pr($rs->GetArray());
- $poc = $rs->PO_RecordCount('ADOXYZ');
- if ($poc == 50) print "<p> PO_RecordCount passed</p>";
- else print "<p><b>PO_RecordCount returns wrong value: $poc</b></p>";
- } else print "<p>RecordCount() passed</p>";
- if (isset($rs->fields['firstname'])) print '<p>The fields columns can be indexed by column name.</p>';
- else {
- Err( '<p>The fields columns <i>cannot</i> be indexed by column name.</p>');
- print_r($rs->fields);
- }
- if (empty($_GET['hide'])) rs2html($rs);
- }
- else print "<p><b>Error in Execute of SELECT with random</b></p>";
- }
- $val = $db->GetOne("select count(*) from ADOXYZ");
- if ($val == 50) print "<p>GetOne returns ok</p>";
- else print "<p><b>Fail: GetOne returns $val</b></p>";
-
- $ADODB_FETCH_MODE = ADODB_FETCH_NUM;
- $val = $db->GetRow("select count(*) from ADOXYZ");
- if ($val[0] == 50 and sizeof($val) == 1) print "<p>GetRow returns ok</p>";
- else {
- print_r($val);
- print "<p><b>Fail: GetRow returns {$val[0]}</b></p>";
- }
-
- print "<p>FetchObject/FetchNextObject Test</p>";
- $rs = $db->Execute('select * from ADOXYZ');
- if ($rs) {
- if (empty($rs->connection)) print "<b>Connection object missing from recordset</b></br>";
-
- while ($o = $rs->FetchNextObject()) { // calls FetchObject internally
- if (!is_string($o->FIRSTNAME) || !is_string($o->LASTNAME)) {
- print_r($o);
- print "<p><b>Firstname is not string</b></p>";
- break;
- }
- }
- } else {
- print "<p><b>Failed rs</b></p>";
- die("<p>ADOXYZ table cannot be read - die()");
- }
- $ADODB_FETCH_MODE = ADODB_FETCH_ASSOC;
- print "<p>FetchObject/FetchNextObject Test 2</p>";
- #$db->debug=99;
- $rs = $db->Execute('select * from ADOXYZ');
- if (empty($rs->connection)) print "<b>Connection object missing from recordset</b></br>";
- print_r($rs->fields);
- while ($o = $rs->FetchNextObject()) { // calls FetchObject internally
- if (!is_string($o->FIRSTNAME) || !is_string($o->LASTNAME)) {
- print_r($o);
- print "<p><b>Firstname is not string</b></p>";
- break;
- }
- }
- $ADODB_FETCH_MODE = ADODB_FETCH_NUM;
-
- $savefetch = $ADODB_FETCH_MODE;
- $ADODB_FETCH_MODE = ADODB_FETCH_ASSOC;
-
- print "<p>CacheSelectLimit Test</p>";
- $db->debug=1;
- $rs = $db->CacheSelectLimit(' select id, firstname from ADOXYZ order by id',2);
-
- if ($rs && !$rs->EOF) {
- if (isset($rs->fields[0])) {
- Err("ASSOC has numeric fields");
- print_r($rs->fields);
- }
- if ($rs->fields['id'] != 1) {Err("Error"); print_r($rs->fields);};
- if (trim($rs->fields['firstname']) != 'Caroline') {print Err("Error 2"); print_r($rs->fields);};
-
- $rs->MoveNext();
- if ($rs->fields['id'] != 2) {Err("Error 3"); print_r($rs->fields);};
- $rs->MoveNext();
- if (!$rs->EOF) {
- Err("Error EOF");
- print_r($rs);
- }
- }
-
- print "<p>FETCH_MODE = ASSOC: Should get 1, Caroline</p>";
- $rs = &$db->SelectLimit('select id,firstname from ADOXYZ order by id',2);
- if ($rs && !$rs->EOF) {
- if (ADODB_ASSOC_CASE == 2) {
- $id = 'ID';
- $fname = 'FIRSTNAME';
- }else {
- $id = 'id';
- $fname = 'firstname';
- }
- if ($rs->fields[$id] != 1) {Err("Error 1"); print_r($rs->fields);};
- if (trim($rs->fields[$fname]) != 'Caroline') {Err("Error 2"); print_r($rs->fields);};
- $rs->MoveNext();
- if ($rs->fields[$id] != 2) {Err("Error 3"); print_r($rs->fields);};
- $rs->MoveNext();
- if (!$rs->EOF) Err("Error EOF");
- else if (is_array($rs->fields) || $rs->fields) {
- Err("Error: ## fields should be set to false on EOF");
- print_r($rs->fields);
- }
- }
-
- $ADODB_FETCH_MODE = ADODB_FETCH_NUM;
- print "<p>FETCH_MODE = NUM: Should get 1, Caroline</p>";
- $rs = &$db->SelectLimit('select id,firstname from ADOXYZ order by id',1);
- if ($rs && !$rs->EOF) {
- if (isset($rs->fields['id'])) Err("FETCH_NUM has ASSOC fields");
- if ($rs->fields[0] != 1) {Err("Error 1"); print_r($rs->fields);};
- if (trim($rs->fields[1]) != 'Caroline') {Err("Error 2");print_r($rs->fields);};
- $rs->MoveNext();
- if (!$rs->EOF) Err("Error EOF");
-
- }
- $ADODB_FETCH_MODE = $savefetch;
-
- $db->debug = false;
- print "<p>GetRowAssoc Upper: Should get 1, Caroline</p>";
- $rs = &$db->SelectLimit('select id,firstname from ADOXYZ order by id',1);
- if ($rs && !$rs->EOF) {
- $arr = &$rs->GetRowAssoc();
- if ($arr['ID'] != 1) {Err("Error 1");print_r($arr);};
- if (trim($arr['FIRSTNAME']) != 'Caroline') {Err("Error 2"); print_r($arr);};
- $rs->MoveNext();
- if (!$rs->EOF) Err("Error EOF");
-
- }
- print "<p>GetRowAssoc Lower: Should get 1, Caroline</p>";
- $rs = &$db->SelectLimit('select id,firstname from ADOXYZ order by id',1);
- if ($rs && !$rs->EOF) {
- $arr = &$rs->GetRowAssoc(false);
- if ($arr['id'] != 1) {Err("Error 1"); print_r($arr);};
- if (trim($arr['firstname']) != 'Caroline') {Err("Error 2"); print_r($arr);};
-
- }
-
- print "<p>GetCol Test</p>";
- $col = $db->GetCol('select distinct firstname from adoxyz order by 1');
- if (!is_array($col)) Err("Col size is wrong");
- if (trim($col[0]) != 'Alan' or trim($col[9]) != 'Yat Sun') Err("Col elements wrong");
-
- $db->debug = true;
-
-
- echo "<p>Date Update Test</p>";
- $zdate = date('Y-m-d',time()+3600*24);
- $zdate = $db->DBDate($zdate);
- $db->Execute("update ADOXYZ set created=$zdate where id=1");
- $row = $db->GetRow("select created,firstname from ADOXYZ where id=1");
- print_r($row); echo "<br>";
-
-
-
- print "<p>SelectLimit Distinct Test 1: Should see Caroline, John and Mary</p>";
- $rs = &$db->SelectLimit('select distinct * from ADOXYZ order by id',3);
-
-
- if ($rs && !$rs->EOF) {
- if (trim($rs->fields[1]) != 'Caroline') Err("Error 1 (exp Caroline), ".$rs->fields[1]);
- $rs->MoveNext();
-
- if (trim($rs->fields[1]) != 'John') Err("Error 2 (exp John), ".$rs->fields[1]);
- $rs->MoveNext();
- if (trim($rs->fields[1]) != 'Mary') Err("Error 3 (exp Mary),".$rs->fields[1]);
- $rs->MoveNext();
- if (! $rs->EOF) Err("Error EOF");
- //rs2html($rs);
- } else Err("Failed SelectLimit Test 1");
-
- print "<p>SelectLimit Test 2: Should see Mary, George and Mr. Alan</p>";
- $rs = &$db->SelectLimit('select * from ADOXYZ order by id',3,2);
- if ($rs && !$rs->EOF) {
- if (trim($rs->fields[1]) != 'Mary') Err("Error 1 - No Mary, instead: ".$rs->fields[1]);
- $rs->MoveNext();
- if (trim($rs->fields[1]) != 'George')Err("Error 2 - No George, instead: ".$rs->fields[1]);
- $rs->MoveNext();
- if (trim($rs->fields[1]) != 'Mr. Alan') Err("Error 3 - No Mr. Alan, instead: ".$rs->fields[1]);
- $rs->MoveNext();
- if (! $rs->EOF) Err("Error EOF");
- // rs2html($rs);
- }
- else Err("Failed SelectLimit Test 2 ". ($rs ? 'EOF':'no RS'));
-
- print "<p>SelectLimit Test 3: Should see Wai Hun and Steven</p>";
- $db->debug=1;
- global $A; $A=1;
- $rs = &$db->SelectLimit('select * from ADOXYZ order by id',-1,48);
- $A=0;
- if ($rs && !$rs->EOF) {
- if (empty($rs->connection)) print "<b>Connection object missing from recordset</b></br>";
- if (trim($rs->fields[1]) != 'Wai Hun') Err("Error 1 ".$rs->fields[1]);
- $rs->MoveNext();
- if (trim($rs->fields[1]) != 'Steven') Err("Error 2 ".$rs->fields[1]);
- $rs->MoveNext();
- if (! $rs->EOF) {
- Err("Error EOF");
- }
- //rs2html($rs);
- }
- else Err("Failed SelectLimit Test 3");
- $db->debug = false;
-
-
- $rs = &$db->Execute("select * from ADOXYZ order by id");
- print "<p>Testing Move()</p>";
- if (!$rs)Err( "Failed Move SELECT");
- else {
- if (!$rs->Move(2)) {
- if (!$rs->canSeek) print "<p>$db->databaseType: <b>Move(), MoveFirst() nor MoveLast() not supported.</b></p>";
- else print '<p><b>RecordSet->canSeek property should be set to false</b></p>';
- } else {
- $rs->MoveFirst();
- if (trim($rs->Fields("firstname")) != 'Caroline') {
- print "<p><b>$db->databaseType: MoveFirst failed -- probably cannot scroll backwards</b></p>";
- }
- else print "MoveFirst() OK<BR>";
-
- // Move(3) tests error handling -- MoveFirst should not move cursor
- $rs->Move(3);
- if (trim($rs->Fields("firstname")) != 'George') {
- print '<p>'.$rs->Fields("id")."<b>$db->databaseType: Move(3) failed</b></p>";
- } else print "Move(3) OK<BR>";
-
- $rs->Move(7);
- if (trim($rs->Fields("firstname")) != 'Yat Sun') {
- print '<p>'.$rs->Fields("id")."<b>$db->databaseType: Move(7) failed</b></p>";
- print_r($rs);
- } else print "Move(7) OK<BR>";
- if ($rs->EOF) Err("Move(7) is EOF already");
- $rs->MoveLast();
- if (trim($rs->Fields("firstname")) != 'Steven'){
- print '<p>'.$rs->Fields("id")."<b>$db->databaseType: MoveLast() failed</b></p>";
- print_r($rs);
- }else print "MoveLast() OK<BR>";
- $rs->MoveNext();
- if (!$rs->EOF) err("Bad MoveNext");
- if ($rs->canSeek) {
- $rs->Move(3);
- if (trim($rs->Fields("firstname")) != 'George') {
- print '<p>'.$rs->Fields("id")."<b>$db->databaseType: Move(3) after MoveLast failed</b></p>";
-
- } else print "Move(3) after MoveLast() OK<BR>";
- }
-
- print "<p>Empty Move Test";
- $rs = $db->Execute("select * from ADOXYZ where id > 0 and id < 0");
- $rs->MoveFirst();
- if (!$rs->EOF || $rs->fields) Err("Error in empty move first");
- }
- }
-
- $rs = $db->Execute('select * from ADOXYZ where id = 2');
- if ($rs->EOF || !is_array($rs->fields)) Err("Error in select");
- $rs->MoveNext();
- if (!$rs->EOF) Err("Error in EOF (xx) ");
- // $db->debug=true;
- print "<p>Testing ADODB_FETCH_ASSOC and concat: concat firstname and lastname</p>";
-
- $save = $ADODB_FETCH_MODE;
- $ADODB_FETCH_MODE = ADODB_FETCH_ASSOC;
- if ($db->dataProvider == 'postgres') {
- $sql = "select ".$db->Concat('cast(firstname as varchar)',$db->qstr(' '),'lastname')." as fullname,id,".$db->sysTimeStamp." as d from ADOXYZ";
- $rs = &$db->Execute($sql);
- } else {
- $sql = "select distinct ".$db->Concat('firstname',$db->qstr(' '),'lastname')." as fullname,id,".$db->sysTimeStamp." as d from ADOXYZ";
- $rs = &$db->Execute($sql);
- }
- if ($rs) {
- if (empty($_GET['hide'])) rs2html($rs);
- } else {
- Err( "Failed Concat:".$sql);
- }
- $ADODB_FETCH_MODE = $save;
- print "<hr>Testing GetArray() ";
- //$ADODB_FETCH_MODE = ADODB_FETCH_ASSOC;
-
- $rs = &$db->Execute("select * from ADOXYZ order by id");
- if ($rs) {
- $arr = &$rs->GetArray(10);
- if (sizeof($arr) != 10 || trim($arr[1][1]) != 'John' || trim($arr[1][2]) != 'Lim') print $arr[1][1].' '.$arr[1][2]."<b> ERROR</b><br>";
- else print " OK<BR>";
- }
-
- $arr = $db->GetArray("select x from ADOXYZ");
- $e = $db->ErrorMsg(); $e2 = $db->ErrorNo();
- echo "Testing error handling, should see illegal column 'x' error=<i>$e ($e2) </i><br>";
- if (!$e || !$e2) Err("Error handling did not work");
- print "Testing FetchNextObject for 1 object ";
- $rs = &$db->Execute("select distinct lastname,firstname from ADOXYZ where firstname='Caroline'");
- $fcnt = 0;
- if ($rs)
- while ($o = $rs->FetchNextObject()) {
- $fcnt += 1;
- }
- if ($fcnt == 1) print " OK<BR>";
- else print "<b>FAILED</b><BR>";
-
- $stmt = $db->Prepare("select * from ADOXYZ where id < 3");
- $rs = $db->Execute($stmt);
- if (!$rs) Err("Prepare failed");
- else {
- $arr = $rs->GetArray();
- if (!$arr) Err("Prepare failed 2");
- if (sizeof($arr) != 2) Err("Prepare failed 3");
- }
- print "Testing GetAssoc() ";
- $savecrecs = $ADODB_COUNTRECS;
- $ADODB_COUNTRECS = false;
- //$arr = $db->GetArray("select lastname,firstname from ADOXYZ");
- //print_r($arr);
- print "<hr>";
- $rs =& $db->Execute("select distinct lastname,firstname,created from ADOXYZ");
-
- if ($rs) {
- $arr = $rs->GetAssoc();
- //print_r($arr);
- if (empty($arr['See']) || trim(reset($arr['See'])) != 'Wai Hun') print $arr['See']." <b>ERROR</b><br>";
- else print " OK 1";
- }
-
- $arr = &$db->GetAssoc("select distinct lastname,firstname from ADOXYZ");
- if ($arr) {
- //print_r($arr);
- if (empty($arr['See']) || trim($arr['See']) != 'Wai Hun') print $arr['See']." <b>ERROR</b><br>";
- else print " OK 2<BR>";
- }
- // Comment this out to test countrecs = false
- $ADODB_COUNTRECS = $savecrecs;
- $db->debug=1;
- $query = $db->Prepare("select count(*) from ADOXYZ");
- $rs = $db->CacheExecute(10,$query);
- if (reset($rs->fields) != 50) echo Err("$cnt wrong for Prepare/CacheGetOne");
-
- for ($loop=0; $loop < 1; $loop++) {
- print "Testing GetMenu() and CacheExecute<BR>";
- $db->debug = true;
- $rs = &$db->CacheExecute(4,"select distinct firstname,lastname from ADOXYZ");
-
-
-
-
- if ($rs) print 'With blanks, Steven selected:'. $rs->GetMenu('menu','Steven').'<BR>';
- else print " Fail<BR>";
- $rs = &$db->CacheExecute(4,"select distinct firstname,lastname from ADOXYZ");
-
- if ($rs) print ' No blanks, Steven selected: '. $rs->GetMenu('menu','Steven',false).'<BR>';
- else print " Fail<BR>";
-
- $rs = &$db->CacheExecute(4,"select distinct firstname,lastname from ADOXYZ");
- if ($rs) print ' Multiple, Alan selected: '. $rs->GetMenu('menu','Alan',false,true).'<BR>';
- else print " Fail<BR>";
- print '</p><hr>';
-
- $rs = &$db->CacheExecute(4,"select distinct firstname,lastname from ADOXYZ");
- if ($rs) {
- print ' Multiple, Alan and George selected: '. $rs->GetMenu('menu',array('Alan','George'),false,true);
- if (empty($rs->connection)) print "<b>Connection object missing from recordset</b></br>";
- } else print " Fail<BR>";
- print '</p><hr>';
-
- print "Testing GetMenu3()<br>";
- $rs = $db->Execute("select ".$db->Concat('firstname',"'-'",'id').",id, lastname from ADOXYZ order by lastname,id");
- if ($rs) print "Grouped Menu: ".$rs->GetMenu3('name');
- else Err('Grouped Menu GetMenu3()');
- print "<hr>";
-
- print "Testing GetMenu2() <BR>";
- $rs = &$db->CacheExecute(4,"select distinct firstname,lastname from ADOXYZ");
- if ($rs) print 'With blanks, Steven selected:'. $rs->GetMenu2('menu',('Oey')).'<BR>';
- else print " Fail<BR>";
- $rs = &$db->CacheExecute(6,"select distinct firstname,lastname from ADOXYZ");
- if ($rs) print ' No blanks, Steven selected: '. $rs->GetMenu2('menu',('Oey'),false).'<BR>';
- else print " Fail<BR>";
- }
- echo "<h3>CacheEXecute</h3>";
-
- $ADODB_FETCH_MODE = ADODB_FETCH_NUM;
- $rs = &$db->CacheExecute(6,"select distinct firstname,lastname from ADOXYZ");
- print_r($rs->fields); echo $rs->fetchMode;echo "<br>";
- echo $rs->Fields('firstname');
-
- $ADODB_FETCH_MODE = ADODB_FETCH_ASSOC;
- $rs = &$db->CacheExecute(6,"select distinct firstname,lastname from ADOXYZ");
- print_r($rs->fields);echo "<br>";
- echo $rs->Fields('firstname');
- $db->debug = false;
-
- $ADODB_FETCH_MODE = ADODB_FETCH_NUM;
- // phplens
-
- $sql = 'select * from ADOXYZ where 0=1';
- echo "<p>**Testing '$sql' (phplens compat 1)</p>";
- $rs = &$db->Execute($sql);
- if (!$rs) err( "<b>No recordset returned for '$sql'</b>");
- if (!$rs->FieldCount()) err( "<b>No fields returned for $sql</b>");
- if (!$rs->FetchField(1)) err( "<b>FetchField failed for $sql</b>");
-
- $sql = 'select * from ADOXYZ order by 1';
- echo "<p>**Testing '$sql' (phplens compat 2)</p>";
- $rs = &$db->Execute($sql);
- if (!$rs) err( "<b>No recordset returned for '$sql'<br>".$db->ErrorMsg()."</b>");
-
-
- $sql = 'select * from ADOXYZ order by 1,1';
- echo "<p>**Testing '$sql' (phplens compat 3)</p>";
- $rs = &$db->Execute($sql);
- if (!$rs) err( "<b>No recordset returned for '$sql'<br>".$db->ErrorMsg()."</b>");
-
-
- // Move
- $rs1 = &$db->Execute("select id from ADOXYZ where id <= 2 order by 1");
- $rs2 = &$db->Execute("select id from ADOXYZ where id = 3 or id = 4 order by 1");
-
- if ($rs1) $rs1->MoveLast();
- if ($rs2) $rs2->MoveLast();
-
- if (empty($rs1) || empty($rs2) || $rs1->fields[0] != 2 || $rs2->fields[0] != 4) {
- $a = $rs1->fields[0];
- $b = $rs2->fields[0];
- print "<p><b>Error in multiple recordset test rs1=$a rs2=$b (should be rs1=2 rs2=4)</b></p>";
- } else
- print "<p>Testing multiple recordsets OK</p>";
-
-
- echo "<p> GenID test: ";
- for ($i=1; $i <= 10; $i++)
- echo "($i: ",$val = $db->GenID($db->databaseType.'abcseq6' ,5), ") ";
- if ($val == 0) Err("GenID not supported");
-
- if ($val) {
- $db->DropSequence('abc_seq2');
- $db->CreateSequence('abc_seq2');
- $val = $db->GenID('abc_seq2');
- $db->DropSequence('abc_seq2');
- $db->CreateSequence('abc_seq2');
- $val = $db->GenID('abc_seq2');
- if ($val != 1) Err("Drop and Create Sequence not supported ($val)");
- }
- echo "<p>";
-
- if (substr($db->dataProvider,0,3) != 'notused') { // used to crash ado
- $sql = "select firstnames from adoxyz";
- print "<p>Testing execution of illegal statement: <i>$sql</i></p>";
- if ($db->Execute($sql) === false) {
- print "<p>This returns the following ErrorMsg(): <i>".$db->ErrorMsg()."</i> and ErrorNo(): ".$db->ErrorNo().'</p>';
- } else
- print "<p><b>Error in error handling -- Execute() should return false</b></p>";
- } else
- print "<p><b>ADO skipped error handling of bad select statement</b></p>";
-
- print "<p>ASSOC TEST 2<br>";
- $ADODB_FETCH_MODE = ADODB_FETCH_ASSOC;
- $rs = $db->query('select * from adoxyz order by id');
- if ($ee = $db->ErrorMsg()) {
- Err("Error message=$ee");
- }
- if ($ee = $db->ErrorNo()) {
- Err("Error No = $ee");
- }
- print_r($rs->fields);
- for($i=0;$i<$rs->FieldCount();$i++)
- {
- $fld=$rs->FetchField($i);
- print "<br> Field name is ".$fld->name;
- print " ".$rs->Fields($fld->name);
- }
-
-
- print "<p>BOTH TEST 2<br>";
- if ($db->dataProvider == 'ado') {
- print "<b>ADODB_FETCH_BOTH not supported</b> for dataProvider=".$db->dataProvider."<br>";
- } else {
- $ADODB_FETCH_MODE = ADODB_FETCH_BOTH;
- $rs = $db->query('select * from adoxyz order by id');
- for($i=0;$i<$rs->FieldCount();$i++)
- {
- $fld=$rs->FetchField($i);
- print "<br> Field name is ".$fld->name;
- print " ".$rs->Fields($fld->name);
- }
- }
-
- print "<p>NUM TEST 2<br>";
- $ADODB_FETCH_MODE = ADODB_FETCH_NUM;
- $rs = $db->query('select * from adoxyz order by id');
- for($i=0;$i<$rs->FieldCount();$i++)
- {
- $fld=$rs->FetchField($i);
- print "<br> Field name is ".$fld->name;
- print " ".$rs->Fields($fld->name);
- }
-
- print "<p>ASSOC Test of SelectLimit<br>";
- $ADODB_FETCH_MODE = ADODB_FETCH_ASSOC;
- $rs = $db->selectlimit('select * from adoxyz order by id',3,4);
- $cnt = 0;
- while ($rs && !$rs->EOF) {
- $cnt += 1;
- if (!isset($rs->fields['firstname'])) {
- print "<br><b>ASSOC returned numeric field</b></p>";
- break;
- }
- $rs->MoveNext();
- }
- if ($cnt != 3) print "<br><b>Count should be 3, instead it was $cnt</b></p>";
-
-
- $ADODB_FETCH_MODE = ADODB_FETCH_NUM;
- if ($db->sysDate) {
- $saved = $db->debug;
- $db->debug = 1;
- $rs = $db->Execute("select {$db->sysDate} from adoxyz where id=1");
- if (ADORecordSet::UnixDate(date('Y-m-d')) != $rs->UnixDate($rs->fields[0])) {
- print "<p><b>Invalid date {$rs->fields[0]}</b></p>";
- } else
- print "<p>Passed \$sysDate test ({$rs->fields[0]})</p>";
-
- print_r($rs->FetchField(0));
- print time();
- $db->debug=$saved;
- } else {
- print "<p><b>\$db->sysDate not defined</b></p>";
- }
-
- print "<p>Test CSV</p>";
- include_once('../toexport.inc.php');
- //$ADODB_FETCH_MODE = ADODB_FETCH_ASSOC;
- $rs = $db->SelectLimit('select id,firstname,lastname,created,\'He, he\' he,\'"\' q from adoxyz',10);
-
- print "<pre>";
- print rs2csv($rs);
- print "</pre>";
-
- $rs = $db->SelectLimit('select id,firstname,lastname,created,\'The "young man", he said\' from adoxyz',10);
-
- if (PHP_VERSION < 5) {
- print "<pre>";
- rs2tabout($rs);
- print "</pre>";
- }
- //print " CacheFlush ";
- //$db->CacheFlush();
- $date = $db->SQLDate('d-m-M-Y-\QQ h:i:s A');
- $sql = "SELECT $date from ADOXYZ";
- print "<p>Test SQLDate: ".htmlspecialchars($sql)."</p>";
- $rs = $db->SelectLimit($sql,1);
- $d = date('d-m-M-Y-').'Q'.(ceil(date('m')/3.0)).date(' h:i:s A');
- if (!$rs) Err("SQLDate query returned no recordset");
- else if ($d != $rs->fields[0]) Err("SQLDate 1 failed expected: <br>act:$d <br>sql:".$rs->fields[0]);
-
- $date = $db->SQLDate('d-m-M-Y-\QQ h:i:s A',$db->DBDate("1974-02-25"));
- $sql = "SELECT $date from ADOXYZ";
- print "<p>Test SQLDate: ".htmlspecialchars($sql)."</p>";
- $rs = $db->SelectLimit($sql,1);
- $ts = ADOConnection::UnixDate('1974-02-25');
- $d = date('d-m-M-Y-',$ts).'Q'.(ceil(date('m',$ts)/3.0)).date(' h:i:s A',$ts);
- if (!$rs) {
- Err("SQLDate query returned no recordset");
- echo $db->ErrorMsg(),'<br>';
- } else if ($d != $rs->fields[0]) Err("SQLDate 2 failed expected: <br>act:$d <br>sql:".$rs->fields[0]);
-
-
- print "<p>Test Filter</p>";
- $db->debug = 1;
-
- $rs = $db->SelectLimit('select * from ADOXYZ where id < 3 order by id');
-
- $rs = RSFilter($rs,'do_strtolower');
- if (trim($rs->fields[1]) != 'caroline' && trim($rs->fields[2]) != 'miranda') {
- err('**** RSFilter failed');
- print_r($rs->fields);
- }
-
- rs2html($rs);
-
- $db->debug=1;
-
-
- print "<p>Test Replace</p>";
-
- $ret = $db->Replace('adoxyz',
- array('id'=>1,'firstname'=>'Caroline','lastname'=>'Miranda'),
- array('id'),
- $autoq = true);
- if (!$ret) echo "<p>Error in replacing existing record</p>";
- else {
- $saved = $db->debug;
- $db->debug = 0;
- $savec = $ADODB_COUNTRECS;
- $ADODB_COUNTRECS = true;
- $rs = $db->Execute('select * FROM ADOXYZ where id=1');
- $db->debug = $saved;
- if ($rs->RecordCount() != 1) {
- $cnt = $rs->RecordCount();
- rs2html($rs);
- print "<b>Error - Replace failed, count=$cnt</b><p>";
- }
- $ADODB_COUNTRECS = $savec;
- }
- $ret = $db->Replace('adoxyz',
- array('id'=>1000,'firstname'=>'Harun','lastname'=>'Al-Rashid'),
- array('id','firstname'),
- $autoq = true);
- if ($ret != 2) print "<b>Replace failed: </b>";
- print "test A return value=$ret (2 expected) <p>";
-
- $ret = $db->Replace('adoxyz',
- array('id'=>1000,'firstname'=>'Sherazade','lastname'=>'Al-Rashid'),
- 'id',
- $autoq = true);
- if ($ret != 1)
- if ($db->dataProvider == 'ibase' && $ret == 2);
- else print "<b>Replace failed: </b>";
- print "test B return value=$ret (1 or if ibase then 2 expected) <p>";
-
- print "<h3>rs2rs Test</h3>";
-
- $rs = $db->Execute('select * from adoxyz where id>= 1 order by id');
- $rs = $db->_rs2rs($rs);
- $rs->valueX = 'X';
- $rs->MoveNext();
- $rs = $db->_rs2rs($rs);
- if (!isset($rs->valueX)) err("rs2rs does not preserve array recordsets");
- if (reset($rs->fields) != 1) err("rs2rs does not move to first row: id=".reset($rs->fields));
-
- /////////////////////////////////////////////////////////////
- include_once('../pivottable.inc.php');
- print "<h3>Pivot Test</h3>";
- $db->debug=true;
- $sql = PivotTableSQL(
- $db, # adodb connection
- 'adoxyz', # tables
- 'firstname', # row fields
- 'lastname', # column fields
- false, # join
- 'ID', # sum
- 'Sum ', # label for sum
- 'sum', # aggregate function
- true
- );
- $rs = $db->Execute($sql);
- if ($rs) rs2html($rs);
- else Err("Pivot sql error");
-
- $pear = true; //true;
- $db->debug=false;
-
- if ($pear) {
- // PEAR TESTS BELOW
- $ADODB_FETCH_MODE = ADODB_FETCH_NUM;
-
- include_once "PEAR.php";
- $rs = $db->query('select * from adoxyz where id>0 and id<10 order by id');
-
- $i = 0;
- if ($rs && !$rs->EOF) {
- while ($arr = $rs->fetchRow()) {
- $i++;
- //print "$i ";
- if ($arr[0] != $i) {
- print_r($arr);
- print "<p><b>PEAR DB emulation error 1.</b></p>";
- $pear = false;
- break;
- }
- }
- $rs->Close();
- }
-
-
- if ($i != $db->GetOne('select count(*) from adoxyz where id>0 and id<10')) {
- print "<p><b>PEAR DB emulation error 1.1 EOF ($i)</b></p>";
- $pear = false;
- }
-
- $rs = $db->limitQuery('select * from adoxyz where id>0 order by id',$i=3,$top=3);
- $i2 = $i;
- if ($rs && !$rs->EOF) {
-
- while (!is_object($rs->fetchInto($arr))) {
- $i2++;
-
- // print_r($arr);
- // print "$i ";print_r($arr);
- if ($arr[0] != $i2) {
- print "<p><b>PEAR DB emulation error 2.</b></p>";
- $pear = false;
- break;
- }
- }
- $rs->Close();
- }
- if ($i2 != $i+$top) {
- print "<p><b>PEAR DB emulation error 2.1 EOF (correct=$i+$top, actual=$i2)</b></p>";
- $pear = false;
- }
- }
- if ($pear) print "<p>PEAR DB emulation passed.</p>";
- flush();
-
-
- $rs = $db->SelectLimit("select ".$db->sysDate." from adoxyz",1);
- $date = $rs->fields[0];
- if (!$date) Err("Bad sysDate");
- else {
- $ds = $db->UserDate($date,"d m Y");
- if ($ds != date("d m Y")) Err("Bad UserDate: ".$ds.' expected='.date("d m Y"));
- else echo "Passed UserDate: $ds<p>";
- }
- $db->debug=1;
- if ($db->dataProvider == 'oci8')
- $rs = $db->SelectLimit("select to_char(".$db->sysTimeStamp.",'YYYY-MM-DD HH24:MI:SS') from adoxyz",1);
- else
- $rs = $db->SelectLimit("select ".$db->sysTimeStamp." from adoxyz",1);
- $date = $rs->fields[0];
- if (!$date) Err("Bad sysTimeStamp");
- else {
- $ds = $db->UserTimeStamp($date,"H \\h\\r\\s-d m Y");
- if ($ds != date("H \\h\\r\\s-d m Y")) Err("Bad UserTimeStamp: ".$ds.", correct is ".date("H \\h\\r\\s-d m Y"));
- else echo "Passed UserTimeStamp: $ds<p>";
-
- $date = 100;
- $ds = $db->UserTimeStamp($date,"H \\h\\r\\s-d m Y");
- $ds2 = date("H \\h\\r\\s-d m Y",$date);
- if ($ds != $ds2) Err("Bad UserTimeStamp 2: $ds: $ds2");
- else echo "Passed UserTimeStamp 2: $ds<p>";
- }
- flush();
-
- if ($db->hasTransactions) {
- //$db->debug=1;
- echo "<p>Testing StartTrans CompleteTrans</p>";
- $db->raiseErrorFn = false;
- $db->StartTrans();
- $rs = $db->Execute('select * from notable');
- $db->StartTrans();
- $db->BeginTrans();
- $db->Execute("update ADOXYZ set firstname='Carolx' where id=1");
- $db->CommitTrans();
- $db->CompleteTrans();
- $rez = $db->CompleteTrans();
- if ($rez !== false) {
- if (is_null($rez)) Err("Error: _transOK not modified");
- else Err("Error: CompleteTrans (1) should have failed");
- } else {
- $name = $db->GetOne("Select firstname from ADOXYZ where id=1");
- if ($name == "Carolx") Err("Error: CompleteTrans (2) should have failed");
- else echo "<p> -- Passed StartTrans test1 - rolling back</p>";
- }
-
- $db->StartTrans();
- $db->BeginTrans();
- $db->Execute("update ADOXYZ set firstname='Carolx' where id=1");
- $db->RollbackTrans();
- $rez = $db->CompleteTrans();
- if ($rez !== true) Err("Error: CompleteTrans (1) should have succeeded");
- else {
- $name = $db->GetOne("Select firstname from ADOXYZ where id=1");
- if (trim($name) != "Carolx") Err("Error: CompleteTrans (2) should have succeeded, returned name=$name");
- else echo "<p> -- Passed StartTrans test2 - commiting</p>";
- }
- }
- flush();
- $saved = $db->debug;
- $db->debug=1;
- $cnt = _adodb_getcount($db, 'select * from ADOXYZ where firstname in (select firstname from ADOXYZ)');
- echo "<b>Count=</b> $cnt";
- $db->debug=$saved;
-
- global $TESTERRS;
- $debugerr = true;
-
- global $ADODB_LANG;$ADODB_LANG = 'fr';
- $db->debug = false;
- $TESTERRS = 0;
- $db->raiseErrorFn = 'adodb_test_err';
- global $ERRNO; // from adodb_test_err
- $db->Execute('select * from nowhere');
- $metae = $db->MetaError($ERRNO);
- if ($metae !== DB_ERROR_NOSUCHTABLE) print "<p><b>MetaError=".$metae." wrong</b>, should be ".DB_ERROR_NOSUCHTABLE."</p>";
- else print "<p>MetaError ok (".DB_ERROR_NOSUCHTABLE."): ".$db->MetaErrorMsg($metae)."</p>";
- if ($TESTERRS != 1) print "<b>raiseErrorFn select nowhere failed</b><br>";
- $rs = $db->Execute('select * from adoxyz');
- if ($debugerr) print " Move";
- $rs->Move(100);
- $rs->_queryID = false;
- if ($debugerr) print " MoveNext";
- $rs->MoveNext();
- if ($debugerr) print " $rs=false";
- $rs = false;
-
- flush();
-
- print "<p>SetFetchMode() tests</p>";
- $db->SetFetchMode(ADODB_FETCH_ASSOC);
- $rs = $db->SelectLimit('select firstname from adoxyz',1);
- if (!isset($rs->fields['firstname'])) Err("BAD FETCH ASSOC");
-
- $ADODB_FETCH_MODE = ADODB_FETCH_NUM;
- $rs = $db->SelectLimit('select firstname from adoxyz',1);
- //var_dump($rs->fields);
- if (!isset($rs->fields['firstname'])) Err("BAD FETCH ASSOC");
-
- $ADODB_FETCH_MODE = ADODB_FETCH_ASSOC;
- $db->SetFetchMode(ADODB_FETCH_NUM);
- $rs = $db->SelectLimit('select firstname from adoxyz',1);
- if (!isset($rs->fields[0])) Err("BAD FETCH NUM");
-
- flush();
-
- print "<p>Test MetaTables again with SetFetchMode()</p>";
- $ADODB_FETCH_MODE = ADODB_FETCH_ASSOC;
- $db->SetFetchMode(ADODB_FETCH_ASSOC);
- print_r($db->MetaTables());
- print "<p>";
-
- ////////////////////////////////////////////////////////////////////
-
- print "<p>Testing Bad Connection</p>";
- flush();
-
- if (true || PHP_VERSION < 5) {
- if ($db->dataProvider == 'odbtp') $db->databaseType = 'odbtp';
- $conn = NewADOConnection($db->databaseType);
- $conn->raiseErrorFn = 'adodb_test_err';
- if (1) $conn->PConnect('abc','baduser','badpassword');
- if ($TESTERRS == 2) print "raiseErrorFn tests passed<br>";
- else print "<b>raiseErrorFn tests failed ($TESTERRS)</b><br>";
-
- flush();
- }
- ////////////////////////////////////////////////////////////////////
-
- global $nocountrecs;
-
- if (isset($nocountrecs) && $ADODB_COUNTRECS) err("Error: \$ADODB_COUNTRECS is set");
- if (empty($nocountrecs) && $ADODB_COUNTRECS==false) err("Error: \$ADODB_COUNTRECS is not set");
-
- flush();
-?>
- </p>
- <table width=100% ><tr><td bgcolor=beige> </td></tr></table>
- </p></form>
-<?php
-
- if ($rs1) $rs1->Close();
- if ($rs2) $rs2->Close();
- if ($rs) $rs->Close();
- $db->Close();
-
- if ($db->transCnt != 0) Err("Error in transCnt=$db->transCnt (should be 0)");
-
-
- printf("<p>Total queries=%d; total cached=%d</p>",$EXECS+$CACHED, $CACHED);
- flush();
-}
-
-function adodb_test_err($dbms, $fn, $errno, $errmsg, $p1=false, $p2=false)
-{
-global $TESTERRS,$ERRNO;
-
- $ERRNO = $errno;
- $TESTERRS += 1;
- print "<i>** $dbms ($fn): errno=$errno errmsg=$errmsg ($p1,$p2)</i><br>";
-}
-
-//--------------------------------------------------------------------------------------
-
-
-@set_time_limit(240); // increase timeout
-
-include("../tohtml.inc.php");
-include("../adodb.inc.php");
-include("../rsfilter.inc.php");
-
-/* White Space Check */
-
-if (isset($_SERVER['argv'][1])) {
- //print_r($_SERVER['argv']);
- $_GET[$_SERVER['argv'][1]] = 1;
-}
-
-if (@$_SERVER['COMPUTERNAME'] == 'TIGRESS') {
- CheckWS('mysqlt');
- CheckWS('postgres');
- CheckWS('oci8po');
-
- CheckWS('firebird');
- CheckWS('sybase');
- if (!ini_get('safe_mode')) CheckWS('informix');
-
- CheckWS('ado_mssql');
- CheckWS('ado_access');
- CheckWS('mssql');
-
- CheckWS('vfp');
- CheckWS('sqlanywhere');
- CheckWS('db2');
- CheckWS('access');
- CheckWS('odbc_mssql');
- CheckWS('firebird15');
- //
- CheckWS('oracle');
- CheckWS('proxy');
- CheckWS('fbsql');
- print "White Space Check complete<p>";
-}
-if (sizeof($_GET) == 0) $testmysql = true;
-
-
-foreach($_GET as $k=>$v) {
- //global $$k;
- $$k = $v;
-}
-if (strpos(PHP_VERSION,'5') === 0) {
- //$testaccess=1;
- //$testmssql = 1;
- //$testsqlite=1;
-}
-?>
-<html>
-<title>ADODB Testing</title>
-<body bgcolor=white>
-<H1>ADODB Test</H1>
-
-This script tests the following databases: Interbase, Oracle, Visual FoxPro, Microsoft Access (ODBC and ADO), MySQL, MSSQL (ODBC, native, ADO).
-There is also support for Sybase, PostgreSQL.</p>
-For the latest version of ADODB, visit <a href=http://adodb.sourceforge.net/>adodb.sourceforge.net</a>.</p>
-
-Test <a href=test4.php>GetInsertSQL/GetUpdateSQL</a>
- <a href=testsessions.php>Sessions</a>
- <a href=testpaging.php>Paging</a>
- <a href=test-perf.php>Perf Monitor</a><p>
-<?php
-include('./testdatabases.inc.php');
-
-echo "<br>vers=",ADOConnection::Version();
-
-
-include_once('../adodb-time.inc.php');
-if (isset($_GET['time'])) adodb_date_test();
-
-?>
-<p><i>ADODB Database Library (c) 2000-2005 John Lim. All rights reserved. Released under BSD and LGPL, PHP <?php echo PHP_VERSION ?>.</i></p>
-</body>
-</html>
diff -urN moodle/lib/adodb/tests/test-php5.php moodle.adodb/lib/adodb/tests/test-php5.php
--- moodle/lib/adodb/tests/test-php5.php 2005-11-10 21:05:25.000000000 -0500
+++ moodle.adodb/lib/adodb/tests/test-php5.php 1969-12-31 19:00:00.000000000 -0500
@@ -1,78 +0,0 @@
-<?php
-/*
- V4.66 28 Sept 2005 (c) 2000-2005 John Lim (jlim@natsoft.com.my). All rights reserved.
- Released under both BSD license and Lesser GPL library license.
- Whenever there is any discrepancy between the two licenses,
- the BSD license will take precedence.
- Set tabs to 8.
- */
-
-
-error_reporting(E_ALL);
-
-$path = dirname(__FILE__);
-
-include("$path/../adodb-exceptions.inc.php");
-include("$path/../adodb.inc.php");
-
-echo "<h3>PHP ".PHP_VERSION."</h3>\n";
-try {
-
-$dbt = 'mysql';
-
-try {
-switch($dbt) {
-case 'oci8po':
- $db = NewADOConnection("oci8po");
-
- $db->Connect('','scott','natsoft');
- break;
-default:
-case 'mysql':
- $db = NewADOConnection("mysql");
- $db->Connect('localhost','roots','','northwind');
- break;
-
-case 'mysqli':
- $db = NewADOConnection("mysqli://root:@localhost/northwind");
- //$db->Connect('localhost','root','','test');
- break;
-}
-} catch (exception $e){
- echo "Connect Failed";
- adodb_pr($e);
- die();
-}
-
-$db->debug=1;
-
-$cnt = $db->GetOne("select count(*) from adoxyz where ?<id and id<?",array(10,20));
-$stmt = $db->Prepare("select * from adoxyz where ?<id and id<?");
-if (!$stmt) echo $db->ErrorMsg(),"\n";
-$rs = $db->Execute($stmt,array(10,20));
-
-echo "<hr> Foreach Iterator Test (rand=".rand().")<hr>";
-$i = 0;
-foreach($rs as $v) {
- $i += 1;
- echo "rec $i: "; $s1 = adodb_pr($v,true); $s2 = adodb_pr($rs->fields,true);
- if ($s1 != $s2 && !empty($v)) {adodb_pr($s1); adodb_pr($s2);}
- else echo "passed<br>";
- flush();
-}
-
-
-if ($i != $cnt) die("actual cnt is $i, cnt should be $cnt\n");
-else echo "Count $i is correct<br>";
-
-$rs = $db->Execute("select bad from badder");
-
-} catch (exception $e) {
- adodb_pr($e);
- echo "<h3>adodb_backtrace:</h3>\n";
- $e = adodb_backtrace($e->gettrace());
-}
-
-$rs = $db->Execute("select distinct id, firstname,lastname from adoxyz order by id");
-echo "Result=\n",$rs;
-?>
\ No newline at end of file
diff -urN moodle/lib/adodb/tests/test_rs_array.php moodle.adodb/lib/adodb/tests/test_rs_array.php
--- moodle/lib/adodb/tests/test_rs_array.php 2005-05-24 02:07:02.000000000 -0400
+++ moodle.adodb/lib/adodb/tests/test_rs_array.php 1969-12-31 19:00:00.000000000 -0500
@@ -1,47 +0,0 @@
-<?php
-
-include_once('../adodb.inc.php');
-$rs = new ADORecordSet_array();
-
-$array = array(
-array ('Name', 'Age'),
-array ('John', '12'),
-array ('Jill', '8'),
-array ('Bill', '49')
-);
-
-$typearr = array('C','I');
-
-
-$rs->InitArray($array,$typearr);
-
-while (!$rs->EOF) {
- print_r($rs->fields);echo "<br>";
- $rs->MoveNext();
-}
-
-echo "<hr> 1 Seek<br>";
-$rs->Move(1);
-while (!$rs->EOF) {
- print_r($rs->fields);echo "<br>";
- $rs->MoveNext();
-}
-
-echo "<hr> 2 Seek<br>";
-$rs->Move(2);
-while (!$rs->EOF) {
- print_r($rs->fields);echo "<br>";
- $rs->MoveNext();
-}
-
-echo "<hr> 3 Seek<br>";
-$rs->Move(3);
-while (!$rs->EOF) {
- print_r($rs->fields);echo "<br>";
- $rs->MoveNext();
-}
-
-
-
-die();
-?>
\ No newline at end of file
diff -urN moodle/lib/adodb/tests/testsessions.php moodle.adodb/lib/adodb/tests/testsessions.php
--- moodle/lib/adodb/tests/testsessions.php 2005-11-10 21:05:25.000000000 -0500
+++ moodle.adodb/lib/adodb/tests/testsessions.php 1969-12-31 19:00:00.000000000 -0500
@@ -1,81 +0,0 @@
-<?php
-
-/*
-V4.66 28 Sept 2005 (c) 2000-2005 John Lim (jlim@natsoft.com.my). All rights reserved.
- Released under both BSD license and Lesser GPL library license.
- Whenever there is any discrepancy between the two licenses,
- the BSD license will take precedence.
- Set tabs to 4 for best viewing.
-
- Latest version is available at http://adodb.sourceforge.net
-*/
-
-function NotifyExpire($ref,$key)
-{
- print "<p><b>Notify Expiring=$ref, sessionkey=$key</b></p>";
-}
-
-//-------------------------------------------------------------------
-
-error_reporting(E_ALL);
-
-#### CONNECTION
-if (0) {
- $ADODB_SESSION_DRIVER='oci8';
- $ADODB_SESSION_CONNECT='';
- $ADODB_SESSION_USER ='scott';
- $ADODB_SESSION_PWD ='natsoft';
- $ADODB_SESSION_DB ='';
-} else {
- $ADODB_SESSION_DRIVER='mysql';
- $ADODB_SESSION_CONNECT='localhost';
- $ADODB_SESSION_USER ='root';
- $ADODB_SESSION_PWD ='';
- $ADODB_SESSION_DB ='xphplens_2';
-}
-
-### TURN DEBUGGING ON
- $ADODB_SESS_DEBUG = 99;
-
-
-#### SETUP NOTIFICATION
- $USER = 'JLIM'.rand();
- $ADODB_SESSION_EXPIRE_NOTIFY = array('USER','NotifyExpire');
-
-
-#### INIT
- ob_start();
- include('../session/adodb-cryptsession.php');
- session_start();
-
- adodb_session_regenerate_id();
-
-### SETUP SESSION VARIABLES
- $_SESSION['MONKEY'] = array('1','abc',44.41);
- if (!isset($_GET['nochange'])) @$_SESSION['AVAR'] += 1;
-
-
-### START DISPLAY
- print "<h3>PHP ".PHP_VERSION."</h3>";
- print "<p><b>\$_SESSION['AVAR']={$_SESSION['AVAR']}</b></p>";
-
- print "<hr> <b>Cookies</b>: ";
- print_r($_COOKIE);
-
-### RANDOMLY PERFORM Garbage Collection
-### In real-production environment, this is done for you
-### by php's session extension, which calls adodb_sess_gc()
-### automatically for you. See php.ini's
-### session.cookie_lifetime and session.gc_probability
-
- if (rand() % 5 == 0) {
-
- print "<hr><p><b>Garbage Collection</b></p>";
- adodb_sess_gc(10);
-
- if (rand() % 2 == 0) {
- print "<p>Random session destroy</p>";
- session_destroy();
- }
- }
-?>
\ No newline at end of file
diff -urN moodle/lib/adodb/tests/test-xmlschema.php moodle.adodb/lib/adodb/tests/test-xmlschema.php
--- moodle/lib/adodb/tests/test-xmlschema.php 2005-11-10 21:05:25.000000000 -0500
+++ moodle.adodb/lib/adodb/tests/test-xmlschema.php 1969-12-31 19:00:00.000000000 -0500
@@ -1,54 +0,0 @@
-<?PHP
-
-// V4.50 6 July 2004
-
-error_reporting(E_ALL);
-include_once( "../adodb.inc.php" );
-include_once( "../adodb-xmlschema.inc.php" );
-
-// To build the schema, start by creating a normal ADOdb connection:
-$db = ADONewConnection( 'mysql' );
-$db->Connect( 'localhost', 'root', '', 'schematest' );
-
-// To create a schema object and build the query array.
-$schema = new adoSchema( $db );
-
-// To upgrade an existing schema object, use the following
-// To upgrade an existing database to the provided schema,
-// uncomment the following line:
-#$schema->upgradeSchema();
-
-print "<b>SQL to build xmlschema.xml</b>:\n<pre>";
-// Build the SQL array
-$sql = $schema->ParseSchema( "xmlschema.xml" );
-
-print_r( $sql );
-print "</pre>\n";
-
-// Execute the SQL on the database
-//$result = $schema->ExecuteSchema( $sql );
-
-// Finally, clean up after the XML parser
-// (PHP won't do this for you!)
-//$schema->Destroy();
-
-
-
-print "<b>SQL to build xmlschema-mssql.xml</b>:\n<pre>";
-
-$db2 = ADONewConnection('mssql');
-$db2->Connect('','adodb','natsoft','northwind') || die("Fail 2");
-
-$db2->Execute("drop table simple_table");
-
-$schema = new adoSchema( $db2 );
-$sql = $schema->ParseSchema( "xmlschema-mssql.xml" );
-
-print_r( $sql );
-print "</pre>\n";
-
-$db2->debug=1;
-
-foreach ($sql as $s)
-$db2->Execute($s);
-?>
\ No newline at end of file
diff -urN moodle/lib/adodb/tests/time.php moodle.adodb/lib/adodb/tests/time.php
--- moodle/lib/adodb/tests/time.php 2003-10-22 04:52:42.000000000 -0400
+++ moodle.adodb/lib/adodb/tests/time.php 1969-12-31 19:00:00.000000000 -0500
@@ -1,17 +0,0 @@
-<?php
-
-include_once('../adodb-time.inc.php');
-//adodb_date_test();
-?>
-<?php
-//require("adodb-time.inc.php");
-
-$datestring = "1963-12-04"; // string normally from mySQL
-$stringArray = explode("-", $datestring);
-$date = adodb_mktime(0,0,0,$stringArray[1],$stringArray[2],$stringArray[0]);
-
-$convertedDate = date("d-M-Y", $date); // converted string to UK style date
-
-echo( "Birthday: $convertedDate" ); //why is string returned as one day (3 not 4) less for this example??
-
-?>
\ No newline at end of file
diff -urN moodle/lib/adodb/tests/tmssql.php moodle.adodb/lib/adodb/tests/tmssql.php
--- moodle/lib/adodb/tests/tmssql.php 2005-11-10 21:05:25.000000000 -0500
+++ moodle.adodb/lib/adodb/tests/tmssql.php 2006-01-03 21:07:46.000000000 -0500
@@ -1,65 +1,10 @@
<?php
-error_reporting(E_ALL);
-ini_set('mssql.datetimeconvert',0);
-function tmssql()
-{
- print "<h3>mssql</h3>";
- $db = mssql_connect('JAGUAR\vsdotnet','adodb','natsoft') or die('No Connection');
- mssql_select_db('northwind',$db);
-
- $rs = mssql_query('select getdate() as date',$db);
- $o = mssql_fetch_row($rs);
- print_r($o);
- mssql_free_result($rs);
-
- print "<p>Delete</p>"; flush();
- $rs2 = mssql_query('delete from adoxyz',$db);
- $p = mssql_num_rows($rs2);
- mssql_free_result($rs2);
+require_once('../../../config.php');
+require_once('../../weblib.php');
-}
+add_to_log(0, 'adodb', 'intrusion attempt', 'lib/adodb/tests/tmssql.php');
+trigger_error('SECURITY WARNING: intrusion attempt against lib/tests/tmssql.php from ' . getremoteaddr());
+error('SECURITY WARNING: logged intrusion attempt against lib/adodb/tests/tmssql.php');
-function tpear()
-{
-include_once('DB.php');
-
- print "<h3>PEAR</h3>";
- $username = 'adodb';
- $password = 'natsoft';
- $hostname = 'JAGUAR\vsdotnet';
- $databasename = 'northwind';
-
- $dsn = "mssql://$username:$password@$hostname/$databasename";
- $conn = &DB::connect($dsn);
- print "date=".$conn->GetOne('select getdate()')."<br>";
- @$conn->query('create table tester (id integer)');
- print "<p>Delete</p>"; flush();
- $rs = $conn->query('delete from tester');
- print "date=".$conn->GetOne('select getdate()')."<br>";
-}
-
-function tadodb()
-{
-include_once('../adodb.inc.php');
-
- print "<h3>ADOdb</h3>";
- $conn = NewADOConnection('mssql');
- $conn->Connect('JAGUAR\vsdotnet','adodb','natsoft','northwind');
-// $conn->debug=1;
- print "date=".$conn->GetOne('select getdate()')."<br>";
- $conn->Execute('create table tester (id integer)');
- print "<p>Delete</p>"; flush();
- $rs = $conn->Execute('delete from tester');
- print "date=".$conn->GetOne('select getdate()')."<br>";
-}
-?>
-<a href=tmssql.php?do=tmssql>mssql</a>
-<a href=tmssql.php?do=tpear>pear</a>
-<a href=tmssql.php?do=tadodb>adodb</a>
-<?php
-if (!empty($_GET['do'])) {
- $do = $_GET['do'];
- $do();
-}
?>
\ No newline at end of file
diff -urN moodle/lib/adodb/tests/xmlschema.xml moodle.adodb/lib/adodb/tests/xmlschema.xml
--- moodle/lib/adodb/tests/xmlschema.xml 2005-11-10 21:05:25.000000000 -0500
+++ moodle.adodb/lib/adodb/tests/xmlschema.xml 1969-12-31 19:00:00.000000000 -0500
@@ -1,33 +0,0 @@
-<?xml version="1.0"?>
-<schema version="0.2">
- <table name="mytable">
- <field name="row1" type="I">
- <descr>An integer row that's a primary key and autoincrements</descr>
- <KEY/>
- <AUTOINCREMENT/>
- </field>
- <field name="row2" type="C" size="16">
- <descr>A 16 character varchar row that can't be null</descr>
- <NOTNULL/>
- </field>
- <index name="myindex">
- <col>row1</col>
- <col>row2</col>
- </index>
- </table>
- <sql>
- <descr>SQL to be executed only on specific platforms</descr>
- <query platform="postgres|postgres7">
- insert into mytable ( row1, row2 ) values ( 12, 'postgres stuff' )
- </query>
- <query platform="mysql">
- insert into mytable ( row1, row2 ) values ( 12, 'mysql stuff' )
- </query>
- <query platform="mssql">
- insert into mytable ( row1, row2 ) values ( 12, 'Microsoft stuff' )
- </query>
- </sql>
- <table name="obsoletetable">
- <DROP/>
- </table>
-</schema>
\ No newline at end of file