Ich versuche, ein Datenbankelement mit dem Benutzernamen Schlüssel meiner DB abrufen. Ich habe den folgenden PHP-Code:AWS DynamoDB getItem Element durch Benutzernamen nicht funktioniert
$result = $DBclient->getItem(array(
"TableName" => $TableName,
"ConsistentRead" => true,
"Key" => array(
"username" => strtolower($_POST["username"])
)
));
Nachdem es läuft, der folgende Fehler auftritt:
Fatal error: Uncaught Aws\DynamoDb\Exception\DynamoDbException: AWS Error Code: SerializationException, Status Code: 400, AWS Request ID: (...), AWS Error Type: client, AWS Error Message: Expected null, User-Agent: aws-sdk-php2/2.8.31 Guzzle/3.9.3 curl/7.51.0 PHP/5.6.30 thrown in (...)\vendor\aws\aws-sdk-php\src\Aws\Common\Exception\NamespaceExceptionFactory.php on line 91
Meine Tabelle drei Tasten hat (Indizes, Zeilen ...): Benutzername (S), Passwort (S), und ID (N)
Ich lese die Dokumentation, aber ich denke, ich vermisse etwas hier.
Was die Partition Schlüssel der Tabelle ist? Was meinst du mit drei Schlüsseln? Bitte geben Sie die Schlüsseldefinition Ihrer Tabelle an. – notionquest
Der Parameter "Key" im Aufruf von "getItem()" muss in seiner Gesamtheit eine Referenz auf den Primärschlüssel der DynamoDb-Tabelle sein. Das bedeutet den Partitionsschlüssel und auch den Sortierschlüssel, wenn Sie einen haben. Wenn 'Benutzername' nicht der Primärschlüssel ist, dann möchten Sie wahrscheinlich die 'Scan()' Methode anstelle von 'getItem()' verwenden. – Octopus
@notionquest Mein Primärschlüssel ist *** Benutzername *** und sein Sekundärschlüssel ist *** Passwort ***. Die sekundären Indizes sind *** Email *** und *** ID ***. –