diff --git adodb-csvlib.inc.php adodb-csvlib.inc.php index 65c47f43..3dd61b66 100644 --- adodb-csvlib.inc.php +++ adodb-csvlib.inc.php @@ -248,7 +248,7 @@ $ADODB_INCLUDED_CSV = 1; //var_dump($arr); if (!is_array($arr)) { $err = "Recordset had unexpected EOF (in serialized recordset)"; - if (get_magic_quotes_runtime()) $err .= ". Magic Quotes Runtime should be disabled!"; + if (false) $err .= ". Magic Quotes Runtime should be disabled!"; return $false; } $rs = new $rsclass(); diff --git adodb-datadict.inc.php adodb-datadict.inc.php index dd2433e9..d91e841e 100644 --- adodb-datadict.inc.php +++ adodb-datadict.inc.php @@ -517,11 +517,15 @@ class ADODB_DataDict { { $tabname = $this->TableName ($tabname); if ($flds) { - list($lines,$pkey,$idxs) = $this->_GenFields($flds); + // Avoid use of SERIAL for existing columns, 2014-04-14 + // by AS + list($lines,$pkey,$idxs) = $this->_GenFields($flds, false, false); // genfields can return FALSE at times if ($lines == null) $lines = array(); $first = current($lines); list(,$column_def) = preg_split("/[\t ]+/",$first,2); + } else { + $column_def = ''; } return array(sprintf($this->renameColumn,$tabname,$this->NameQuote($oldcolumn),$this->NameQuote($newcolumn),$column_def)); } @@ -594,7 +598,7 @@ class ADODB_DataDict { - function _GenFields($flds,$widespacing=false) + function _GenFields($flds,$widespacing=false,$allowSerial=true) { if (is_string($flds)) { $padding = ' '; @@ -683,7 +687,9 @@ class ADODB_DataDict { break; case 'UNSIGNED': $funsigned = true; break; case 'AUTOINCREMENT': - case 'AUTO': $fautoinc = true; $fnotnull = true; break; + case 'AUTO': // Serial type (psql) not allowed in ALTER TABLE statements (2014-04-14 AS) + if ($allowSerial) $fautoinc = true; + $fnotnull = true; break; case 'KEY': // a primary key col can be non unique in itself (if key spans many cols...) case 'PRIMARY': $fprimary = $v; $fnotnull = true; /*$funiqueindex = true;*/ break; @@ -959,6 +965,8 @@ class ADODB_DataDict { return $this->CreateTableSQL($tablename, $flds, $tableoptions); } + $tableflds = $flds; + /* #2343: Null / Not Null column flag changes not respected by this code. if (is_array($flds)) { // Cycle through the update fields, comparing // existing fields to fields to update. @@ -994,15 +1002,19 @@ class ADODB_DataDict { } } $flds = $holdflds; - } + } */ // already exists, alter table instead - list($lines,$pkey,$idxs) = $this->_GenFields($flds); + // (Avoid use of SERIAL when altering existing fields for psql, + // 2014-04-14 by AS) + list($lines,$pkey,$idxs) = $this->_GenFields($flds, false, false); // genfields can return FALSE at times if ($lines == null) $lines = array(); $alter = 'ALTER TABLE ' . $this->TableName($tablename); $sql = array(); + $addSql = array(); + $recreate = false; foreach ( $lines as $id => $v ) { if ( isset($cols[$id]) && is_object($cols[$id]) ) { @@ -1011,15 +1023,25 @@ class ADODB_DataDict { // We are trying to change the size of the field, if not allowed, simply ignore the request. // $flds[1] holds the type, $flds[2] holds the size -postnuke addition +/* #2343: Null / Not Null column flag changes not respected by this code. if ($flds && in_array(strtoupper(substr($flds[0][1],0,4)),$this->invalidResizeTypes4) && (isset($flds[0][2]) && is_numeric($flds[0][2]))) { if ($this->debug) ADOConnection::outp(sprintf("
"; - 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 ("
seconds = %8.2f for %d iterations each with %d records
",$total,$max, sizeof($arr)); - flush(); - - - //$db->Close(); -} -include("testdatabases.inc.php"); - -?> - - - - diff --git tests/client.php tests/client.php deleted file mode 100644 index 0144519c..00000000 --- tests/client.php +++ /dev/null @@ -1,199 +0,0 @@ - - -'; - var_dump(parse_url('odbc_mssql://userserver/')); - die(); - -include('../adodb.inc.php'); -include('../tohtml.inc.php'); - - function send2server($url,$sql) - { - $url .= '?sql='.urlencode($sql); - print "$url
"; - $rs = csv2rs($url,$err); - if ($err) print $err; - return $rs; - } - - function print_pre($s) - { - print "";print_r($s);print ""; - } - - -$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 "Client Driver Tests
"; - print "
"; - echo $e; - echo ""; -} diff --git tests/test-active-record.php tests/test-active-record.php deleted file mode 100644 index 59471620..00000000 --- tests/test-active-record.php +++ /dev/null @@ -1,140 +0,0 @@ -= 5) { - include('../adodb-exceptions.inc.php'); - echo "
Output of getAttributeNames: "; - var_dump($person->getAttributeNames()); - - /** - * Outputs the following: - * array(4) { - * [0]=> - * string(2) "id" - * [1]=> - * string(9) "name_first" - * [2]=> - * string(8) "name_last" - * [3]=> - * string(13) "favorite_color" - * } - */ - - $person = new Person(); - $person->name_first = 'Andi'; - $person->name_last = 'Gutmans'; - $person->save(); // this save() will fail on INSERT as favorite_color is a must fill... - - - $person = new Person(); - $person->name_first = 'Andi'; - $person->name_last = 'Gutmans'; - $person->favorite_color = 'blue'; - $person->save(); // this save will perform an INSERT successfully - - echo "
The Insert ID generated:"; print_r($person->id); - - $person->favorite_color = 'red'; - $person->save(); // this save() will perform an UPDATE - - $person = new Person(); - $person->name_first = 'John'; - $person->name_last = 'Lim'; - $person->favorite_color = 'lavender'; - $person->save(); // this save will perform an INSERT successfully - - // load record where id=2 into a new ADOdb_Active_Record - $person2 = new Person(); - $person2->Load('id=2'); - - $activeArr = $db->GetActiveRecordsClass($class = "Person",$table = "Persons","id=".$db->Param(0),array(2)); - $person2 = $activeArr[0]; - echo "
Name (should be John): ",$person->name_first, "
Class (should be Person): ",get_class($person2),"
";
-
- $db->Execute("insert into children (person_id,name_first,name_last) values (2,'Jill','Lim')");
- $db->Execute("insert into children (person_id,name_first,name_last) values (2,'Joan','Lim')");
- $db->Execute("insert into children (person_id,name_first,name_last) values (2,'JAMIE','Lim')");
-
- $newperson2 = new Person();
- $person2->HasMany('children','person_id');
- $person2->Load('id=2');
- $person2->name_last='green';
- $c = $person2->children;
- $person2->save();
-
- if (is_array($c) && sizeof($c) == 3 && $c[0]->name_first=='Jill' && $c[1]->name_first=='Joan'
- && $c[2]->name_first == 'JAMIE') echo "OK Loaded HasMany";
- else {
- var_dump($c);
- echo "error loading hasMany should have 3 array elements Jill Joan Jamie
";
- }
-
- class Child extends ADOdb_Active_Record{};
- $ch = new Child('children',array('id'));
- $ch->BelongsTo('person','person_id','id');
- $ch->Load('id=1');
- if ($ch->name_first !== 'Jill') echo "error in Loading Child
";
-
- $p = $ch->person;
- if ($p->name_first != 'John') echo "Error loading belongsTo
";
- else echo "OK loading BelongTo
";
-
- $p->hasMany('children','person_id');
- $p->LoadRelations('children', " Name_first like 'J%' order by id",1,2);
- if (sizeof($p->children) == 2 && $p->children[1]->name_first == 'JAMIE') echo "OK LoadRelations
";
- else echo "error LoadRelations
";
-
- $db->Execute("CREATE TEMPORARY TABLE `persons2` (
- `id` int(10) unsigned NOT NULL auto_increment,
- `name_first` varchar(100) NOT NULL default '',
- `name_last` varchar(100) NOT NULL default '',
- `favorite_color` varchar(100) default '',
- PRIMARY KEY (`id`)
- ) ENGINE=MyISAM;
- ");
-
- $p = new adodb_active_record('persons2');
- $p->name_first = 'James';
-
- $p->name_last = 'James';
-
- $p->HasMany('children','person_id');
- $p->children;
- var_dump($p);
- $p->Save();
diff --git tests/test-active-recs2.php tests/test-active-recs2.php
deleted file mode 100644
index f5898fcd..00000000
--- tests/test-active-recs2.php
+++ /dev/null
@@ -1,76 +0,0 @@
-Connect("localhost","tester","test","test");
-} else
- $db = NewADOConnection('oci8://scott:natsoft@/');
-
-
-$arr = $db->ServerInfo();
-echo "
Affected Rows after delete=".$db->Affected_Rows()."
"; diff --git tests/test-active-relations.php tests/test-active-relations.php deleted file mode 100644 index 7a98d479..00000000 --- tests/test-active-relations.php +++ /dev/null @@ -1,85 +0,0 @@ -debug=1; - ADOdb_Active_Record::SetDatabaseAdapter($db); - - $db->Execute("CREATE TEMPORARY TABLE `persons` ( - `id` int(10) unsigned NOT NULL auto_increment, - `name_first` varchar(100) NOT NULL default '', - `name_last` varchar(100) NOT NULL default '', - `favorite_color` varchar(100) NOT NULL default '', - PRIMARY KEY (`id`) - ) ENGINE=MyISAM; - "); - - $db->Execute("CREATE TEMPORARY TABLE `children` ( - `id` int(10) unsigned NOT NULL auto_increment, - `person_id` int(10) unsigned NOT NULL, - `name_first` varchar(100) NOT NULL default '', - `name_last` varchar(100) NOT NULL default '', - `favorite_pet` varchar(100) NOT NULL default '', - PRIMARY KEY (`id`) - ) ENGINE=MyISAM; - "); - - - $db->Execute("insert into children (person_id,name_first,name_last) values (1,'Jill','Lim')"); - $db->Execute("insert into children (person_id,name_first,name_last) values (1,'Joan','Lim')"); - $db->Execute("insert into children (person_id,name_first,name_last) values (1,'JAMIE','Lim')"); - - ADODB_Active_Record::TableHasMany('persons', 'children','person_id'); - class person extends ADOdb_Active_Record{} - - $person = new person(); -# $person->HasMany('children','person_id'); ## this is affects all other instances of Person - - $person->name_first = 'John'; - $person->name_last = 'Lim'; - $person->favorite_color = 'lavender'; - $person->save(); // this save will perform an INSERT successfully - - $person2 = new person(); - $person2->Load('id=1'); - - $c = $person2->children; - if (is_array($c) && sizeof($c) == 3 && $c[0]->name_first=='Jill' && $c[1]->name_first=='Joan' - && $c[2]->name_first == 'JAMIE') echo "OK Loaded HasMany"; - else { - var_dump($c); - echo "error loading hasMany should have 3 array elements Jill Joan Jamie"; - $db = NewADOConnection($dbType); - $dict = NewDataDictionary($db); - - if (!$dict) continue; - $dict->debug = 1; - - $opts = array('REPLACE','mysql' => 'ENGINE=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' INDEX idx_name, -LASTNAME VARCHAR(28) DEFAULT 'Chen' key INDEX idx_name INDEX idx_lastname, -averylonglongfieldname X(1024) DEFAULT 'test', -price N(7.2) DEFAULT '0.00', -MYDATE D DEFDATE INDEX idx_date, -BIGFELLOW X NOTNULL, -TS_SECS T DEFTIMESTAMP, -TS_SUBSEC TS 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','price,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 "
";
- //print_r($dict->MetaTables());
- foreach($sqla as $s) {
- $s = htmlspecialchars($s);
- print "$s;\n";
- if ($dbType == 'oci8') print "/\n";
- }
- print ""; -foreach($ff as $xml) echo htmlspecialchars($xml); -echo ""; -include_once('test-xmlschema.php'); diff --git tests/test-perf.php tests/test-perf.php deleted file mode 100644 index 62465bef..00000000 --- tests/test-perf.php +++ /dev/null @@ -1,48 +0,0 @@ - $v) { - if (strncmp($k,'test',4) == 0) $_SESSION['_db'] = $k; - } -} - -if (isset($_SESSION['_db'])) { - $_db = $_SESSION['_db']; - $_GET[$_db] = 1; - $$_db = 1; -} - -echo "
'; - echo $perf->HealthCheck(); - echo($perf->SuspiciousSQL()); - echo($perf->ExpensiveSQL()); - echo($perf->InvalidSQL()); - echo $perf->Tables(); - - echo "
";
- echo $perf->HealthCheckCLI();
- $perf->Poll(3);
- die();
- }
-
- if ($perf) $perf->UI(3);
-}
diff --git tests/test-pgblob.php tests/test-pgblob.php
deleted file mode 100644
index 3add99e6..00000000
--- tests/test-pgblob.php
+++ /dev/null
@@ -1,86 +0,0 @@
-Param(false);
- $x = (rand() % 10) + 1;
- $db->debug= ($i==1);
- $id = $db->GetOne($sql,
- array('Z%','Z%',$x));
- if($id != $offset+$x) {
- print "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 "
Testing PREPARE/EXECUTE PLAN
";
-
-
-$db->_bindInputArray = true; // requires postgresql 7.3+ and ability to modify database
-$t = getmicrotime();
-doloop();
-echo '',$MAX,' times, with plan=',getmicrotime() - $t,'
';
-
-
-$db->_bindInputArray = false;
-$t = getmicrotime();
-doloop();
-echo '',$MAX,' times, no plan=',getmicrotime() - $t,'
';
-
-
-
-echo "Testing UPDATEBLOB
";
-$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 "*** ERROR: Inserted value does not match downloaded val";
-else echo "*** OK: Passed";
-
-echo "";
-echo "INSERTED: ", $enc;
-echo "
";
-echo"RETURNED: ", rawurlencode($v);
-echo "
";
-echo "INSERTED: ", $val;
-echo "
";
-echo "RETURNED: ", $v;
diff --git tests/test-php5.php tests/test-php5.php
deleted file mode 100644
index 1c63f12d..00000000
--- tests/test-php5.php
+++ /dev/null
@@ -1,116 +0,0 @@
-PHP ".PHP_VERSION."\n";
-try {
-
-$dbt = 'oci8po';
-
-try {
-switch($dbt) {
-case 'oci8po':
- $db = NewADOConnection("oci8po");
-
- $db->Connect('localhost','scott','natsoft','sherkhan');
- break;
-default:
-case 'mysql':
- $db = NewADOConnection("mysql");
- $db->Connect('localhost','root','','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 ?Prepare("select * from adoxyz where ?ErrorMsg(),"\n";
-$rs = $db->Execute($stmt,array(10,20));
-
-echo "
Foreach Iterator Test (rand=".rand().")
";
-$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
";
- flush();
-}
-
-$rs = new ADORecordSet_empty();
-foreach($rs as $v) {
- echo "empty ";var_dump($v);
-}
-
-
-if ($i != $cnt) die("actual cnt is $i, cnt should be $cnt\n");
-else echo "Count $i is correct
";
-
-$rs = $db->Execute("select bad from badder");
-
-} catch (exception $e) {
- adodb_pr($e);
- echo "
adodb_backtrace:
\n";
- $e = adodb_backtrace($e->gettrace());
-}
-
-$rs = $db->Execute("select distinct id, firstname,lastname from adoxyz order by id");
-echo "Result=\n",$rs,"";
-
-echo "Active Record
";
-
- include_once("../adodb-active-record.inc.php");
- ADOdb_Active_Record::SetDatabaseAdapter($db);
-
-try {
- class City extends ADOdb_Active_Record{};
- $a = new City();
-
-} catch(exception $e){
- echo $e->getMessage();
-}
-
-try {
-
- $a = new City();
-
- echo "Successfully created City()
";
- #var_dump($a->GetPrimaryKeys());
- $a->city = 'Kuala Lumpur';
- $a->Save();
- $a->Update();
- #$a->SetPrimaryKeys(array('city'));
- $a->country = "M'sia";
- $a->save();
- $a->Delete();
-} catch(exception $e){
- echo $e->getMessage();
-}
-
-//include_once("test-active-record.php");
diff --git tests/test-xmlschema.php tests/test-xmlschema.php
deleted file mode 100644
index c56cfec8..00000000
--- tests/test-xmlschema.php
+++ /dev/null
@@ -1,53 +0,0 @@
-Connect( 'localhost', 'root', '', 'test' ) || die('fail connect1');
-
-// 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 "SQL to build xmlschema.xml:\n
";
-// Build the SQL array
-$sql = $schema->ParseSchema( "xmlschema.xml" );
-
-var_dump( $sql );
-print "
\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 "SQL to build xmlschema-mssql.xml:\n";
-
-$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 "\n";
-
-$db2->debug=1;
-
-foreach ($sql as $s)
-$db2->Execute($s);
diff --git tests/test.php tests/test.php
deleted file mode 100644
index 82178864..00000000
--- tests/test.php
+++ /dev/null
@@ -1,1781 +0,0 @@
-$msg
";
- 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 "White space detected in adodb-$conn.inc.php or include file...
";
- //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;
-
- //adodb_pr($db);
-
-?>
-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("Total queries=%d; total cached=%d
",$EXECS+$CACHED, $CACHED); - flush(); -} - -function adodb_test_err($dbms, $fn, $errno, $errmsg, $p1=false, $p2=false) -{ -global $TESTERRS,$ERRNO; - - $ERRNO = $errno; - $TESTERRS += 1; - print "** $dbms ($fn): errno=$errno errmsg=$errmsg ($p1,$p2)"; -} -if (sizeof($_GET) == 0) $testmysql = true; - - -foreach($_GET as $k=>$v) { - // XSS protection (see Github issue #274) - only set variables for - // expected get parameters used in testdatabases.inc.php - if(preg_match('/^(test|no)\w+$/', $k)) { - $$k = $v; - } -} - -?> - -
-vers=",ADOConnection::Version(); - - - -?> -
ADODB Database Library (c) 2000-2014 John Lim. All rights reserved. Released under BSD and LGPL, PHP .
- - diff --git tests/test2.php tests/test2.php deleted file mode 100644 index eb3b0258..00000000 --- tests/test2.php +++ /dev/null @@ -1,25 +0,0 @@ -debug=1; - $access = 'd:\inetpub\wwwroot\php\NWIND.MDB'; - $myDSN = 'PROVIDER=Microsoft.Jet.OLEDB.4.0;' - . 'DATA SOURCE=' . $access . ';'; - - echo "PHP ",PHP_VERSION,"
"; - - $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 "Date m/d/Y =",$db->UserDate($rs->fields[4],'m/d/Y'); - } diff --git tests/test3.php tests/test3.php deleted file mode 100644 index 1497f98a..00000000 --- tests/test3.php +++ /dev/null @@ -1,44 +0,0 @@ -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); -} diff --git tests/test4.php tests/test4.php deleted file mode 100644 index d7c76e2c..00000000 --- tests/test4.php +++ /dev/null @@ -1,144 +0,0 @@ -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('oci8po'); -#$conn->Connect('','scott','natsoft'); - -if (PHP_VERSION >= 5) { - $connstr = "mysql:dbname=northwind"; - $u = 'root';$p=''; - $conn = ADONewConnection('pdo'); - $conn->Connect($connstr, $u, $p); -} -//$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,'mysql')===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,'mysql')===false) $record['id'] = 752; -// Set the values for the fields in the record -$record["firstname"] = 'anull'; -$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 "
Walt's new stuff failed: $insertSQL2
"; -//========================== -// 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 "No record found!
"; - -$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 "Error1 : Rows Affected=".$conn->Affected_Rows().", should be 1
"; - -$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 "Error 2: Rows Affected=".$conn->Affected_Rows().", should be 1
"; - -$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(); diff --git tests/test5.php tests/test5.php deleted file mode 100644 index e0597690..00000000 --- tests/test5.php +++ /dev/null @@ -1,48 +0,0 @@ -debug=1; - $conn->PConnect("localhost","root","","xphplens"); - print $conn->databaseType.':'.$conn->GenID().'| - |
";
-while( !$rs->EOF ) {
- $output[] = $rs->fields;
- var_dump($rs->fields);
- $rs->MoveNext();
- print "";
-}
-die();
-
-
-$p = $conn->Prepare('insert into products (productname,unitprice,dcreated) values (?,?,?)');
-echo "
";
-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 $output, size=".strlen($rs->fields[0])."";
-$fd = fopen($output, "wb");
-fwrite($fd, $rs->fields[0]);
-fclose($fd);
-
-print " View Image";
-//$rs = $conn->Execute('SELECT id,SUBSTRING(b1, 1, 10) FROM blobtest');
-//rs2html($rs);
diff --git tests/testoci8.php tests/testoci8.php
deleted file mode 100644
index aa66ad94..00000000
--- tests/testoci8.php
+++ /dev/null
@@ -1,84 +0,0 @@
-
-
-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().'
';
- $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);
-}
diff --git tests/testoci8cursor.php tests/testoci8cursor.php
deleted file mode 100644
index 078ea7a6..00000000
--- tests/testoci8cursor.php
+++ /dev/null
@@ -1,110 +0,0 @@
-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()."";
- } else {
- print "Error in using Cursor Variables 1
";
- }
-
- print "
Testing Stored Procedures for oci8
";
-
- $stid = $db->PrepareSP('BEGIN adodb.myproc('.MYNUM.', :myov); END;');
- $db->OutParameter($stid, $myov, 'myov');
- $db->Execute($stid);
- if ($myov != MYNUM) print "Error with myproc
";
-
-
- $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 "Stored Procedure Error: a2 = $a2";
- else echo "OK: a2=$a2
";
- } else {
- print "Error in using Stored Procedure IN/Out Variables
";
- }
-
-
- $tname = 'A%';
-
- $stmt = $db->PrepareSP('select * from tab where tname like :tablename');
- $db->Parameter($stmt,$tname,'tablename');
- $rs = $db->Execute($stmt);
- rs2html($rs);
diff --git tests/testpaging.php tests/testpaging.php
deleted file mode 100644
index 5b4a5290..00000000
--- tests/testpaging.php
+++ /dev/null
@@ -1,87 +0,0 @@
-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 "
";
-print rs2csv($rs); # return a string
-
-print '
';
-$rs->MoveFirst(); # note, some databases do not support MoveFirst
-print rs2tab($rs); # return a string
-
-print '
';
-$rs->MoveFirst();
-rs2tabout($rs); # send to stdout directly
-print "
";
-}
-
-$pager = new ADODB_Pager($db,$sql);
-$pager->showPageLinks = true;
-$pager->linksPerPage = 10;
-$pager->cache = 60;
-$pager->Render($rows=7);
diff --git tests/testpear.php tests/testpear.php
deleted file mode 100644
index 0c6d58f4..00000000
--- tests/testpear.php
+++ /dev/null
@@ -1,35 +0,0 @@
-setFetchMode(ADODB_FETCH_ASSOC);
-$rs = $db->Query('select firstname,lastname from adoxyz');
-$cnt = 0;
-while ($arr = $rs->FetchRow()) {
- print_r($arr);
- print "
";
- $cnt += 1;
-}
-
-if ($cnt != 50) print "Error in \$cnt = $cnt";
diff --git tests/testsessions.php tests/testsessions.php
deleted file mode 100644
index 34836060..00000000
--- tests/testsessions.php
+++ /dev/null
@@ -1,100 +0,0 @@
-Notify Expiring=$ref, sessionkey=$key";
-}
-
-//-------------------------------------------------------------------
-
-error_reporting(E_ALL);
-
-
-ob_start();
-include('../session/adodb-cryptsession2.php');
-
-
-$options['debug'] = 1;
-$db = 'postgres';
-
-#### CONNECTION
-switch($db) {
-case 'oci8':
- $options['table'] = 'adodb_sessions2';
- ADOdb_Session::config('oci8', 'mobydick', 'jdev', 'natsoft', 'mobydick',$options);
- break;
-
-case 'postgres':
- $options['table'] = 'sessions2';
- ADOdb_Session::config('postgres', 'localhost', 'postgres', 'natsoft', 'northwind',$options);
- break;
-
-case 'mysql':
-default:
- $options['table'] = 'sessions2';
- ADOdb_Session::config('mysql', 'localhost', 'root', '', 'xphplens_2',$options);
- break;
-
-
-}
-
-
-
-#### SETUP NOTIFICATION
- $USER = 'JLIM'.rand();
- $ADODB_SESSION_EXPIRE_NOTIFY = array('USER','NotifyExpire');
-
- adodb_session_create_table();
- session_start();
-
- adodb_session_regenerate_id();
-
-### SETUP SESSION VARIABLES
- if (empty($_SESSION['MONKEY'])) $_SESSION['MONKEY'] = array(1,'abc',44.41);
- else $_SESSION['MONKEY'][0] += 1;
- if (!isset($_GET['nochange'])) @$_SESSION['AVAR'] += 1;
-
-
-### START DISPLAY
- print "PHP ".PHP_VERSION."
";
- print "\$_SESSION['AVAR']={$_SESSION['AVAR']}
";
-
- print "
Cookies: ";
- print_r($_COOKIE);
-
- var_dump($_SESSION['MONKEY']);
-
-### 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 "
Garbage Collection
";
- adodb_sess_gc(10);
-
- if (rand() % 2 == 0) {
- print "Random own session destroy
";
- session_destroy();
- }
- } else {
- $DB = ADODB_Session::_conn();
- $sessk = $DB->qstr('%AZ'.rand().time());
- $olddate = $DB->DBTimeStamp(time()-30*24*3600);
- $rr = $DB->qstr(rand());
- $DB->Execute("insert into {$options['table']} (sesskey,expiry,expireref,sessdata,created,modified) values ($sessk,$olddate, $rr,'',$olddate,$olddate)");
- }
diff --git tests/time.php tests/time.php
deleted file mode 100644
index 8261e1e9..00000000
--- tests/time.php
+++ /dev/null
@@ -1,16 +0,0 @@
-
-" );
-echo( "Converted: $convertedDate" ); //why is string returned as one day (3 not 4) less for this example??
diff --git tests/tmssql.php tests/tmssql.php
deleted file mode 100644
index 0f81311a..00000000
--- tests/tmssql.php
+++ /dev/null
@@ -1,79 +0,0 @@
-mssql";
- $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 "Delete
"; flush();
- $rs2 = mssql_query('delete from adoxyz',$db);
- $p = mssql_num_rows($rs2);
- mssql_free_result($rs2);
-
-}
-
-function tpear()
-{
-include_once('DB.php');
-
- print "PEAR
";
- $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()')."
";
- @$conn->query('create table tester (id integer)');
- print "Delete
"; flush();
- $rs = $conn->query('delete from tester');
- print "date=".$conn->GetOne('select getdate()')."
";
-}
-
-function tadodb()
-{
-include_once('../adodb.inc.php');
-
- print "ADOdb
";
- $conn = NewADOConnection('mssql');
- $conn->Connect('JAGUAR\vsdotnet','adodb','natsoft','northwind');
-// $conn->debug=1;
- print "date=".$conn->GetOne('select getdate()')."
";
- $conn->Execute('create table tester (id integer)');
- print "Delete
"; flush();
- $rs = $conn->Execute('delete from tester');
- print "date=".$conn->GetOne('select getdate()')."
";
-}
-
-
-$ACCEPTIP = '127.0.0.1';
-
-$remote = $_SERVER["REMOTE_ADDR"];
-
-if (!empty($ACCEPTIP))
- if ($remote != '127.0.0.1' && $remote != $ACCEPTIP)
- die("Unauthorised client: '$remote'");
-
-?>
-mssql
-pear
-adodb
-
-
-
-
-
-
-
-
-
-
-
-
-
- id
-
-
- id
-
-
-
-
-
- SQL to be executed only on specific platforms
-
- insert into mytable ( row1, row2 ) values ( 12, 'postgres stuff' )
-
-
- insert into mytable ( row1, row2 ) values ( 12, 'mysql stuff' )
-
-
- INSERT into simple_table ( name, description ) values ( '12', 'Microsoft stuff' )
-
-
-
\ No newline at end of file
diff --git tests/xmlschema.xml tests/xmlschema.xml
deleted file mode 100644
index ea48ae2b..00000000
--- tests/xmlschema.xml
+++ /dev/null
@@ -1,33 +0,0 @@
-
-
-
-
- An integer row that's a primary key and autoincrements
-
-
-
-
- A 16 character varchar row that can't be null
-
-
-
- row1
- row2
-
-
-
- SQL to be executed only on specific platforms
-
- insert into mytable ( row1, row2 ) values ( 12, 'postgres stuff' )
-
-
- insert into mytable ( row1, row2 ) values ( 12, 'mysql stuff' )
-
-
- insert into mytable ( row1, row2 ) values ( 12, 'Microsoft stuff' )
-
-
-
-
-
-
\ No newline at end of file