ymvas/ymsql

There is no license information available for the latest version (v2.1.5) of this package.

SQL Helper

Maintainers

Details

github.com/y-vas/ymsql

Source

Issues

Installs: 54

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Watchers: 0

Forks: 0

Open Issues: 0

Type:package

v2.1.5 2023-05-25 20:57 UTC

README

// site https://ymvas.com/ymsql

YMSQL is a query helper and abstraction layer for php.

COMPOSER INSTALATION

composer require ymvas/ymsql

Basic Script

use YMSQL\YMSQL;

// declare the database variables in ENV
$_ENV[  'DB_HOST'  ] = 'host';
$_ENV['DB_USERNAME'] = 'name';
$_ENV['DB_PASSWORD'] = 'pass';
$_ENV['DB_DATABASE'] = 'dtbs';

$v = new YMSQL( );
$query = $v->query(
   " SELECT * FROM Table T
     WHERE TRUE
    { AND T.name = :name } "
  ,[ 'name' => 'ymsql' ]
  , true  
);

// what query will return
/*
  $query
  "
  SELECT * FROM Table T
  WHERE TRUE
  AND T.name = 'ymsql'
  "
*/

$res = $v->get( $list = true );
//returns a standart class object

// if you want to return the mysqli instance run this instead
// $mysqli = $v->run( $list = true );

Handeling Big queries is now easy

Given this values and this query

$values = [
  'name'     => 'ymsql',
  'getbasic' => true,
  'pass'     => 'secret'
]

Givent Query

SELECT
  :name
  { , d.name :extra_cols }
  { , d.name ,d.surname, d.pass  getbasic; }
  , d.id
FROM dbtable d
WHERE TRUE
AND d.surname like '%{:surname}%'
{ AND d.type = i:type }
{ AND d.pass = s:pswd }
{ AND d.id   = i:id   }

Output Query

SELECT
  ymsql
  , d.name ,d.surname, d.pass
  , d.id
FROM dbtable d
WHERE TRUE
AND d.surname like '%%'
AND d.pass = 'secret'

Transformers

transformer                                                            variables                                                            returns                                                           
i 'string',0 ,'123.3', null 0,0 ,123, 0
+i 'string',0 ,'-123.3', -2 0,0 ,123, 2
f 'string',0 ,'123.3', null 0,0 ,123.3, 0
+f -3, -1.3 ,0 ,'123.3' , null 3, 1.3 ,0 ,123.3, 0
s 'string',0 ,'123.3', null 'string','0','123.3',''
t ' string ',0 ,'123.3', null 'string','0','123.3',''
a ['string',0 ,'123.3', null] 'string,0,123.3,'
j ['string',0 ,'123.3', null] '["string",0,"123.3",null]'

Classes

  • VSQL
    • Query Compiler php $db->query('select * from dbtable',array());
    • Fetch Rows php $db->get( $list = false );
    • Execute php $db->run( $list = false ); /* retuns mysql instance */