Why does the donation process not produce a receipt either on screen or dispatched by email to donor?
'Failed to update contribution in database' tells us that your Contribution is never fully completed on the CiviCRM side of things - and hence it will not get to the part where CiviCRM sends out a receipt. 

In other words - the monies are processed on the PayPal side of things - but when CiviCRM hears about it - and is trying to record that the transaction was successful - it runs into a Failed to update.