Reference documentation and code samples for the Cloud Spanner Client class StructValue.
Defines a struct parameter value with its fields.
This class is included to provide a fluent interface to build complex struct parameter values for your queries against Cloud Spanner. If your struct does or may include unnamed fields, or duplicate field names, you must use a StructValue. In most cases, however, an associative array may be used.
Please note that query results expressed as structs will not be returned using this class. Query results will always be expressed as a PHP array. This class is intended to be used to create complex struct values only.
If your query contains duplicate field names, it must be returned as a name/value
pair as demonstrated in the example below using Result::RETURN_NAME_VALUE_PAIR
.
Example:
use Google\Cloud\Spanner\Database;
use Google\Cloud\Spanner\SpannerClient;
use Google\Cloud\Spanner\Result;
use Google\Cloud\Spanner\StructType;
use Google\Cloud\Spanner\StructValue;
$spanner = new SpannerClient();
$database = $spanner->connect('my-instance', 'my-database');
$res = $database->execute('SELECT * FROM UNNEST(ARRAY(SELECT @structParam))', [
'parameters' => [
'structParam' => (new StructValue)
->add('foo', 'bar')
->add('foo', 2)
->addUnnamed('this field is unnamed')
],
'types' => [
'structParam' => (new StructType)
->add('foo', Database::TYPE_STRING)
->add('foo', Database::TYPE_INT64)
->addUnnamed(Database::TYPE_STRING)
]
])->rows(Result::RETURN_NAME_VALUE_PAIR)->current();
echo $res[0]['name'] . ': ' . $res[0]['value'] . PHP_EOL; // "foo: bar"
echo $res[1]['name'] . ': ' . $res[1]['value'] . PHP_EOL; // "foo: 2"
echo $res[2]['name'] . ': ' . $res[2]['value'] . PHP_EOL; // "2: this field is unnamed"
Methods
__construct
Parameter | |
---|---|
Name | Description |
values |
array[]
An array containing a field value. Each value
must be of form |
add
Add a single value to the struct.
Example:
$structValue->add('firstName', 'John');
Parameters | |
---|---|
Name | Description |
name |
string|null
The struct field name. |
value |
mixed
The struct field value. |
Returns | |
---|---|
Type | Description |
Google\Cloud\Spanner\StructValue | The current instance, for chaining additional struct values. |
addUnnamed
Add an unnamed value to the struct.
Example:
$structValue->addUnnamed('John');
Parameter | |
---|---|
Name | Description |
value |
mixed
The struct field value. |
Returns | |
---|---|
Type | Description |
Google\Cloud\Spanner\StructValue | The current instance, for chaining additional struct values. |
values
Get the list of values.
Returns | |
---|---|
Type | Description |
array[] |