Rumah  >  Soal Jawab  >  teks badan

ConditionExpression attribute_not_exists()

Saya cuba menggunakan ConditionExpression apabila memasukkan item dalam pangkalan data tetapi ia tidak berfungsi, skrip php rosak apabila fungsi Putitem() berjalan.

Nak masukkan barang kalau tak ada.

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

Saya mencuba var_dump $response tetapi kod tersebut rosak pada fungsi di atas.

nombor bersiri Ia adalah kunci partition dan harus berfungsi seperti yang diharapkan.

Kod di bawah berfungsi dengan baik tetapi dia menggantikan item sedia ada dengan nilai baharu yang saya tidak mahu berlaku.

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

P粉132730839P粉132730839227 hari yang lalu414

membalas semua(1)saya akan balas

  • P粉667649253

    P粉6676492532024-03-30 00:46:00

    Apabila syarat yang anda tetapkan bernilai palsu , adakah dijangkakan anda akan kembali ke blok CondidtionCheckFailedException。尝试将代码包装在 try/catch untuk melihat sama ada ia berfungsi seperti yang diharapkan?

    try {
    $response = $client->putItem(array(
        'TableName' => 'tablename',
        'Item' => array(
            'serialNumber'   => array('S' => 'test123'),
            'deviceType' => array('S' => '1')
        )
    ));
    }
    catch(Exception $e) {
      echo $e->getMessage();
    }

    balas
    0
  • Batalbalas