?? test.php
字號:
}
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 ' 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();
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -