Changes

Jump to navigation Jump to search
384 bytes added ,  15:53, 17 January 2016
no edit summary
<p>In the The query mode of the [[Clients]] allows you to bind external variables to a query can be send to and evaluate the server and executedquery in an iterative manner. For this you have to call the The <code>query()</code> functionof the <code>Session</code> with your defined query. This will return instance returns a new query objectwhich comes with an forward-only iterator to get each result of the query.Furthermore it is possible to bind variables to the query using the <code>bind()</code> functionof the query objectinstance.</p>
==Usage==
<p>The query execution works as follows:</p>
#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 your XQuery expression to get your a query object.#Optionally bind variables to the query with one of the <code>bind()</code> functionfunctions.#Initialize query output Optionally bind a value to the context item via <code>initcontext()</code>.#Iterate through the query object with the <code>more()</code> and <code>next()</code> functions. If # As an error occursalternative, an exception is throwncall <code>execute()</code> to get the whole result at a time.# <code>info()</code> gives you information on query evaluation.# <code>options()</code> returns the query serialization parameters.#Close Don't forget to close the query with <code>close()</code>.
==PHP Example in [https://svn.uni-konstanz.de/dbis/basex/trunk/api/etc/php/ PHP]==
<pre class="brushTaken from our [https://github.com/BaseXdb/basex-api/blob/master/src/main/php/QueryBindExample.php repository]:python">import BaseXClient, time
try<pre class="brush:php"><?php/* # initialize timer * This example shows how queries can be executed in an iterative manner. start = time * Documentation: http://basex.clockorg/api * * (C) BaseX Team 2005-15, BSD License */include("BaseXClient.php");
try { # // create session $session = BaseXClient.new Session('"localhost'", 1984, "admin", "admin"); try { // create query instance $input = 'admindeclare variable $name external; ', . 'adminfor $i in 1 to 10 return element { $name } { $i }'; $query = $session->query($input);
# perform command and print returned string // bind variable print session.execute $query->bind("xquery 1 to 10$name", "number");
# close session // print result session.close print $query->execute()."\n";
# print time needed // close query instance time = (time.clock $query->close() - start) * 1000 print time, "ms.";
except IOError as } catch (Exception $e) { // print exception print $e:->getMessage(); # }  // close session $session->close(); } catch (Exception $e) { // print exception print $e->getMessage();}?>
</pre>
for more examples see the [[Languages|languages]] section=Changelog= ;Version 7.2[[Category:Developer]][[Category* Added:Server]][[Category:Language Bindings]]{{Code|context()}} function
Bureaucrats, editor, reviewer, Administrators
13,550

edits

Navigation menu