Skip to content

genexusproject/YSPDO

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

YSPDO

Class in PHP YSPDO is a PDO helper to manipulate dynamically database records using arrays

Initialize class

Without defining settings

$db = new YSPDO; // Change the values of $settings variable in class

Defining settings

$db = new YSPDO([
    'driver'    => 'mysql',
    'host'      => 'localhost',
    'port'      => 3306,
    'charset'   => 'utf8',
    'database'  => 'dbname',
    'user'      => 'root',
    'password'  => ''
]);

Compare PDO and YSPDO with CRUD

Start connection

// PDO
$pdo = new PDO('DRIVER:host=HOST;dbname=DB_NAME', DB_USER, DB_PASSWORD);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

// YSPDO
$db = new YSPDO([
    'driver'    => 'DRIVER',
    'host'      => 'HOST',
    'database'  => 'DB_NAME',
    'user'      => 'DB_USER',
    'password'  => 'DB_PASSWORD'
]);

CREATE

// PDO
$stmt = $pdo->prepare('INSERT INTO `peoples` (`name`, `email`, `country`) VALUES (?, ?, ?)');
$stmt->bindValue(1, 'Gabriel Almeida', PDO::PARAM_STR);
$stmt->bindValue(2, '[email protected]', PDO::PARAM_STR);
$stmt->bindValue(3, 'Brazil', PDO::PARAM_STR);
$stmt->execute();
echo $stmt->lastInsertId();

// YSPDO
$stmt = $db->insert('peoples',[
  'name'    => 'Gabriel Almeida',
  'email'   => '[email protected]',
  'country' => 'Brazil'
]);
echo $stmt->lastInsertId();

READ

// PDO
$stmt = $pdo->prepare('SELECT `name`,`email`,`address`,`company` FROM `peoples` WHERE id>=?');
$stmt->bindValue(1, 100, PDO::PARAM_INT);
$stmt->execute();

print_r( $stmt->fetchAll(PDO::FETCH_COLUMN) );

// YSPDO
$stmt = $db->select('peoples',['name','email','address','company'],[
  'id{>=}' => 100
]);

print_r( $stmt->fetchAll('COLUMN') );

UPDATE

// PDO
$stmt = $pdo->prepare('UPDATE `peoples` SET `phone`=?, `address`=? WHERE id=?');
$stmt->bindValue(1, '(00) 0000-0000', PDO::PARAM_STR);
$stmt->bindValue(2, '4129 Magna. Avenue', PDO::PARAM_STR);
$stmt->bindValue(3, 100, PDO::PARAM_INT);
$stmt->execute();

// YSPDO
$stmt = $db->update('peoples',[
  'phone' => '(00) 0000-0000',
  'address' => '4129 Magna. Avenue',
],[
  'id' => 100
]);

DELETE

// PDO
$stmt = $pdo->prepare('DELETE FROM `peoples` WHERE id=?');
$stmt->bindValue(1, 100, PDO::PARAM_INT);
$stmt->execute();

// YSPDO
$stmt = $db->delete('peoples',[
  'id' => 100
]);

SELECT

fetch

$db->select('peoples','all',[
    'email' => '[email protected]'
])->fetch();

fetchAll

$db->select('peoples')->fetchAll();

fetch setting type of return

$db->select('peoples','all',[
    'email' => '[email protected]'
])->fetch('OBJ');

fetch all setting type of return

$db->select('peoples')->fetchAll('OBJ');

Selecting columns

$db->select('peoples',['name','email','phone'])->fetchAll();

DISTINCT

$db->select('peoples',[
    'DISTINCT' => 'name'
    // OR
    'DISTINCT' => ['name','phone','date']
])->fetchAll();

ALIASES

$db->select('peoples',[
    'AS' => [
        'name' => 'yourName',
        'date' => 'birthday',
        'email' => 'contact'
    ]
])->fetchAll();

Operators

$db->select('peoples','all',[
    'id{>=}' => 100
])->fetchAll();

rowCount

$db->select('peoples','all',[
    'email' => '[email protected]'
])->rowCount();

ORDER BY

$db->select('peoples','all',[
    'ORDER' => 'city'
// OR
    'ORDER' => 'name DESC'
// OR
    'ORDER' => ['name DESC','city ASC']
])->fetchAll();

BETWEEN

$db->select('peoples','all',[
    'BETWEEN' => [
        'id' => [1,25]
        // OR
        'name' => ['a','b']
        // OR
        'date' => ['05/04/1980','05/04/1990']
    ]
])->fetchAll();

NOT BETWEEN

$db->select('peoples','all',[
    '!BETWEEN' => [
        'id' => [1,25]
        // OR
        'name' => ['a','b']
        // OR
        'date' => ['05/04/1980','05/04/1990']
    ]
])->fetchAll();

LIKE

$db->select('peoples','all',[
    'LIKE' => [
        'name' => 'g%'
    ]
])->fetchAll();

NOT LIKE

$db->select('peoples','all',[
    '!LIKE' => [
        'name' => 'g%'
    ]
])->fetchAll();

LIMIT

$db->select('peoples','all',[
    'LIMIT' => 10
])->fetchAll()

IN

$db->select('peoples','all',[
    'IN' => [
        'city' => ['Acoz','Pietraroja','Martelange','Relegem']
    ]
])->fetchAll();

NOT IN

$db->select('peoples','all',[
    '!IN' => [
        'city' => ['Acoz','Pietraroja','Martelange','Relegem']
    ]
])->fetchAll();

Using IN | BETWEEN | NOT LIKE | ORDER BY

$db->select('peoples','all',[
    'IN' => [
        'date' => ['02/11/1985','11/27/1997','09/24/1969','01/15/1985','09/12/1986']
    ],
    'BETWEEN' => [
        'id' => [1,50]
    ],
    '!LIKE' => [
        'city' => 's%'
    ],
    'ORDER' => 'city ASC'
])->fetchAll();

CREATE DATABASE

$db->createDB('dbname');

DELETE DATABASE

$db->deleteDB('dbname');

CREATE TABLE

$db->createTable('teste',[
    'id' => [
        'varchar',
        255,
        'AUTO_INCREMENT',
        '!NULL'
    ],
    'email' => [
        'varchar',
        100,
        '!NULL',
        'COMMENT' => 'Comment row'
    ],
    'PRIMARY KEY' => ['id']
],[
    'ENGINE' => 'MyISAM',
    'DEFAULT CHARSET' => 'utf8',
    'COLLATE' => 'utf8_bin',
    'STATS_PERSISTENT' => 0,
    'COMMENT' => 'comment'
]);

INSERT INTO

$db->insert('peoples',[
    'id' => 301,
    'name' => 'Gabriel',
    'phone' => '+0000000000',
    'date' => '00/00/0000',
    'email' => '[email protected]',
    'address' => 'Street teste address nº 1000 Av test',
    'city' => 'Araguaina',
    'country' => 'Brazil',
    'company' => 'No Company',
]);

UPDATE

$db->update('peoples',[
    'phone' => '+1111111111',
    'date' => '11/11/1111',
    'email' => '[email protected]',
    'address' => 'Street teste address nº 1000 Av test'
],[ 'id' => 301 ]);

DELETE

$db->delete('peoples',[
    'id' => 301
]);

DELETE TABLE

$db->deleteTable('peoples');

TRUNCATE TABLE

$db->truncate('peoples');

Available Functions

->getAvailableDrivers()
->commit()
->beginTransaction()
->rollBack()
->inTransaction()
->exec()
->quote()
->errorCode()
->errorInfo()
->query()
->rowCount()
->lastInsertId()
->prepare()
->bindColumn()
->bindParam()
->bindValue()
->closeCursor()
->columnCount()
->execute()
->fetch()
->fetchAll()
->fetchColumn()
->fetchObject()
->getAttribute()
->setAttribute()
->select()
->insert()
->update()
->delete()
->createDB()
->deleteDB()
->createTable()
->deleteTable()
->truncate()

REQUIREMENTS

PHP Version 7.x or newer PDO and PDO_MYSQL extensions enabled

LICENCE

MIT

About

Class in PHP YSPDO is a PDO helper to manipulate dynamically database records using arrays

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages