Вы должны включить error_reporting, чтобы увидеть сообщения об ошибках по php, в противном случае вы получите пустую страницу, которую вы описываете.
В верхней части вашего файла index.php, включите эти:
ini_set('display_errors', true);
error_reporting(E_ALL | E_STRICT);
Не забудьте выключить его на своем рабочем компьютере, это только для разработки.
Вы объявили переменную $ instance как статическую внутри функции, а не внутри класса. Это две совершенно разные вещи. Посмотрите использование статических переменных здесь и посмотрите использование статического свойства класса здесь . Вы нуждаетесь в последнем, поэтому измените свой код на это:
class SQL {
static $instance;
public static function singleton()
{
if(!isset(self::$instance))
self::$instance = new SQL;
return self::$instance;
}
...
}
Реализация класса SQL или любого вида доступа к базе данных в виде синглтона - очень плохая идея, в долгосрочной перспективе она сильно вас укусит. Если окажется, что ты
вам нужна поддержка другой базы данных, например, вам нужно извлечь информацию из форума, который находится в другой БД, чем ваш сайт, у вас будут серьезные проблемы.