Returning the number of records per day
Aside from @Sumurai8 recommendations, the sql query can be indeed complexified a bit to return all the results in one go:

SELECT DATE_FORMAT(`sessionStart`, '%Y-%m-%d') AS `day`, COUNT(*) AS `sessions`
FROM `sessions` 
WHERE 
    DATE(`sessionStart`) BETWEEN DATE_SUB(CURDATE(), INTERVAL 90 DAY) AND CURDATE()
GROUP BY
    `day`
ORDER BY
    `day`


It only needs to be executed once, and then iterated over the result set using your favorite FETCH_XXX method.