Nadstavba nad cMySQL
a cQuery
.
Získání:
cd TARGET_PATH
git submodule add -b main --depth=1 [email protected]: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);
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
.
<?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();
<?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();