   #PHP Manual SESAM database functions sesam_num_fields sesam_rollback

   PHP Manual
   Prev  Next
   ______________________________________________________________________

                                  sesam_query

   (PHP 3 CVS only)
   sesam_query -- Perform a SESAM SQL query and prepare the result

Description

   string sesam_query ( string query [, bool scrollable])

   Returns: A SESAM "result identifier" on success, or FALSE on error.

   A "result_id" resource is used by other functions to retrieve the
   query results.

   sesam_query() sends a query to the currently active database on the
   server. It can execute both "immediate" SQL statements and "select
   type" queries. If an "immediate" statement is executed, then no cursor
   is allocated, and any subsequent sesam_fetch_row() or
   sesam_fetch_result() call will return an empty result (zero columns,
   indicating end-of-result). For "select type" statements, a result
   descriptor and a (scrollable or sequential, depending on the optional
   boolean scrollable parameter) cursor will be allocated. If scrollable
   is omitted, the cursor will be sequential.

   When using "scrollable" cursors, the cursor can be freely positioned
   on the result set. For each "scrollable" query, there are global
   default values for the scrolling type (initialized to:
   SESAM_SEEK_NEXT) and the scrolling offset which can either be set once
   by sesam_seek_row() or each time when fetching a row using
   sesam_fetch_row().

   For "immediate" statements, the number of affected rows is saved for
   retrieval by the sesam_affected_rows() function.

   See also: sesam_fetch_row() and sesam_fetch_result().

   Example 1. Show all rows of the "phone" table as a HTML table
   <?php
   if (!sesam_connect("phonedb", "demo", "otto"))
       die("cannot connect");
   $result = sesam_query("select * from phone");
   if (!$result) {
       $err = sesam_diagnostic();
       die $err["errmsg"]);
   }
   echo "<table border>\n";
   // Add title header with column names above the result:
   if ($cols = sesam_field_array($result)) {
       echo "<tr><th colspan=" . $cols["count"] . ">Result:</th></tr>\n";
       echo "<tr>\n";
       for ($col = 0; $col < $cols["count"]; ++$col) {
           $colattr = $cols[$col];
           /* Span the table head over SESAM's "Multiple Fields": */
           if ($colattr["count"] > 1) {
               echo "<th colspan=\"" . $colattr["count"] . "\">" .
   $colattr["name"] .
                   "(1.." . $colattr["count"] . ")</th>\n";
               $col += $colattr["count"] - 1;
           } else
               echo "<th>" . $colattr["name"] . "</th>\n";
       }
       echo "</tr>\n";
   }
   do {
       // Fetch the result in chunks of 100 rows max.
       $ok = sesam_fetch_result($result, 100);
       for ($row=0; $row < $ok["rows"]; ++$row) {
           echo " <tr>\n";
           for ($col = 0; $col < $ok["cols"]; ++$col) {
               if (isset($ok[$col][$row])) {
                   echo "<td>" . $ok[$col][$row] . "</td>\n";
               } else {
                   echo "<td>-empty-</td>\n";
               }
           }
           echo "</tr>\n";
       }
   } while ($ok["truncated"]); // while there may be more data
   echo "</table>\n";
   // free result id
   sesam_free_result($result);
   ?>
   ______________________________________________________________________

   Prev             Home           Next
   sesam_num_fields  Up  sesam_rollback
