\n", $s); } function fail($s) { printf("%s ... FAILED
\n", $s); } function main() { do { if (($bdb = BriskDB::create()) == FALSE) { fail("DB Creation"); break; } succ("DB Creation"); if ($bdb->transaction("BEGIN") == FALSE) { fail("BEGIN"); break; } succ("BEGIN"); if ($bdb->transaction("COMMIT") == FALSE) { fail("COMMIT"); break; } succ("COMMIT"); $arr_ip = array("1.1.1.1", "127.0.0.1", "255.255.255.255", "255.255.0.0" ); if ($bdb->query("DROP TABLE IF EXISTS test_ip;") == FALSE) { fail("DROP TABLE test_ip"); break; } succ("DROP TABLE test_ip"); if ($bdb->query("CREATE TABLE test_ip ( code integer, -- insertion code ip integer, -- ip v4 address atime timestamp DEFAULT to_timestamp(0) -- access time ); ") == FALSE) { fail("CREATE TABLE test_ip"); break; } succ("CREATE TABLE test_ip"); foreach ($arr_ip as $i) { $v = $v_or = ip2long($i); if (PHP_INT_SIZE == 8 && $v & 0x80000000) $v = 0xffffffff00000000 | $v_or; if ($bdb->query(sprintf("INSERT INTO test_ip (ip, atime) VALUES (CAST(%d AS integer), '1999-01-08 04:05:06');", $v)) == FALSE) { printf("%s
\n", $bdb->last_error()); fail("INSERT INTO test_ip ".$i." V: ".$v." V_or: ".$v_or); break; } succ("INSERT INTO test_ip ".$i." V: ".$v." V_or: ".$v_or); } if (($ip_pg = $bdb->query(sprintf("SELECT * FROM test_ip ORDER BY code;"))) == FALSE) { printf("%s
\n", $bdb->last_error()); fail("SELECT * FROM test_ip"); break; } succ("SELECT * FROM test_ip"); for ($r = 0 ; $r < pg_numrows($ip_pg) ; $r++) { $ip_obj = pg_fetch_object($ip_pg, $r); if (PHP_INT_SIZE == 8) $v = $ip_obj->ip & 0x00000000ffffffff; else $v = $ip_obj->ip; if ($arr_ip[$r] != long2ip($v)) { fail(sprintf(" Expected: %s, retrieved: %s", $arr_ip[$r], long2ip($v))); } else { succ(sprintf(" Expected: %s", $arr_ip[$r])); } // printf("RET IP: %d V: %d IP: %s
\n", $ip_obj->ip, $v, long2ip($v)); } if ($bdb->query("DROP TABLE IF EXISTS test_ip;") == FALSE) { fail("DROP TABLE test_ip"); break; } succ("DROP TABLE test_ip"); if ($bdb->transaction("BEgIN") != FALSE) { fail("BEgIN missed fail"); break; } succ("BEgIN missed fail"); } while (FALSE); } main(); ?>