Referência
SELECT
Use q_select() para construir queries de leitura.
Assinatura
public function q_select(string $columns = '*')Exemplo básico
use RotyQuery\QueryBuilder;
$qb = new QueryBuilder();
$qb->q_setTable('users');
$qb->q_select();
echo $qb->q_builder();
// SELECT * FROM usersSelecionando colunas específicas
$qb->q_setTable('users');
$qb->q_select('id, name, email');
echo $qb->q_builder();
// SELECT id, name, email FROM usersINSERT
Use q_insert() para montar um INSERT com placeholders.
Assinatura
public function q_insert(array $data)Exemplo
use RotyQuery\QueryBuilder;
$qb = new QueryBuilder();
$qb->q_setTable('users');
$qb->q_insert([
'name' => 'Ana',
'email' => 'ana@example.com',
]);
echo $qb->q_getQuery();
// INSERT INTO users (name,email) VALUES (:name,:email)Bindings
O método armazena um array de bindings em memória para uso posterior (por exemplo, ao executar com PDO).
Estrutura gerada:
[
':name' => 'Ana',
':email' => 'ana@example.com',
]UPDATE
Use q_update() para montar um UPDATE com placeholders.
Assinatura
public function q_update(array $data)Exemplo
use RotyQuery\QueryBuilder;
$qb = new QueryBuilder();
$qb->q_setTable('users');
$qb->q_update([
'name' => 'Ana Silva',
'active' => 1,
]);
$qb->q_where('id', 10);
echo $qb->q_builder();
// UPDATE users SET name = :name,active = :active WHERE id = 10Bindings
Estrutura gerada:
[
':name' => 'Ana Silva',
':active' => 1,
]WHERE
Use q_where() para adicionar condições. As condições são acumuladas e concatenadas com AND.
Assinatura
public function q_where(string $column, int|string $value)Exemplo
use RotyQuery\QueryBuilder;
$qb = new QueryBuilder();
$qb->q_setTable('users');
$qb->q_select();
$qb->q_where('role', 'admin');
$qb->q_where('active', 1);
echo $qb->q_builder();
// SELECT * FROM users WHERE role = 'admin' AND active = 1Como o valor é serializado
- Valores numéricos são inseridos sem aspas.
- Demais valores viram strings com aspas simples e escape básico.
Observação de segurança
O método atual monta o WHERE por concatenação e faz escape simples. Em aplicações reais, prefira queries parametrizadas (prepared statements) para evitar SQL Injection.
JOIN
Use q_join() para anexar um JOIN à query atual (normalmente um SELECT).
Assinatura
public function q_join(string $table, string $key, string $field)Exemplo
use RotyQuery\QueryBuilder;
$qb = new QueryBuilder();
$qb->q_setTable('users');
$qb->q_select('users.id, users.name, profiles.avatar');
$qb->q_join('profiles', 'users.id', 'profiles.user_id');
echo $qb->q_builder();
// SELECT users.id, users.name, profiles.avatar FROM users JOIN profiles ON users.id = profiles.user_idNotas
- O método adiciona
JOIN(inner join) diretamente na SQL. - Para joins mais complexos (LEFT/RIGHT, múltiplas condições), será necessário estender a implementação atual.
DELETE
Use q_del() para montar um DELETE.
Assinatura
public function q_del(array $data)Exemplo
use RotyQuery\QueryBuilder;
$qb = new QueryBuilder();
$qb->q_setTable('users');
$qb->q_del([
'id' => 10,
]);
echo $qb->q_getQuery();
// DELETE FROM users WHERE id = :idObservações
- Diferente de
q_where(), este método recebe um array e sempre geraWHERE coluna = :placeholderusando a primeira chave. - Se você precisa de múltiplas condições ou
AND/OR, prefira construir umDELETEviaq_where()após umq_select()/extensão do builder.