Отвратительный код, но конкретно в этом случае переменную $db надо объявить глобальной:
<?php
require('database.php');
$db = new SafeMySQL();
class Add
{
public function showphotos() {
global $db;
$data = $db->getAll("SELECT * FROM photos");
echo json_encode($data);
}
}
$test = new Add();
$test->showphotos();
А лучше сделать явную зависимость класса Add от подключения:
<?php
require('database.php');
class Add
{
protected $db;
public function __construct(SafeMySQL $db)
{
$this->db = $db;
}
public function showphotos() {
$data = $this->db->getAll("SELECT * FROM photos");
echo json_encode($data);
}
}
$db = new SafeMySQL();
$test = new Add($db);
$test->showphotos();