The Database class in S-PHP provides a PDO-based database connection with support for prepared statements, protecting your application from SQL injection attacks.
use Sphp\Core\Database;$config = require('../app/config/config.php');$db = new Database($config);
However, in most cases, you’ll access the database through controllers or models where it’s already initialized:
class HomeController extends Controller{ public function index() { // $this->db is automatically available $users = $this->db->query('SELECT * FROM users'); }}
// Select all users$users = $db->query('SELECT * FROM users');// Select with WHERE clause$activeUsers = $db->query( 'SELECT * FROM users WHERE verified = ?', [1]);// Multiple conditions$result = $db->query( 'SELECT * FROM users WHERE verified = ? AND role = ?', [1, 'admin']);// With ORDER BY and LIMIT$recent = $db->query( 'SELECT * FROM posts WHERE status = ? ORDER BY created_at DESC LIMIT ?', ['published', 10]);
$query = ' SELECT u.*, p.title, p.content FROM users u LEFT JOIN posts p ON u.id = p.user_id WHERE u.verified = ? ORDER BY p.created_at DESC';$results = $db->query($query, [1]);
// Count records$result = $db->query( 'SELECT COUNT(*) as total FROM users WHERE verified = ?', [1]);$total = $result[0]['total'];// Other aggregates$stats = $db->query(' SELECT COUNT(*) as total, AVG(age) as average_age, MAX(created_at) as last_signup FROM users WHERE verified = ?', [1]);
use Sphp\Core\Controller;use Sphp\Core\View;class UserController extends Controller{ public function index() { $users = $this->db->query( 'SELECT id, name, email FROM users WHERE verified = ?', [1] ); View::render('users/index.php', ['users' => $users]); } public function show($id) { $user = $this->db->query( 'SELECT * FROM users WHERE id = ?', [$id] ); if (empty($user)) { // Handle not found View::render('404.html'); return; } View::render('users/show.php', ['user' => $user[0]]); }}
// UNSAFE - Never do this!$id = $_GET['id'];$query = "SELECT * FROM users WHERE id = $id";$result = $db->query($query);// SAFE - Always use prepared statements$id = $_GET['id'];$result = $db->query('SELECT * FROM users WHERE id = ?', [$id]);