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
- INSERT Queries
- UPDATE Queries
- DELETE Queries
- Enhanced WHERE Conditions
- Pagination & Limiting
- Error Handling
- Transactions
- Integration with Table Classes
- Best Practices
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
}