Чтобы отобразить ошибку mysqli prepare, достаточно той строчки, которая написана второй сверху.
Это
единственное, что нужно для отображения ошибок mysqli. Ну и разумеется нужно настроить отображение ошибок РНР в целом.
А вот бессмысленные пляски с бубном, которые только засоряют код и не несут никакой полезной информации, надо вычистить. И оставить только нормальный код
function AddTable($data)
{
global $DB;
$query = 'INSERT INTO table (title) VALUES (?)';
$stmt = $DB->prepare($query);
$stmt->bind_param('s', $data['title']);
$stmt->execute();
return $DB->insert_id;
}
после этого сразу выяснится, что ошибка возникает не здесь, а совсем в другом месте.
После этого нужно будет переписать в том месте точно так же, как здесь, чтобы выводилось
нормальное сообщение об ошибке, содержащее, в числе прочего,
имя файла и номер строки, на которой поизошла ошибка
В класс, кстати, эту отдельно стоящую функцию запихивать не нужно.