Das Problem liegt in:
$query = $this->db->conn->prepare('SELECT value, param FROM ws_settings WHERE name = ?');
$query->bind_param('s', $setting);
Der prepare()
Methode kann false zurückgeben und das solltest du prüfen. Warum es false zurückgibt , vielleicht der Tabellenname oder Spaltennamen (in SELECT oder WHERE Klausel) sind nicht korrekt?
Erwägen Sie auch die Verwendung von etwas wie $this->db->conn->error_list
um Fehler zu untersuchen, die beim Analysieren der SQL aufgetreten sind. (Ich gebe gelegentlich die eigentlichen SQL-Anweisungszeichenfolgen aus und füge sie zum Testen auch in phpMyAdmin ein, aber da ist definitiv etwas schiefgegangen.)