Skip to content

IndigoMultimediaTeam/db_utils

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 

Repository files navigation

LTS+sub-branches

db_utils

Nadstavba nad cMySQL a cQuery.

Získání/nastavení pro pužití ve vl. projektu

Získání:

cd TARGET_PATH
git submodule add -b main --depth=1 git@github.com:IndigoMultimediaTeam/db_utils.git

… více o submodulech v git submodule. V případě „negit” projektu, stačí prostě klasicky nakolnovat.

Po require_*, před použitím je potřeba namapovat databázi (typicky instanci cMySQL):

<?php
$__DB = new cMySQL($__DB_CONNECT_STRING); //viz typicky `kerner/kernel.php`
require_once 'db_utils/db_utils.php';
db_utils::setDB($__DB);

Použití

Třída umožňuje řetězení:

<?php
db_utils::query(/* A */)->/* B */->execute()->/* C */;

… kde:

  • A: Klasický MySQL dotaz podporující „statické proměnné” ::promenna:: a „dynamické” ::index:: známé z cQuery.
  • B: Metody set/map/setJoinComma pro práci se „statickými proměnnými”.
  • C: Metody známé z cQuery.

Příklady

<?php
$rows= db_utils::query("SELECT ::cols:: FROM `table` AS T")
	->setJoinComma('cols', array('id','name'), '`', 'T') //= SELECT T.`id`, T.`name` FROM `table` AS T
	->execute()
	->Rows();
<?php
$q_rows= db_utils::query("SELECT ::cols:: FROM `table` AS T")->freeze();
$row_id= $q_rows->set('cols', 'id')->execute()->Rows();
$row_all= $q_rows->set('cols', '*')->execute()->Rows();
<?php
$row= db_utils::query("SELECT * FROM `table` WHERE id=::0::")
	->execute(5)
	->Row();

Testování

<?php
db_utils::setDB(db_utils::debugDB());
$row= db_utils::query("SELECT * FROM `table` WHERE id=::0::")
	->execute(5)
	->Row();
<?php
$row= db_utils::query(db_utils::debugDB(), "SELECT * FROM `table` WHERE id=::0::")
	->execute(5)
	->Row();

About

Nadstavba nad cMySQL a cQuery

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages