我尝试在数据库中插入项目时使用 ConditionExpression,但它不起作用,当 Putitem() 函数运行时,php 脚本会中断。
如果该项目不存在,我想插入该项目。
$response = $client->putItem(array( 'TableName' => 'tablename', 'Item' => array( 'serialNumber' => array('S' => 'test123'), 'deviceType' => array('S' => '1') ), 'ConditionExpression' => 'attribute_not_exists(serialNumber)' ));
我尝试 var_dump $response,但代码在上面的函数上中断。
serialNumber 它是一个分区键,应该按预期工作。
下面的代码工作正常,但他用新值替换现有项目,这是我不希望发生的情况。
$response = $client->putItem(array( 'TableName' => 'tablename', 'Item' => array( 'serialNumber' => array('S' => 'test123'), 'deviceType' => array('S' => '1') ) ));
P粉6676492532024-03-30 00:46:00
当您设置的条件计算结果为 false 时,预计您会返回 CondidtionCheckFailedException
。尝试将代码包装在 try/catch
块中,看看它是否按预期工作?
try { $response = $client->putItem(array( 'TableName' => 'tablename', 'Item' => array( 'serialNumber' => array('S' => 'test123'), 'deviceType' => array('S' => '1') ) )); } catch(Exception $e) { echo $e->getMessage(); }