Skip to content

y-vas/ymsql

Folders and files

NameName
Last commit message
Last commit date

Latest commit

May 25, 2023
87300b1 · May 25, 2023

History

36 Commits
Jul 20, 2022
Jul 15, 2022
May 25, 2023
Jul 15, 2022
Jun 3, 2022
Apr 13, 2022
Apr 13, 2022
Jul 15, 2022
Apr 13, 2022
Jul 15, 2022

Repository files navigation

YMSQL

// 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 */

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published