jtrw/dao

Data Access Object for fork with DataBases

4.1.0 2024-07-23 08:31 UTC

This package is auto-updated.

Last update: 2024-08-24 08:42:38 UTC


README

Phpunit Codecov Latest Stable Version Total Downloads Latest Unstable Version License PHP Version Require

Data Access Object is tiny wrapper on php PDO. There was add more comfortable methods usage conditions in select query.

PDO Usage

<?php
$db = new PDO(
    $GLOBALS['config']['db']['dsn'],
    $GLOBALS['config']['db']['user'],
    $GLOBALS['config']['db']['pass']
);
$db->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC); 
$db->setAttribute(PDO::ATTR_ORACLE_NULLS, PDO::NULL_EMPTY_STRING); 
$db->setAttribute(PDO::ATTR_CASE, PDO::CASE_NATURAL); 


$res = $db->query('SET NAMES utf8mb4');

if (!$res) {
    throw new Exception('Database connection error);
}

$db = DataAccessObject::factory($db);

Search

$search = [
       'columnName'     => 5,
       'columnName2&IN' => [1, 2, 3, 4]
       'columnName3&<'  => 7,
       'columnName4&>=' => 3
     ];

$sql = "SELECT * FROM users";
$db->select($sql, $search, [], DataAccessObjectInterface::FETCH_ALL)->toNative();

Conditions

Env

make install

make start

make stop

Unittest

php ./vendor/phpunit/phpunit/phpunit -c ./tests/phpunit.xml --testdox --stderr --colors

make tests - run all tests with migrations

make run-tests - run all tests without migrations