⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 test.php

📁 开源MARC数据处理
💻 PHP
📖 第 1 页 / 共 4 页
字号:
	$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 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");

	/////////////////////////////////////////////////////////////
	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");
	
	$db->debug=false;
	include_once "PEAR.php";
	
	// PEAR TESTS BELOW
	$ADODB_FETCH_MODE = ADODB_FETCH_NUM;
	$pear = true;
	$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>";
	
	$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);
		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>";
	}
	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>";
		}
	}
	
	$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;

	print "<p>SetFetchMode() tests</p>";
	$db->SetFetchMode(ADODB_FETCH_ASSOC);
	$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_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");
	
	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>";
	////////////////////////////////////////////////////////////////////
	
	$conn = NewADOConnection($db->databaseType);
	$conn->raiseErrorFn = 'adodb_test_err';
	@$conn->Connect('abc');
	if ($TESTERRS == 2) print "raiseErrorFn tests passed<br>";
	else print "<b>raiseErrorFn tests failed ($TESTERRS)</b><br>";
	
	
	////////////////////////////////////////////////////////////////////
	
	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");

	
?>
	</p>
	<table width=100% ><tr><td bgcolor=beige>&nbsp;</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);
}

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 &nbsp; 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']);
	$HTTP_GET_VARS[$_SERVER['argv'][1]] = 1;
}

if ( @$HTTP_SERVER_VARS['COMPUTERNAME'] == 'TIGRESS') {
	CheckWS('mysqlt');
	CheckWS('postgres');
	CheckWS('oci8po');
	
	CheckWS('firebird');
	CheckWS('sybase');
	CheckWS('informix');

	CheckWS('ado_mssql');
	CheckWS('ado_access');
	CheckWS('mssql');
	
	CheckWS('vfp');
	CheckWS('sqlanywhere');
	CheckWS('db2');
	CheckWS('access');
	CheckWS('odbc_mssql');
	//
	CheckWS('oracle');
	CheckWS('proxy');
	CheckWS('fbsql');
	print "White Space Check complete<p>";
}
if (sizeof($HTTP_GET_VARS) == 0) $testmysql = true;


foreach($HTTP_GET_VARS 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://php.weblogs.com/ADODB>php.weblogs.com</a>.</p>

Test <a href=test4.php>GetInsertSQL/GetUpdateSQL</a> &nbsp; 
	<a href=testsessions.php>Sessions</a> &nbsp;
	<a href=testpaging.php>Paging</a> &nbsp;
	<a href=test-perf.php>Perf Monitor</a><p>
<?php
include('./testdatabases.inc.php');
?>
	
<?php

include_once('../adodb-time.inc.php');
adodb_date_test();
?>
<p><i>ADODB Database Library  (c) 2000-2004 John Lim. All rights reserved. Released under BSD and LGPL.</i></p>
</body>
</html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -