首页 > 解决方案 > 使用 php 将实体添加到数据存储区

问题描述

我正在尝试将实体添加到数据存储区。谁能看到我哪里出错了?我已经能够编辑实体但无法添加实体。

注册.php

        require_once __DIR__ . '/vendor/autoload.php';

        use Google\Cloud\Datastore\DatastoreClient;
        $projectId = "assignment-2-2020";
        $datastore = new DatastoreClient([ 'projectId' => $projectId]);

        $transaction = $datastore->transaction();
        $key = $datastore->key('user');
        $task = $transaction->lookup ($key);
        $task['Name/ID'] = $_POST['id'];
        $task['name'] = $_POST['name'];
        $task['password'] = $_POST['password'];
        $transaction->update($task);
        $transaction->commit();    

$_SESSION['username'] = $_POST['name'];

if (!is_null($_POST['name'])) {
echo '<script type="text/javascript">
window.location = "/main.php"
</script>';
}

?>

这是我的数据存储

在此处输入图像描述

标签: phpdatastore

解决方案


我的解决方案到底!

<?php 
    $kind = 'user';
    $id = $_POST['id'];
    $name = $_POST['name'];
    $password = $_POST['password'];



            require_once __DIR__ . '/vendor/autoload.php';

            use Google\Cloud\Datastore\DatastoreClient;
            $projectId = "assignment-2-2020";
            $datastore = new DatastoreClient([ 'projectId' => $projectId]);  
            $key = $datastore->key($kind, $id);

            $task = $datastore->entity($key, [
                'name' => $name,
                'password' => $password,
            ]);
            $datastore->insert($task);

    $_SESSION['username'] = $_POST['name'];

    if (!is_null($_POST['name'])) {
    echo '<script type="text/javascript">
    window.location = "/main.php"
    </script>';
    }

    ?>

推荐阅读