Cloud Datastore Client - Class GqlQuery (1.18.1)

Reference documentation and code samples for the Cloud Datastore Client class GqlQuery.

Query Google Cloud Datastore using GQL .

By default, parameters MUST be bound using named or positional bindings. Literals are disabled by default, and must be enabled by setting $options['allowLiterals'] to true . As with any SQL dialect, using parameter binding is highly recommended.

Idiomatic usage is via Google\Cloud\Datastore\Query\Google\Cloud\Datastore\DatastoreClient::gqlQuery() .

Example:

 use Google\Cloud\Datastore\DatastoreClient;

$datastore = new DatastoreClient();

$query = $datastore->gqlQuery('SELECT * FROM Companies');
$res = $datastore->runQuery($query);

foreach ($res as $company) {
    echo $company['companyName'] . PHP_EOL;
} 
 // Literals must be provided as bound parameters by default:
$query = $datastore->gqlQuery('SELECT * FROM Companies WHERE companyName = @companyName', [
    'bindings' => [
        'companyName' => 'Google'
    ]
]); 
 // Positional binding is also supported:
$query = $datastore->gqlQuery('SELECT * FROM Companies WHERE companyName = @1 LIMIT 1', [
    'bindings' => [
        'Google'
    ]
]); 
 // While not recommended, you can use literals in your query string:
$query = $datastore->gqlQuery('SELECT * FROM Companies WHERE companyName = \'Google\'', [
    'allowLiterals' => true
]); 
 // Using cursors as query bindings:
$cursor = $datastore->cursor($cursorValue);

$query = $datastore->gqlQuery('SELECT * FROM Companies OFFSET @offset', [
    'bindings' => [
        'offset' => $cursor
    ]
]); 

Methods

__construct

Parameters
Name
Description
entityMapper
Google\Cloud\Datastore\EntityMapper

An instance of EntityMapper

query
string

The GQL Query string.

options
array

Configuration Options

↳ allowLiterals
bool

Whether literal values will be allowed in the query string. Parameter binding is strongly encouraged over literals. Defaults to false .

↳ bindings
array

An array of values to bind to the query string. Queries using Named Bindings should provide a key/value set, while queries using Positional Bindings must provide a simple array. Applications with no need for multitenancy should not set this value.

queryObject

Format the query for use in the API

This method is used internally to run queries and is not intended for use outside the internal library API

Returns
Type
Description
array

queryKey

Return the query_type union field name.

Returns
Type
Description
string

canPaginate

Indicate that this type does not support automatic pagination.

Returns
Type
Description
bool

start

Fulfill the interface, but cursors are handled inside the query string.

Parameter
Name
Description
cursor
string
Returns
Type
Description
void

jsonSerialize

Define the json representation of the object.

Returns
Type
Description
array

Constants

BINDING_NAMED

  Value: 'namedBindings' 
 

BINDING_POSITIONAL

  Value: 'positionalBindings' 
 
Design a Mobile Site
View Site in Mobile | Classic
Share by: