📄 test.php
字号:
$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 ' 1st line set to **** , Steven selected: '. $rs->GetMenu('menu','Steven','1st:****').'<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 {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -