Difference between revisions of "Query Mode"
Jump to navigation
Jump to search
(→Usage) |
|||
Line 10: | Line 10: | ||
<p>The query execution works as follows:</p> | <p>The query execution works as follows:</p> | ||
− | #Create a new session instance with hostname, port, username and password. | + | # Create a new session instance with hostname, port, username and password. |
− | #Call the <code>query()</code> function of the session with the query as argument to get your query object. | + | # Call the <code>query()</code> function of the session with the query as argument to get your query object. |
− | #Optionally bind variables to the query with the <code>bind()</code> function. | + | # Optionally bind variables to the query with the <code>bind()</code> function. |
− | #Initialize query output via <code>init()</code>. | + | # Initialize query output via <code>init()</code>. |
− | #Iterate through the query object with the <code>more()</code> and <code>next()</code> functions. If an error occurs, an exception is thrown. | + | # Iterate through the query object with the <code>more()</code> and <code>next()</code> functions. If an error occurs, an exception is thrown. |
− | #Close the query with <code>close()</code>. | + | # As an alternative, call <code>execute()</code> to get the whole result at one time. |
+ | # Optionally, call <code>info()</code> to get information on the number of results, query time, etc. | ||
+ | # Close the query with <code>close()</code>. | ||
==Example in [https://svn.uni-konstanz.de/dbis/basex/trunk/api/etc/php/ PHP]== | ==Example in [https://svn.uni-konstanz.de/dbis/basex/trunk/api/etc/php/ PHP]== |
Revision as of 19:07, 5 February 2011
In the query mode of the Language Bindings, a query can be sent to the server and
executed in an iterative manner. For this, you need to call the query()
function
of the Session
with your defined query. This will return a query object,
which comes with a forward-only iterator to get each result of the query.
Furthermore, variables can be bound to the query using the bind()
function
of the query object.
Usage
The query execution works as follows:
- Create a new session instance with hostname, port, username and password.
- Call the
query()
function of the session with the query as argument to get your query object. - Optionally bind variables to the query with the
bind()
function. - Initialize query output via
init()
. - Iterate through the query object with the
more()
andnext()
functions. If an error occurs, an exception is thrown. - As an alternative, call
execute()
to get the whole result at one time. - Optionally, call
info()
to get information on the number of results, query time, etc. - Close the query with
close()
.
Example in PHP
<?php /* * This example shows how queries can be executed in an iterative manner. * Documentation: http://basex.org/api * * (C) BaseX Team 2005-11, ISC License */ include("BaseXClient.php"); try { // create session $session = new Session("localhost", 1984, "admin", "admin"); try { // create query instance $input = 'declare variable $name external; '. 'for $i in 1 to 10 return element { $name } { $i }'; $query = $session->query($input); // bind variable $query->bind("$name", "number"); // initialize query print $query->init(); // loop through all results while($query->more()) { print $query->next()."\n"; } // close query instance print $query->close(); } catch (Exception $e) { // print exception print $e->getMessage(); } // close session $session->close(); } catch (Exception $e) { // print exception print $e->getMessage(); } ?>
for more examples see the languages section.