SQLGenix is your go-to SQL query generator that takes the pain out of database operations. Say goodbye to manual SQL writing and hello to elegant, chainable methods that make database interactions a breeze. Perfect for both rapid application development and sophisticated database management tasks.
- π― Smart Query Generation - Build complex SQL queries with simple, intuitive methods
- π Full CRUD Support - Handle SELECT, INSERT, UPDATE, and DELETE operations effortlessly
- π Multi-Database Support - Works seamlessly with MySQL, PostgreSQL, SQLite, and more
- π‘οΈ Robust Error Handling - Graceful exception management keeps your application stable
- β‘ Lightning Fast - Optimized for performance without sacrificing flexibility
- π Pagination Support - Built-in LIMIT, OFFSET, and page-based pagination
- π Query Caching - Intelligent caching system for improved performance
- π UNION Operations - Combine multiple queries with UNION and UNION ALL
- π¦ Bulk Operations - Efficient batch INSERT, UPDATE, and DELETE operations
- π Advanced Joins - Support for INNER, LEFT, RIGHT joins with complex conditions
- ποΈ Database Adapters - Adapter pattern for database-specific optimizations
Get started with Composer:
composer require sqlgenix/sqlgenixOr clone the repository manually:
git clone https://github.com/Inkflow59/SQLGenix.git
cd SQLGenix
composer installrequire 'src/SQLInsert.php';
$db = new Database();
$insert = new SQLInsert($db);
$insert->into('users')
->set(['name', 'email'], ['John Doe', 'john@example.com'])
->execute();require 'src/SQLSelect.php';
$db = new Database();
$select = new SQLSelect($db);
$result = $select->select(['name', 'email'])
->from('users')
->where('email = "john@example.com"')
->execute();require 'src/SQLUpdate.php';
$db = new Database();
$update = new SQLUpdate($db);
$update->table('users')
->set('name', 'Jane Doe')
->where('email = "john@example.com"')
->execute();require 'src/SQLDelete.php';
$db = new Database();
$delete = new SQLDelete($db);
$delete->from('users')
->where('email = "john@example.com"')
->execute();require 'src/SQLSelect.php';
$db = new Database();
$select = new SQLSelect($db);
$result = $select->select(['*'])
->from('users')
->where('status = "active"')
->orderBy(['created_at'], 'DESC')
->paginate(2, 20) // Page 2, 20 per page
->execute();require 'src/QueryCache.php';
require 'src/SQLSelect.php';
$cache = new QueryCache(100, 3600); // 100 items, 1 hour TTL
$db = new Database();
$select = new SQLSelect($db, $cache);
$result = $select->select(['*'])
->from('users')
->where('active = 1')
->execute(); // Cached automaticallyrequire 'src/SQLSelect.php';
$db = new Database();
$activeUsers = new SQLSelect($db);
$activeUsers->select(['name', 'email'])->from('active_users');
$inactiveUsers = new SQLSelect($db);
$inactiveUsers->select(['name', 'email'])->from('inactive_users');
$allUsers = new SQLSelect($db);
$result = $allUsers->select(['name', 'email'])
->from('current_users')
->union($activeUsers)
->unionAll($inactiveUsers)
->execute();require 'src/BulkOperations.php';
$db = new Database();
$bulk = new BulkOperations($db);
// Bulk insert 1000 records
$data = []; // Your data array
$result = $bulk->bulkInsert('users', ['name', 'email'], $data);
echo "Inserted: " . $result['inserted_rows'] . " rows";require 'src/DatabaseAdapterFactory.php';
require 'src/UniversalSQLSelect.php';
// Create MySQL adapter
$mysqlAdapter = DatabaseAdapterFactory::createMySQL([
'host' => 'localhost',
'database' => 'myapp',
'username' => 'user',
'password' => 'pass'
]);
// Create PostgreSQL adapter
$postgresAdapter = DatabaseAdapterFactory::createPostgreSQL([
'host' => 'localhost',
'database' => 'myapp',
'username' => 'user',
'password' => 'pass'
]);
// Same query works on both databases
$mysqlQuery = new UniversalSQLSelect($mysqlAdapter);
$postgresQuery = new UniversalSQLSelect($postgresAdapter);
$result = $mysqlQuery->select(['*'])->from('users')->execute();- PHP 7.0+
- Any major SQL database (MySQL, PostgreSQL, SQLite)
- Composer for dependency management
Run the test suite with:
composer testWe love contributions! Here's how you can help:
- Fork the repo
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
SQLGenix is MIT licensed. See the LICENSE file for details.
Questions or suggestions? Drop me a line
Made with β€οΈ by SQLGenix Team