ConditionExpression attribut_not_exists()
P粉132730839
P粉132730839 2024-03-29 09:20:08
0
1
427

J'ai essayé d'utiliser ConditionExpression lors de l'insertion d'éléments dans la base de données mais cela ne fonctionne pas, le script php s'arrête lorsque la fonction Putitem() s'exécute.

Je souhaite insérer l'élément s'il n'existe pas.

$response = $client->putItem(array(
    'TableName' => 'tablename',
    'Item' => array(
        'serialNumber'   => array('S' => 'test123'),
        'deviceType' => array('S' => '1')
    ),
    'ConditionExpression' => 'attribute_not_exists(serialNumber)'
));

J'ai essayé var_dump $response mais le code tombe en panne sur la fonction ci-dessus.

serialNumber Il s'agit d'une clé de partition et devrait fonctionner comme prévu.

Le code ci-dessous fonctionne bien mais il remplace les éléments existants par de nouvelles valeurs, ce que je ne veux pas qu'il se produise.

$response = $client->putItem(array(
    'TableName' => 'tablename',
    'Item' => array(
        'serialNumber'   => array('S' => 'test123'),
        'deviceType' => array('S' => '1')
    )
));

P粉132730839
P粉132730839

répondre à tous(1)
P粉667649253

Lorsque la condition que vous avez définie est fausse, est-il prévu que vous reveniez au bloc CondidtionCheckFailedException。尝试将代码包装在 try/catch pour voir s'il fonctionne comme prévu ?

try {
$response = $client->putItem(array(
    'TableName' => 'tablename',
    'Item' => array(
        'serialNumber'   => array('S' => 'test123'),
        'deviceType' => array('S' => '1')
    )
));
}
catch(Exception $e) {
  echo $e->getMessage();
}
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal