Указанный код корректный.
Проверьте, что в
$_POST
действительно передаются id и carname:
print("<pre>");print_r($_POST);print("</pre>");
Если есть такие ключи, то указанный вами код попробуйте заменить на следующий:
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
$sql = 'UPDATE `cars` SET `name` = :carname WHERE `id` = :id';
$s = $db->prepare($sql);
$s->bindValue(':id', $_POST['id']);
$s->bindValue(':carname', $_POST['carname']);
$s->execute();
print("<pre>");print_r($s->errorInfo());print("</pre>");
Так будет показана ошибка, которая возникла при запросе.