Difference between revisions of "Query Mode"
Jump to navigation
Jump to search
(→Usage) |
|||
(5 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
<p>The query mode of the [[Clients]] allows you to bind external variables to a query | <p>The query mode of the [[Clients]] allows you to bind external variables to a query | ||
and evaluate the query in an iterative manner. The <code>query()</code> function of the | and evaluate the query in an iterative manner. The <code>query()</code> function of the | ||
− | <code>Session</code> instance returns a new query instance. | + | <code>Session</code> instance returns a new query instance.</p> |
==Usage== | ==Usage== | ||
Line 21: | Line 21: | ||
Taken from our [https://github.com/BaseXdb/basex-api/blob/master/src/main/php/QueryBindExample.php repository]: | Taken from our [https://github.com/BaseXdb/basex-api/blob/master/src/main/php/QueryBindExample.php repository]: | ||
− | < | + | <syntaxhighlight lang="php"> |
<?php | <?php | ||
/* | /* | ||
Line 27: | Line 27: | ||
* Documentation: http://basex.org/api | * Documentation: http://basex.org/api | ||
* | * | ||
− | * (C) BaseX Team 2005- | + | * (C) BaseX Team 2005-15, BSD License |
*/ | */ | ||
include("BaseXClient.php"); | include("BaseXClient.php"); | ||
Line 63: | Line 63: | ||
} | } | ||
?> | ?> | ||
− | </ | + | </syntaxhighlight> |
− | + | =Changelog= | |
− | + | ||
− | + | ;Version 7.2 | |
+ | |||
+ | * Added: {{Code|context()}} function |
Revision as of 14:20, 27 February 2020
The query mode of the Clients allows you to bind external variables to a query
and evaluate the query in an iterative manner. The query()
function of the
Session
instance returns a new query instance.
Usage
The query execution works as follows:
- Create a new session instance with hostname, port, username and password.
- Call
query()
with your XQuery expression to get a query object. - Optionally bind variables to the query with one of the
bind()
functions. - Optionally bind a value to the context item via
context()
. - Iterate through the query object with the
more()
andnext()
functions. - As an alternative, call
execute()
to get the whole result at a time. info()
gives you information on query evaluation.options()
returns the query serialization parameters.- Don't forget to close the query with
close()
.
PHP Example
Taken from our repository:
<syntaxhighlight lang="php"> <?php /*
* This example shows how queries can be executed in an iterative manner. * Documentation: http://basex.org/api * * (C) BaseX Team 2005-15, BSD 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");
// print result print $query->execute()."\n";
// close query instance $query->close();
} catch (Exception $e) { // print exception print $e->getMessage(); }
// close session $session->close();
} catch (Exception $e) {
// print exception print $e->getMessage();
} ?> </syntaxhighlight>
Changelog
- Version 7.2
- Added:
context()
function