PHP code example of israel-nogueira / galaxy-db

1. Go to this page and download the library: Download israel-nogueira/galaxy-db library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

israel-nogueira / galaxy-db example snippets


use IsraelNogueira\galaxyDB\Core\GalaxyDB;

// Criar instância
$db = new GalaxyDB();

// Select
$users = $db->table('users')
            ->where('status', 'active')
            ->orderBy('name', 'ASC')
            ->limit(10)
            ->select();

// Insert
$db->table('users');
$db->name = 'João';
$db->email = '[email protected]';
$userId = $db->insert();

// Update
$db->table('users')
   ->where('id', 1)
   ->update(['name' => 'João Silva']);

// Delete
$db->table('users')
   ->where('id', 1)
   ->delete();

$db->where('status', 'active');
$db->where('age', 18, '>=');
$db->whereIn('department', ['TI', 'RH', 'Vendas']);
$db->whereBetween('salary', 1000, 5000);
$db->whereLike('name', '%João%');
$db->whereNull('deleted_at');
$db->whereNotNull('email');
$db->orWhere('status', 'pending');

$db->orderBy('name', 'ASC')
   ->orderBy('created_at', 'DESC')
   ->groupBy('department')
   ->distinct();

$db->limit(10);           // LIMIT 10
$db->limit(10, 20);       // LIMIT 20, 10 (offset, limit)

// Encontrar por ID
$user = $db->table('users')->find(1);

// Encontrar ou falhar
$user = $db->table('users')->findOrFail(1);

// Primeiro registro
$user = $db->table('users')
           ->where('email', '[email protected]')
           ->first();

// Contar registros
$count = $db->table('users')
            ->where('status', 'active')
            ->count();

// Verificar existência
$exists = $db->table('users')
             ->where('email', '[email protected]')
             ->exists();

// Pegar apenas uma coluna
$names = $db->table('users')->pluck('name');

// Processar em chunks
$db->table('users')->chunk(100, function($users) {
    foreach ($users as $user) {
        // Processar usuário
    }
});

$db->beginTransaction();

try {
    $db->table('users');
    $db->name = 'João';
    $db->insert();
    
    $db->table('logs');
    $db->action = 'user_created';
    $db->insert();
    
    $db->commit();
} catch (Exception $e) {
    $db->rollback();
    throw $e;
}

$users = [
    ['name' => 'João', 'email' => '[email protected]'],
    ['name' => 'Maria', 'email' => '[email protected]'],
    ['name' => 'Pedro', 'email' => '[email protected]']
];

$db->table('users')->insertBatch($users);

// Auto-detecta requisição DataTables e processa
$_EXEMPLO = new GalaxyDB();
$_EXEMPLO->table("users");
$_EXEMPLO->where('status', 'active');
$_EXEMPLO->prepare_dataTable();
$result = $_EXEMPLO->dataTable();

header('Content-Type: application/json');
die(json_encode($result));

$db = new GalaxyDB();
$db->table("products");
$db->where('available', 1);
$db->prepare_dataTable(
    ['name', 'sku', 'description'],  // Colunas pesquisáveis
    ['name', 'price', 'created_at']  // Colunas ordenáveis (opcional)
);
$result = $db->dataTable();

echo json_encode($result);

$response = (new GalaxyDB())
    ->table("orders")
    ->where('status', 'pending')
    ->where('created_at', '2024-01-01', '>=')
    ->prepare_dataTable(['order_number', 'customer', 'total'])
    ->dataTable();

die(json_encode($response));

class User extends GalaxyDB
{
    protected string $table = 'users';
    protected array $columnsBlocked = ['password'];
    
    public function getActive(): array
    {
        return $this->where('status', 'active')
                    ->where('deleted_at', null, 'IS NULL')
                    ->select();
    }
    
    public function getActiveDataTable(): array
    {
        return $this->where('status', 'active')
                    ->prepare_dataTable(['name', 'email', 'phone'])
                    ->dataTable();
    }
}

// Uso
$user = new User();
$activeUsers = $user->getActive();
$dataTableResponse = $user->getActiveDataTable();

$db = new GalaxyDB([
    'DB_TYPE' => 'mysql',
    'DB_HOST' => 'localhost',
    'DB_PORT' => '3306',
    'DB_DATABASE' => 'meu_banco',
    'DB_USERNAME' => 'usuario',
    'DB_PASSWORD' => 'senha',
    'DB_CHAR' => 'utf8mb4'
]);

// .env
DB_TYPE=mysql
DB_HOST=localhost
DB_PORT=3306
DB_DATABASE=meu_banco
DB_USERNAME=usuario
DB_PASSWORD=senha
DB_CHAR=utf8mb4

// PHP
$db = new GalaxyDB();

class User extends GalaxyDB
{
    protected string $table = 'users';
    protected ?array $customConnectData = [
        'DB_TYPE' => 'mysql',
        'DB_HOST' => 'localhost',
        'DB_DATABASE' => 'usuarios_db'
    ];
}

// Query com retorno
$result = $db->raw('SELECT * FROM users WHERE id = :id', ['id' => 1]);

// Query sem retorno (INSERT, UPDATE, DELETE)
$affected = $db->exec('UPDATE users SET status = :status', ['status' => 'active']);

$db->setDebug(true);
$users = $db->table('users')->select();

// Ver última query executada
echo $db->getLastQuery();

// Ver último ID inserido
echo $db->lastInsertId();

// Ver linhas afetadas
echo $db->affectedRows();

// Executa stored procedure chamando sp_nome_da_procedure
$result = $db->sp_listar_usuarios(1, 'active');