Help

Curl with PHP doesn't update record

3517 14
cancel
Showing results for 
Search instead for 
Did you mean: 
Albert_Muela_Do
5 - Automation Enthusiast
5 - Automation Enthusiast

Mi update with curl doesn’t work and i dont know where is the error
image
Record id, url and key are corrects (they works with delete and create rows), but not with update.
¿Can someone help me?
Thanks for your time!

14 Replies 14
Okeowo_Aderemi
4 - Data Explorer
4 - Data Explorer

Hi did you also test this out on Postman first to be sure there isn’t any issue with the endpoint, also what response did you get ?

I dont know if im doing good on Postman, is this correct or im doing something wrong?
image

Did you send the X-Airtable-Client-Secret in the header ?

This is mi header, i need something more here?
image

image

Albert_Muela_Do
5 - Automation Enthusiast
5 - Automation Enthusiast

Why i didn’t use it in create record or delete record and they works? I only need on update?

Welcome to the Airtable community!

To do an update you need a PATCH request. It looks like you are setting your custom request to PATH. Try adding the C.

Ops! That’s true, i add “C” but still doesnt work
image
Is param’s array correct?

Are you getting an error message? If so what?

Are your $params correct?
Are you updating one record, or multiple records?
If yo are updating only one record, are you using the endpoint for the record or the endpoint for the table?
If you are using the endpoint for the table, it looks like your body is missing the records key as described in the API documentation.

Mi params are correct: $field → Column name, $value → boolean (is check column)
Im updating only one record.
Im using table endpoint (that works on delete and insert statements)
The record’s key is in $record[‘id’] in $params, i not sure about that, for that i asked for mi param’s array.

This is mi create record
image
And this, si mi delete record:
image
They works fine, i dont know why mu update doesn’t, only the param’s array is the difference…

The top level object in the body should have a key of “records” whose value is the array of records. This key is at the same level as the “typecast” key.

Finally it works, the array was the problem. If i use this, all go fine:
image
Thanks all for your time and help!

Glad you got it working.

Is there a reason why you switched to doing the JSON encoding manually? That step is unrelated to including the top level “records” object key, which was your main problem. Depending on the names and values of your fields, you may eventually get values that will be very difficult to encode manually.