I am trying to post some form data to Google Datastore, using this documentation here and here. I am struggling with knowing how to post the form data to the datastore, but I thought I had cracked it when I got the following error.
Parse error: syntax error, unexpected 'use' (T_USE) in record-usage.php on line 23
So my question is in two parts:
- how do I post data to the Datastore from my form? (the examples in the documentation seem to offer two different ways of posting to the store)
- how do I fix this syntax error?
Here is my code (it's actually line 7 in the sample below):
if(isset($_POST['submit'])) {
# Includes the autoloader for libraries installed with composer
require __DIR__ . '/vendor/autoload.php';
# Imports the Google Cloud client library
use Google\Cloud\Datastore\DatastoreClient;
# Your Google Cloud Platform project ID
$projectId = 'room-usage';
# Instantiates a client
$datastore = new DatastoreClient([
'projectId' => $projectId
]);
# The kind for the new entity
$kind = 'RoomUsage';
# The name/ID for the new entity
$name = $roomname + $_POST('timestamp');
# The Cloud Datastore key for the new entity
$taskKey = $datastore->key($kind, $name);
if($_POST('countinput') == '') {
$formdata->Headcount = $_POST('countslider');
} else {
$formdata->Headcount = $_POST('countinput');
}
$formdata->Timestamp = $_POST('timestamp');
$formdata->EnteredBy = $_POST('userid');
$formdata->RoomID = $_POST('roomid');
$formdata->Activity = $_POST('activity');
$formdata->Estimate = $_POST('estimate');
$formdata->NotAudited = $_POST('notaudited');
$formdata->Reason = $_POST('reason');
function save_room_usage(DatastoreClient $datastore, $formdata) {
$RoomUsage = $datastore->RoomUsage();
$transaction->updateBatch([$formdata]);
$transaction->commit();
}
# Prepares the new entity
$task = $datastore->entity($taskKey,
['Timestamp' => $_POST('timestamp'),
'Headcount' => $formdata->Headcount,
'EnteredBy' => $_POST('userid'),
'RoomID' => $_POST('roomid'),
'Activity' => $_POST('activity'),
'Estimate' => $_POST('estimate'),
'NotAudited' => $_POST('notaudited'),
'Reason' => $_POST('reason')]);
# Saves the entity
$datastore->upsert($task);
$status = 'Saved ' . $task->key() . ': ' . $task['description'];
}