DB
[ class tree: DB ] [ index: DB ] [ all elements ]

Source for file fetchmodes.inc

Documentation is available at fetchmodes.inc

  1. <?php
  2.  
  3. /**
  4.  * Tests the drivers' various fetch methods
  5.  *
  6.  * Executed by driver/02fetch.phpt
  7.  *
  8.  * PHP versions 4 and 5
  9.  *
  10.  * LICENSE: This source file is subject to version 3.0 of the PHP license
  11.  * that is available through the world-wide-web at the following URI:
  12.  * http://www.php.net/license/3_0.txt.  If you did not receive a copy of
  13.  * the PHP License and are unable to obtain it through the web, please
  14.  * send a note to license@php.net so we can mail you a copy immediately.
  15.  *
  16.  * @category   Database
  17.  * @package    DB
  18.  * @author     Daniel Convissor <danielc@php.net>
  19.  * @copyright  1997-2005 The PHP Group
  20.  * @license    http://www.php.net/license/3_0.txt  PHP License 3.0
  21.  * @version    $Id: fetchmodes.inc,v 1.11 2005/02/14 17:04:14 danielc Exp $
  22.  * @link       http://pear.php.net/package/DB
  23.  */
  24.  
  25. /**
  26.  * Local error callback handler
  27.  *
  28.  * Drops the phptest table, prints out an error message and kills the
  29.  * process.
  30.  *
  31.  * @param object  $o  PEAR error object automatically passed to this method
  32.  * @return void 
  33.  * @see PEAR::setErrorHandling()
  34.  */
  35. function pe($o{
  36.     global $dbh;
  37.  
  38.     $dbh->setErrorHandling(PEAR_ERROR_RETURN);
  39.     drop_table($dbh'phptest');
  40.  
  41.     die($o->toString());
  42. }
  43.  
  44. $dbh->setErrorHandling(PEAR_ERROR_CALLBACK'pe');
  45. $dbh->setOption('autofree'true);
  46.  
  47. $dbh->query("INSERT INTO phptest VALUES (1, 'one', 'One', '2001-02-16')");
  48. $dbh->query("INSERT INTO phptest VALUES (2, 'two', 'Two', '2001-02-15')");
  49. $dbh->query("INSERT INTO phptest VALUES (3, 'three', 'Three', '2001-02-14')");
  50.  
  51. print "testing fetchrow:\n";
  52. $sth $dbh->query("SELECT * FROM phptest");
  53. for ($i = 1; $i <= 5; $i++{
  54.     print "row $i";
  55.     $row $sth->fetchRow();
  56.     if (DB::isError($row)) {
  57.         print $row->toString("\n";
  58.         continue;
  59.     }
  60.     if (is_array($row)) {
  61.         print implode(', '$row"\n";
  62.     else {
  63.         var_dump($row);
  64.     }
  65. }
  66. $sth->free();  // keep fbsql happy.
  67.  
  68. $dbh->query('DELETE FROM phptest WHERE a <> 42');
  69.  
  70.  
  71. print "testing fetchmodes: fetchrow default default, portability mode DB_PORTABILITY_ALL ^ DB_PORTABILITY_RTRIM\n";
  72. $dbh->setOption('portability'DB_PORTABILITY_ALL ^ DB_PORTABILITY_RTRIM);
  73. $sth $dbh->query("SELECT * FROM phptest");
  74. $row $sth->fetchRow();
  75. print implode(" "array_keys($row))."\n";
  76. $actual implode(' 'array_values($row));
  77. switch ($dbh->phptype{
  78.     case 'fbsql':
  79.     case 'msql':
  80.     case 'mysql':
  81.     case 'mysqli':
  82.     case 'sqlite':
  83.         $expected '42 bing This is a test 1999-11-21';
  84.         break;
  85.     case 'ifx':
  86.         $expected '42 bing                                     This is a test                                                                                                                                                                                                                                                  1999-11-21          ';
  87.         break;
  88.     default:
  89.         $expected '42 bing                                     This is a test 1999-11-21';
  90. }
  91. if ($actual == $expected{
  92.     echo "output matched expected format\n";
  93. else {
  94.     echo "DIDN'T MATCH!  Expected output: '$expected'.  Actual output: '$actual'.\n";
  95. }
  96. $sth->free();  // keep fbsql happy.
  97.  
  98. print "testing fetchmodes: fetchinto default default\n";
  99. $dbh->setOption('portability'DB_PORTABILITY_ALL);
  100. $sth $dbh->query("SELECT * FROM phptest");
  101. $row = array();
  102. $sth->fetchInto($row);
  103. print implode(" "array_keys($row))."\n";
  104. print implode(' 'array_values($row))."\n";
  105. $sth->free();  // keep fbsql happy.
  106.  
  107. print "testing fetchmodes: fetchrow ordered default\n";
  108. $dbh->setFetchMode(DB_FETCHMODE_ORDERED);
  109. $sth $dbh->query("SELECT * FROM phptest");
  110. $row $sth->fetchRow();
  111. print implode(" "array_keys($row))."\n";
  112. $sth->free();  // keep fbsql happy.
  113.  
  114. print "testing fetchmodes: fetchrow assoc default\n";
  115. $dbh->setFetchMode(DB_FETCHMODE_ASSOC);
  116. $sth $dbh->query("SELECT * FROM phptest");
  117. $row $sth->fetchRow();
  118. print implode(" "array_keys($row))."\n";
  119. $sth->free();  // keep fbsql happy.
  120.  
  121. print "testing fetchmodes: fetchrow ordered default with assoc specified\n";
  122. $dbh->setFetchMode(DB_FETCHMODE_ORDERED);
  123. $sth $dbh->query("SELECT * FROM phptest");
  124. $row $sth->fetchRow(DB_FETCHMODE_ASSOC);
  125. print implode(" "array_keys($row))."\n";
  126. $sth->free();  // keep fbsql happy.
  127.  
  128. print "testing fetchmodes: fetchrow assoc default with ordered specified\n";
  129. $dbh->setFetchMode(DB_FETCHMODE_ASSOC);
  130. $sth $dbh->query("SELECT * FROM phptest");
  131. $row $sth->fetchRow(DB_FETCHMODE_ORDERED);
  132. print implode(" "array_keys($row))."\n";
  133. $sth->free();  // keep fbsql happy.
  134.  
  135. print "testing fetchmodes: fetchinto ordered default\n";
  136. $dbh->setFetchMode(DB_FETCHMODE_ORDERED);
  137. $sth $dbh->query("SELECT * FROM phptest");
  138. $row = array();
  139. $sth->fetchInto($row);
  140. print implode(" "array_keys($row))."\n";
  141. $sth->free();  // keep fbsql happy.
  142.  
  143. print "testing fetchmodes: fetchinto assoc default\n";
  144. $dbh->setFetchMode(DB_FETCHMODE_ASSOC);
  145. $sth $dbh->query("SELECT * FROM phptest");
  146. $row = array();
  147. $sth->fetchInto($row);
  148. print implode(" "array_keys($row))."\n";
  149. $sth->free();  // keep fbsql happy.
  150.  
  151. print "testing fetchmodes: fetchinto ordered default with assoc specified\n";
  152. $dbh->setFetchMode(DB_FETCHMODE_ORDERED);
  153. $sth $dbh->query("SELECT * FROM phptest");
  154. $row = array();
  155. $sth->fetchInto($rowDB_FETCHMODE_ASSOC);
  156. print implode(" "array_keys($row))."\n";
  157. $sth->free();  // keep fbsql happy.
  158.  
  159. print "testing fetchmodes: fetchinto assoc default with ordered specified\n";
  160. $dbh->setFetchMode(DB_FETCHMODE_ASSOC);
  161. $sth $dbh->query("SELECT * FROM phptest");
  162. $row = array();
  163. $sth->fetchInto($rowDB_FETCHMODE_ORDERED);
  164. print implode(" "array_keys($row))."\n";
  165.  
  166. $sth->free();  // keep fbsql happy.
  167.                // keep ibase happy: can't drop tbl that has results open against it.
  168.  
  169. $dbh->setErrorHandling(PEAR_ERROR_RETURN);
  170. drop_table($dbh'phptest');

Documentation generated on Tue, 20 Mar 2007 05:30:30 -0500 by phpDocumentor 1.3.0. PEAR Logo Copyright © PHP Group 2004.