Delicious Bookmark this on Delicious Share on Facebook SlashdotSlashdot It! Digg! Digg



PHP : Function Reference : SESAM Database Functions : sesam_query

sesam_query

Perform a SESAM SQL query and prepare the result ()
string sesam_query ( string query [, bool scrollable] )

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).

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.

Parameters

query

The query statement.

scrollable

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.

Return Values

Returns a SESAM "result identifier" on success, or FALSE on error. This result id is used by the other functions.

Examples

Example 2216.  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);
?>


Change Language


Follow Navioo On Twitter
sesam_affected_rows
sesam_commit
sesam_connect
sesam_diagnostic
sesam_disconnect
sesam_errormsg
sesam_execimm
sesam_fetch_array
sesam_fetch_result
sesam_fetch_row
sesam_field_array
sesam_field_name
sesam_free_result
sesam_num_fields
sesam_query
sesam_rollback
sesam_seek_row
sesam_settransaction
eXTReMe Tracker