home *** CD-ROM | disk | FTP | other *** search
/ PC World 2001 August / PCWorld_2001-08_cd.bin / Komunikace / phptriad / phptriadsetup2-11.exe / php / pear / DB / tests / transactions.inc < prev   
Text File  |  2001-02-19  |  2KB  |  53 lines

  1. <?php
  2.  
  3. // View the table from a separate connection so we don't disturb
  4. // the transaction.
  5. $dbh2 = DB::connect($dbh->dsn);
  6.  
  7. function dumptable() {
  8.     global $dbh, $dbh2;
  9.     printf("%s ops=%d\n", implode(" ", $dbh->getCol("SELECT b FROM phptest")),
  10.            $dbh->transaction_opcount);
  11. }
  12. $dbh->setErrorHandling(PEAR_ERROR_DIE);
  13. $dbh->autoCommit(true);
  14. $dbh->query("INSERT INTO phptest VALUES(1, 'one', 'One', '2001-02-19')");
  15. print "after autocommit: ";
  16. dumptable();
  17. $dbh->autoCommit(false);
  18. $dbh->query("INSERT INTO phptest VALUES(2, 'two', 'Two', '2001-02-20')");
  19. $dbh->query("INSERT INTO phptest VALUES(3, 'three', 'Three', '2001-02-21')");
  20. print "before commit: ";
  21. dumptable();
  22. $dbh->commit();
  23. print "after commit: ";
  24. dumptable();
  25. $dbh->query("INSERT INTO phptest VALUES(4, 'four', 'Four', '2001-02-22')");
  26. $dbh->query("INSERT INTO phptest VALUES(5, 'five', 'Five', '2001-02-23')");
  27. print "before rollback: ";
  28. dumptable();
  29. $dbh->rollback();
  30. print "after rollback: ";
  31. dumptable();
  32. $dbh->autoCommit(true);
  33. $dbh->query("INSERT INTO phptest VALUES(6, 'six', 'Six', '2001-02-24')");
  34. $dbh->query("INSERT INTO phptest VALUES(7, 'seven', 'Seven', '2001-02-25')");
  35. print "before autocommit+rollback: ";
  36. dumptable();
  37. $dbh->rollback();
  38. print "after autocommit+rollback: ";
  39. dumptable();
  40.  
  41. print "testing that select doesn't disturbe opcount: ";
  42. $dbh->autoCommit(false);
  43. $dbh->simpleQuery("SELECT * FROM phptest");
  44. $dbh->simpleQuery("SELECT a,c FROM phptest");
  45. $dbh->simpleQuery("SELECT b,d FROM phptest");
  46. if ($dbh->transaction_opcount == 0) {
  47.     print "ok\n";
  48. } else {
  49.     print "failed (count=$dbh->transaction_opcount)\n";
  50. }
  51.  
  52. ?>
  53.