è una query di tipo prepared statment quindi gli apici non servono

ho risolto da solo

le date le ho scritte nel seguente modo

$primo_giorno = date("d-m-Y", mktime(0,0,0,11,01,2009));
$ultimo_giorno = date("d-m-Y", mktime(0,0,0,11,30,2009));

e funziona, ma ho visto che posso scrivere più semplicemente:

$primo_giorno = "01/11/2009";
$ultimo_giorno = "30/11/2009";

anche se la query si apetta un campo di tipo date, come si vede da questa riga di codice:

$stmt->bind_param("idd ", $id, $primo_giorno, $ultimo_giorno);

probabilmente il php la converte da stringa in data automaticamente