Zacznijmy od tego, że to nie ma prawa działać.
Cały PHP wykonuje się w momencie obsługi zapytania o stronę przez serwer. To, że w kodzie umieściłeś
<script>function func() {
<?php
, nie znaczy że ten PHP magicznie wykona się w momencie gdy na przeglądarce u usera wywoła się funkcja JSowa; przecież Twój serwer nie wie o tym, co się dzieje na przeglądarce usera.
Żeby serwer mógł coś zrobić (np wstawić do bazy danych), musi dostać zapytanie od klienta. Więc albo zrób zwykły <form>, formularz wysyłający POSTa na Twój serwer i w osobnym .php zrób obsługę tego zapytania z INSERTem do bazy; albo zrób to samo, tylko zamiast formularza, wyślij zapytanie dynamicznie AJAXem (`fetch()` lub starszy `XMLHttpRequest`). Jedyna różnica, czy wysłanie zapytania spowoduje przeładowanie strony czy nie.