home *** CD-ROM | disk | FTP | other *** search
/ Enter 2004 June / ENTER.ISO / files / xampp-win32-1.4.5-installer.exe / xampp / bug22328.phpt < prev    next >
Encoding:
Text File  |  2004-03-24  |  1.2 KB  |  61 lines

  1. --TEST--
  2. DB_driver::bug22328
  3. --SKIPIF--
  4. <?php chdir(dirname(__FILE__)); require_once './skipif.inc'; ?>
  5. --FILE--
  6. <?php
  7. require_once './connect.inc';
  8.  
  9. /**
  10.  * Local error callback handler.
  11.  *
  12.  * Drops the phptest table, prints out an error message and kills the
  13.  * process.
  14.  *
  15.  * @param object  $o  PEAR error object automatically passed to this method
  16.  * @return void
  17.  * @see PEAR::setErrorHandling()
  18.  */
  19. function pe($o) {
  20.     global $dbh;
  21.  
  22.     $dbh->setErrorHandling(PEAR_ERROR_RETURN);
  23.     $dbh->query('DROP TABLE php_limit');
  24.  
  25.     die($o->toString());
  26. }
  27.  
  28.  
  29. $dbh->setErrorHandling(PEAR_ERROR_RETURN);
  30. $dbh->query('DROP TABLE php_limit');
  31.  
  32. $dbh->setErrorHandling(PEAR_ERROR_CALLBACK, 'pe');
  33.  
  34. $dbh->query('CREATE TABLE php_limit (a CHAR(20))');
  35.  
  36.  
  37. $res = $dbh->query('select * from php_limit');
  38. $error = 0;
  39. while ($row = $res->fetchRow(DB_FETCHMODE_ASSOC)) {
  40.     if (DB::isError($row) && $error) {
  41.         die('bug');
  42.     }
  43.     $res2 = $dbh->query("FAKE QUERY");
  44.     if (!DB::isError($res2)) {
  45.         die('bug');
  46.     }
  47.     $error = true;
  48. }
  49.  
  50.  
  51. switch ($dbh->phptype) {
  52.     case 'ibase':
  53.         $dbh->freeResult($res->result);  // Make interbase happy.
  54.         break;
  55. }
  56. $dbh->setErrorHandling(PEAR_ERROR_RETURN);
  57. $dbh->query('DROP TABLE php_limit');
  58.  
  59. ?>
  60. --EXPECT--
  61.