id = $id; $this->iv = $iv; $this->xv = $xv; $this->sv = $sv; } public function __toString() { return sprintf('(%d, %f, %s)', $this->iv, $this->xv, $this->sv); } } function deserialize($d) { return new Data($d['id'], $d['iv'], $d['xv'], $d['sv']); } use PhpOrient\PhpOrient; function dump($db, $id) { echo 'dumping ' . $id . "\r\n"; $r = $db->query(sprintf("SELECT FROM Data WHERE id = '%s'", $id)); if(count($r) > 0) { $d = $r[0]; //echo "$d\r\n"; $o = deserialize($d); echo "$o\r\n"; } else { echo "Not found\r\n"; } } define('NREC', 1000); define('PHP_OFFSET', 4 * 1000); // open $db = new PhpOrient('192.168.60.129', 2424); $db->dbOpen('test', 'admin', 'hemmeligt'); $db->command("DELETE FROM Data"); // put for($i = 0; $i < NREC; $i++) { $o = new Data('Doc-' . (PHP_OFFSET + $i + 1), $i + 1, $i + 1.0, 'This is value ' . ($i + 1)); $db->command(sprintf("INSERT INTO Data (id,iv,xv,sv) VALUES('%s',%d,%f,'%s')", $o->id, $o->iv, $o->xv, $o->sv)); } // $id = 'Doc-' . (PHP_OFFSET + 77); // get dump($db, $id); // delete $db->command(sprintf("DELETE FROM Data WHERE id = '%s'", $id)); // get non-existing dump($db, $id); // update and get $id = 'Doc-' . (PHP_OFFSET + 88); dump($db, $id); $o = deserialize($db->query(sprintf("SELECT FROM Data WHERE id = '%s'", $id))[0]); $o->iv = $o->iv + 1; $o->xv = $o->xv + 0.1; $o->sv = $o->sv . ' updated'; $db->command(sprintf("UPDATE Data SET iv = %d, xv = %f, sv = '%s' WHERE id = '%s'", $o->iv, $o->xv, $o->sv, $o->id)); dump($db, $id); // list all $n = 0; foreach($db->query("SELECT FROM Data", 10000) as $itd) { $ito = deserialize($itd); if(strpos($ito->id, 'Doc#') != 0) { echo 'Unexcpected document: ' . $ito->id . "\r\n"; } if($ito->iv < 1 || NREC < $ito->iv) { echo 'Unexpected value: ' . $ito . "\r\n"; } $n = $n + 1; } echo "$n\r\n"; // list documents where "Doc#n075" <= id < "Doc#n085" $n2 = 0; foreach($db->query(sprintf("SELECT FROM Data WHERE id BETWEEN '%s' AND '%s'", 'Doc-' . (PHP_OFFSET + 75), 'Doc-' . (PHP_OFFSET + 84)), 10000) as $it2d) { $it2o = deserialize($it2d); if(strpos($it2o->id, 'Doc#') != 0) { echo 'Unexpected document: ' . $it2o->id . "\r\n"; } $n2 = $n2 + 1; } echo "$n2\r\n"; ?>