GEMVC Documentation

Complete guide to building modern, secure PHP applications with GEMVC framework

Enhanced QueryBuilder Usage Guide

This guide demonstrates how to use the enhanced QueryBuilder system with practical examples showcasing all the modern features, safety enhancements, and best practices.

🚀 Getting Started

<?php
use Gemvc\Database\QueryBuilder;

// Create a new QueryBuilder instance
$queryBuilder = new QueryBuilder();

📖 Table of Contents

SELECT Queries

Basic SELECT

$users = $queryBuilder->select('id', 'name', 'email')
    ->from('users')
    ->run();

if ($users === null) {
    echo "Error: " . $queryBuilder->getError();
} else {
    foreach ($users as $user) {
        echo "User: " . $user['name'] . "\n";
    }
}

SELECT with Aliases and JOINs

$userPosts = $queryBuilder->select('u.name', 'p.title', 'p.created_at')
    ->from('users', 'u')
    ->leftJoin('posts p ON u.id = p.user_id')
    ->whereEqual('u.status', 'active')
    ->orderBy('p.created_at', true) // DESC
    ->run();

SELECT with Complex Conditions

$products = $queryBuilder->select('*')
    ->from('products')
    ->whereEqual('category', 'electronics')
    ->whereBetween('price', 100, 500)
    ->whereIn('brand', ['apple', 'samsung', 'google'])
    ->whereNotNull('description')
    ->orderBy('price')
    ->limit(20)
    ->run();

Get JSON Results

$jsonData = $queryBuilder->select('id', 'name', 'email')
    ->from('users')
    ->whereEqual('status', 'active')
    ->json();

if ($jsonData === null) {
    echo "Error: " . $queryBuilder->getError();
} else {
    echo $jsonData; // JSON string ready for API response
}