Compare commits
7 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| bcae723140 | |||
| 0f07724585 | |||
| a6c11c1015 | |||
| 81a9c919dd | |||
| 3b5808523d | |||
| ee8c32ee27 | |||
| a9f8601384 |
38
inc/Db.php
38
inc/Db.php
@@ -80,6 +80,9 @@ class Db extends PhpObject
|
|||||||
|
|
||||||
//Timezone
|
//Timezone
|
||||||
$this->setQuery("SET time_zone='".date_default_timezone_get()."'");
|
$this->setQuery("SET time_zone='".date_default_timezone_get()."'");
|
||||||
|
|
||||||
|
//Returned Types
|
||||||
|
$this->oConnection->options(MYSQLI_OPT_INT_AND_FLOAT_NATIVE, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function __destruct()
|
public function __destruct()
|
||||||
@@ -480,6 +483,28 @@ class Db extends PhpObject
|
|||||||
return $iTableId;
|
return $iTableId;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Unlike insertUpdateRow, this function depends on the table defined UNIQUE KEY
|
||||||
|
* and not on the custom-defined $asKeys table
|
||||||
|
*/
|
||||||
|
public function upsertRow($sTableName, $asData, $asUpdateFields)
|
||||||
|
{
|
||||||
|
$this->cleanSql($sTableName);
|
||||||
|
$this->cleanSql($asData);
|
||||||
|
$this->cleanSql($asUpdateFields);
|
||||||
|
|
||||||
|
$asQuotedData = $this->addQuotes($asData);
|
||||||
|
$asUpdateData = array_intersect_key($asData, array_flip($asUpdateFields));
|
||||||
|
$asQuotesdUpdateData = $this->addQuotes($asUpdateData);
|
||||||
|
|
||||||
|
$sQuery =
|
||||||
|
"INSERT INTO ".$sTableName." (`".implode("`, `", array_keys($asQuotedData))."`) ".
|
||||||
|
"VALUES (".implode(", ", $asQuotedData).") ".
|
||||||
|
"ON DUPLICATE KEY UPDATE ".$this->implodeAll($asQuotesdUpdateData, " = ", ", ");
|
||||||
|
|
||||||
|
return $this->setQuery($sQuery)?$this->getLastId():0;
|
||||||
|
}
|
||||||
|
|
||||||
public function selectInsert($sTableName, $asData, $asKeys=array())
|
public function selectInsert($sTableName, $asData, $asKeys=array())
|
||||||
{
|
{
|
||||||
return $this->insertUpdateRow($sTableName, $asData, $asKeys, false);
|
return $this->insertUpdateRow($sTableName, $asData, $asKeys, false);
|
||||||
@@ -561,7 +586,8 @@ class Db extends PhpObject
|
|||||||
{
|
{
|
||||||
if(is_array($asConstraints))
|
if(is_array($asConstraints))
|
||||||
{
|
{
|
||||||
if(array_key_exists('constOpe', $asInfo) && array_key_exists($sField, $asInfo['constOpe']) && $asInfo['constOpe'][$sField]=='BETWEEN') {
|
$sConstOpe = $asInfo['constOpe'][$sField] ?? '';
|
||||||
|
if($sConstOpe == 'BETWEEN') {
|
||||||
//Between
|
//Between
|
||||||
$asSelection[$sField] = $asConstraints['from'].' AND '.$asConstraints['to'];
|
$asSelection[$sField] = $asConstraints['from'].' AND '.$asConstraints['to'];
|
||||||
$asInfo['constOpe'][$sField] = " BETWEEN ";
|
$asInfo['constOpe'][$sField] = " BETWEEN ";
|
||||||
@@ -569,7 +595,7 @@ class Db extends PhpObject
|
|||||||
else {
|
else {
|
||||||
//Multiple values (IN)
|
//Multiple values (IN)
|
||||||
$asSelection[$sField] = "(".implode(', ', $asConstraints).")";
|
$asSelection[$sField] = "(".implode(', ', $asConstraints).")";
|
||||||
$asInfo['constOpe'][$sField] = " IN ";
|
$asInfo['constOpe'][$sField] = ($sConstOpe=='NOT IN')?" NOT IN ":" IN ";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
elseif(!array_key_exists('constOpe', $asInfo) || !array_key_exists($sField, $asInfo['constOpe'])) $asInfo['constOpe'][$sField] = " = ";
|
elseif(!array_key_exists('constOpe', $asInfo) || !array_key_exists($sField, $asInfo['constOpe'])) $asInfo['constOpe'][$sField] = " = ";
|
||||||
@@ -629,12 +655,12 @@ class Db extends PhpObject
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function selectRow($sTableName, $asConstraints=array(), $sColumnName='*')
|
public function selectRow($sTableName, $asConstraints=array(), $sColumnName='*', $asConstOpe=[])
|
||||||
{
|
{
|
||||||
//Table ID directly
|
//Table ID directly
|
||||||
if(!is_array($asConstraints)) $asConstraints = array($this->getId($sTableName)=>$asConstraints);
|
if(!is_array($asConstraints)) $asConstraints = array($this->getId($sTableName)=>$asConstraints);
|
||||||
|
|
||||||
$asRows = $this->selectRows(array('select'=>$sColumnName, 'from'=>$sTableName, 'constraint'=>$asConstraints));
|
$asRows = $this->selectRows(array('select'=>$sColumnName, 'from'=>$sTableName, 'constraint'=>$asConstraints, 'constOpe'=>$asConstOpe));
|
||||||
$iCountNb = count($asRows);
|
$iCountNb = count($asRows);
|
||||||
switch($iCountNb)
|
switch($iCountNb)
|
||||||
{
|
{
|
||||||
@@ -665,13 +691,13 @@ class Db extends PhpObject
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function selectValue($sTableName, $sColumnName, $oConstraints=array())
|
public function selectValue($sTableName, $sColumnName, $oConstraints=array(), $asConstOpe=[])
|
||||||
{
|
{
|
||||||
if(!is_array($oConstraints))
|
if(!is_array($oConstraints))
|
||||||
{
|
{
|
||||||
$oConstraints = array($this->getId($sTableName)=>$oConstraints);
|
$oConstraints = array($this->getId($sTableName)=>$oConstraints);
|
||||||
}
|
}
|
||||||
$oResult = $this->selectRow($sTableName, $oConstraints, $sColumnName);
|
$oResult = $this->selectRow($sTableName, $oConstraints, $sColumnName, $asConstOpe);
|
||||||
return empty($oResult)?false:$oResult;
|
return empty($oResult)?false:$oResult;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ class Mask extends PhpObject
|
|||||||
private $oLang;
|
private $oLang;
|
||||||
private $sTimezone;
|
private $sTimezone;
|
||||||
|
|
||||||
const MASK_FOLDER = 'masks/';
|
const MASK_FOLDER = '../src/masks/';
|
||||||
const MASK_EXT = '.html';
|
const MASK_EXT = '.html';
|
||||||
const START_TAG = 'START';
|
const START_TAG = 'START';
|
||||||
const END_TAG = 'END';
|
const END_TAG = 'END';
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ class Translator extends PhpObject
|
|||||||
private $asLanguages;
|
private $asLanguages;
|
||||||
private $asTranslations; // [lang][key_word] = translation
|
private $asTranslations; // [lang][key_word] = translation
|
||||||
|
|
||||||
const LANG_FOLDER = 'languages/';
|
const LANG_FOLDER = '../languages/';
|
||||||
const LANG_EXT = '.lang';
|
const LANG_EXT = '.lang';
|
||||||
const LANG_SEP = '=';
|
const LANG_SEP = '=';
|
||||||
const DEFAULT_LANG = 'en';
|
const DEFAULT_LANG = 'en';
|
||||||
@@ -72,7 +72,7 @@ class Translator extends PhpObject
|
|||||||
}
|
}
|
||||||
|
|
||||||
public function getTranslations($sLang='') {
|
public function getTranslations($sLang='') {
|
||||||
return $this->getTranslation('', $sLang);
|
return $this->getTranslation('', array(), $sLang);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getHashToPage($asMenuPages)
|
public function getHashToPage($asMenuPages)
|
||||||
|
|||||||
Reference in New Issue
Block a user