blues911/query-builder

PDO wrapper for building native SQL queries.

0.2.0 2023-01-05 13:54 UTC

This package is auto-updated.

Last update: 2024-06-05 17:00:14 UTC


README

Build Status

PDO wrapper for building native SQL queries.

This package does not follow to the best practice or something similar. It was developed for a testing purpose to build quick and dirty SQL queries.

Install

composer require blues911/query-builder

Example

Usage:

require('vendor/autoload.php');

use QueryBuilder\Builder as DB;

// init connection
$db = new DB([
    'mysql:dbname=test;host=localhost;port=3306;charset=utf8',
    'root',
    'password'
]);

// query all
$db->query("SELECT * FROM users")
    ->build()
    ->fetchAll();

// query one
$db->query("SELECT * FROM users WHERE id=:id")
    ->bindParams(['id', 1])
    ->build()
    ->fetch();

// count
$db->query("SELECT * FROM users")
    ->build()
    ->rowCount();

// debug params
$db->query("SELECT * FROM users WHERE status=:status AND role=:role")
    ->bindParams([
        ['status', 1],
        ['role', 'admin']
    ])
    ->build()
    ->debugParams();

Parameters binding:

// array
->bindParams(['key1', 'value1']);
->bindParams(['key2', 'value2']);

// multidimensional array
->bindParams([
    ['key1', 'value1'],
    ['key2', 'value2']
]);

Fetch result:

// object
->fetch();
->fetchAll();

// array
->fetch(true);
->fetchAll(true);

PDO Statement available via direct call:

$db->errorCode();
$db->errorInfo();
$db->getAvailableDrivers();