Minor fixes
This commit is contained in:
80
inc/db.php
80
inc/db.php
@@ -12,7 +12,7 @@ class Db extends PhpObject
|
||||
const DB_NO_DATA = 'ERR_2';
|
||||
const DB_NO_TABLE = 'ERR_3';
|
||||
const ID_TAG = 'id_';
|
||||
|
||||
|
||||
//Database formats
|
||||
const MONTH_FORMAT = 'Ym';
|
||||
const DATE_FORMAT = 'Y-m-d';
|
||||
@@ -20,7 +20,7 @@ class Db extends PhpObject
|
||||
|
||||
public $sDbState;
|
||||
private $bTrace;
|
||||
|
||||
|
||||
/**
|
||||
* SQL connection Handle
|
||||
* @var mysqli
|
||||
@@ -28,7 +28,7 @@ class Db extends PhpObject
|
||||
private $oConnection;
|
||||
private $sDatabase;
|
||||
private $asOptions;
|
||||
|
||||
|
||||
/**
|
||||
* Tables & fields descriptions
|
||||
* array( 'tables'=>array('table_name1'=>array('table_field1', 'table_field2', ...), 'table_name2'=>array(...)),
|
||||
@@ -93,7 +93,7 @@ class Db extends PhpObject
|
||||
$this->bTrace = $bTrace;
|
||||
//if($bTrace) $this->setDebug(true);
|
||||
}
|
||||
|
||||
|
||||
public function getTrace()
|
||||
{
|
||||
return $this->bTrace;
|
||||
@@ -114,10 +114,10 @@ class Db extends PhpObject
|
||||
//Create tables
|
||||
@array_walk($this->getInstallQueries(), array($this, 'setQuery'));
|
||||
}
|
||||
|
||||
|
||||
public function getBackup() {
|
||||
$sBackupFile = uniqid('backup_').'.sql';
|
||||
|
||||
|
||||
$sAppPath = '';
|
||||
if(strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') $sAppPath = 'C:\ProgramData\xampp\mysql\bin\\';
|
||||
exec($sAppPath.'mysqldump --user='.Settings::DB_LOGIN.' --password='.Settings::DB_PASS.' '.Settings::DB_NAME.' --add-drop-table --result-file='.$sBackupFile);
|
||||
@@ -128,7 +128,7 @@ class Db extends PhpObject
|
||||
}
|
||||
else return false;
|
||||
}
|
||||
|
||||
|
||||
public function restoreBackup($sBackupFile) {
|
||||
$sAppPath = '';
|
||||
if(file_exists($sBackupFile)) {
|
||||
@@ -137,11 +137,11 @@ class Db extends PhpObject
|
||||
}
|
||||
else return false;
|
||||
}
|
||||
|
||||
|
||||
public function loadFile($sFilePath) {
|
||||
set_time_limit(0);
|
||||
$bResult = false;
|
||||
|
||||
|
||||
if(file_exists($sFilePath))
|
||||
{
|
||||
$sContent = file_get_contents($sFilePath);
|
||||
@@ -162,7 +162,7 @@ class Db extends PhpObject
|
||||
$bResult = false;
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
$bResult = true;
|
||||
$sSql = '';
|
||||
}
|
||||
@@ -172,7 +172,7 @@ class Db extends PhpObject
|
||||
else $this->addError('File is empty: '.basename($sFilePath));
|
||||
}
|
||||
else $this->addError('File not found: '.$sFilePath);
|
||||
|
||||
|
||||
return $bResult;
|
||||
}
|
||||
|
||||
@@ -234,7 +234,7 @@ class Db extends PhpObject
|
||||
}
|
||||
return $oResult;
|
||||
}
|
||||
|
||||
|
||||
public function getLastError()
|
||||
{
|
||||
return $this->oConnection->error;
|
||||
@@ -302,12 +302,12 @@ class Db extends PhpObject
|
||||
$asTableIds = array_map(array('self', 'getId'), $asTables);
|
||||
return in_array($sColumnName, $asTableIds);
|
||||
}
|
||||
|
||||
|
||||
private function isField($sTableFieldName)
|
||||
{
|
||||
$asPath = explode('.', str_replace('`', '', $sTableFieldName));
|
||||
return (
|
||||
is_array($asPath)
|
||||
is_array($asPath)
|
||||
&& count($asPath)==2
|
||||
&& $this->isColumnInTable($asPath[0], $asPath[1])
|
||||
);
|
||||
@@ -328,17 +328,17 @@ class Db extends PhpObject
|
||||
public function getTablecolumns($sTableName, $bTypes=true)
|
||||
{
|
||||
if(!array_key_exists($sTableName, $this->asOptions['tables'])) return false;
|
||||
|
||||
|
||||
$asTableColumns = array(self::getId($sTableName));
|
||||
foreach($this->asOptions['tables'][$sTableName] as $sFieldName) $asTableColumns[] = $sFieldName;
|
||||
$asTableColumns[] = 'led';
|
||||
|
||||
|
||||
if(!$bTypes) return $asTableColumns;
|
||||
|
||||
|
||||
$asTableName = array_fill(0, count($asTableColumns), $sTableName);
|
||||
return array_combine($asTableColumns, array_map(array('self', 'getColumnType'), $asTableColumns, $asTableName));
|
||||
}
|
||||
|
||||
|
||||
public function isColumnInTable($sTableName, $sColName) {
|
||||
$asCols = $this->getTablecolumns($sTableName, false);
|
||||
return ($asCols && in_array($sColName, $asCols));
|
||||
@@ -383,7 +383,7 @@ class Db extends PhpObject
|
||||
private function addQuotes($oData)
|
||||
{
|
||||
//TODO remake
|
||||
$asTrustedFunc = array('CURDATE()', 'NOW()');
|
||||
$asTrustedFunc = array('CURDATE()', 'NOW()', 'NULL');
|
||||
$sChar = "'";
|
||||
if(is_array($oData))
|
||||
{
|
||||
@@ -401,7 +401,7 @@ class Db extends PhpObject
|
||||
{
|
||||
return $this->oConnection->insert_id;
|
||||
}
|
||||
|
||||
|
||||
private function getLastImpact()
|
||||
{
|
||||
return ($this->oConnection->affected_rows > 0);
|
||||
@@ -428,7 +428,7 @@ class Db extends PhpObject
|
||||
{
|
||||
$asConstraints = array($this->getId($sTableName)=>$asConstraints);
|
||||
}
|
||||
|
||||
|
||||
//Cleaning values
|
||||
$this->cleanSql($sTableName);
|
||||
$this->cleanSql($asData);
|
||||
@@ -437,7 +437,7 @@ class Db extends PhpObject
|
||||
$asConstraintsValues = $this->addQuotes($asConstraints);
|
||||
$this->addColumnSelectors($asQueryValues);
|
||||
$this->addColumnSelectors($asConstraintsValues);
|
||||
|
||||
|
||||
//Building query
|
||||
if(!$bLedUpdate) $asQueryValues['led'] = 'led';
|
||||
$sLimit = $iLimit>0?" LIMIT $iLimit":"";
|
||||
@@ -494,7 +494,7 @@ class Db extends PhpObject
|
||||
$this->cleanSql($iTableId);
|
||||
|
||||
$bSuccess = true;
|
||||
|
||||
|
||||
//linked tables
|
||||
switch($sTableName)
|
||||
{
|
||||
@@ -516,13 +516,13 @@ class Db extends PhpObject
|
||||
}
|
||||
return $bSuccess;
|
||||
}
|
||||
|
||||
|
||||
public function emptyTable($sTableName)
|
||||
{
|
||||
$this->cleanSql($sTableName);
|
||||
return $this->setQuery("TRUNCATE ".$sTableName);
|
||||
}
|
||||
|
||||
|
||||
public function selectList($sTableName, $sColumnName='', $asConstraints=array())
|
||||
{
|
||||
$sColumnName = $sColumnName==''?self::getText($sTableName):$sColumnName;
|
||||
@@ -533,7 +533,7 @@ class Db extends PhpObject
|
||||
true,
|
||||
$sIdColumnName);
|
||||
}
|
||||
|
||||
|
||||
public function selectRows($asInfo, $sGroupBy='', $bStringOnly=true)
|
||||
{
|
||||
$asAttributes = array('select'=>"SELECT", 'from'=>"FROM", 'join'=>"LEFT JOIN", 'joinOn'=>"LEFT JOIN", 'constraint'=>"WHERE", 'groupBy'=>"GROUP BY", 'orderBy'=>"ORDER BY", 'limit'=>'LIMIT');
|
||||
@@ -543,16 +543,16 @@ class Db extends PhpObject
|
||||
|
||||
//Simple selectRows
|
||||
if(!is_array($asInfo)) $asInfo = array('from'=>$asInfo);
|
||||
|
||||
|
||||
//Get table by key
|
||||
if($sGroupBy===true)
|
||||
{
|
||||
$sGroupBy = self::getId($asInfo['from']);
|
||||
|
||||
|
||||
//Add id to selection
|
||||
if(isset($asInfo['select']) && $asInfo['select'][0]!="*") $asInfo['select'][] = $sGroupBy;
|
||||
}
|
||||
|
||||
|
||||
$sQuery = "";
|
||||
foreach($asAttributes as $sStatement => $sKeyWord)
|
||||
{
|
||||
@@ -574,12 +574,12 @@ class Db extends PhpObject
|
||||
{
|
||||
if(is_array($asConstraints))
|
||||
{
|
||||
if(array_key_exists($sField, $asInfo['constOpe']) && $asInfo['constOpe'][$sField]=='BETWEEN') {
|
||||
if(array_key_exists('constOpe', $asInfo) && array_key_exists($sField, $asInfo['constOpe']) && $asInfo['constOpe'][$sField]=='BETWEEN') {
|
||||
//Between
|
||||
$asSelection[$sField] = $asConstraints['from'].' AND '.$asConstraints['to'];
|
||||
$asInfo['constOpe'][$sField] = " BETWEEN ";
|
||||
}
|
||||
else {
|
||||
else {
|
||||
//Multiple values (IN)
|
||||
$asSelection[$sField] = "(".implode(', ', $asConstraints).")";
|
||||
$asInfo['constOpe'][$sField] = " IN ";
|
||||
@@ -622,7 +622,7 @@ class Db extends PhpObject
|
||||
$sQuery .= " ".$sKeyWord." * ";
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return $this->getArrayQuery(trim($sQuery), $bStringOnly, $sGroupBy);
|
||||
}
|
||||
|
||||
@@ -646,7 +646,7 @@ class Db extends PhpObject
|
||||
{
|
||||
//Table ID directly
|
||||
if(!is_array($asConstraints)) $asConstraints = array($this->getId($sTableName)=>$asConstraints);
|
||||
|
||||
|
||||
$asRows = $this->selectRows(array('select'=>$sColumnName, 'from'=>$sTableName, 'constraint'=>$asConstraints));
|
||||
$iCountNb = count($asRows);
|
||||
switch($iCountNb)
|
||||
@@ -661,13 +661,13 @@ class Db extends PhpObject
|
||||
}
|
||||
return $asResult;
|
||||
}
|
||||
|
||||
|
||||
public function selectColumn($sTableName, $asColumnNames, $asConstraints)
|
||||
{
|
||||
$sGroupBy = '';
|
||||
if(!is_array($asColumnNames)) $asColumnNames = array($asColumnNames);
|
||||
else $sGroupBy = $asColumnNames[0];
|
||||
|
||||
|
||||
return $this->selectRows(
|
||||
array(
|
||||
'select' => $asColumnNames,
|
||||
@@ -687,7 +687,7 @@ class Db extends PhpObject
|
||||
$oResult = $this->selectRow($sTableName, $oConstraints, $sColumnName);
|
||||
return empty($oResult)?false:$oResult;
|
||||
}
|
||||
|
||||
|
||||
public function selectId($sTableName, $oConstraints)
|
||||
{
|
||||
return $this->selectValue($sTableName, self::getId($sTableName), $oConstraints);
|
||||
@@ -750,23 +750,23 @@ class Db extends PhpObject
|
||||
return array_combine($asKeys, $asValues);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
public function select($asFields='*')
|
||||
{
|
||||
$oSql = new Sql($this, array('select'=>$asFields));
|
||||
return $oSql;
|
||||
}
|
||||
|
||||
|
||||
public function from($sTable)
|
||||
{
|
||||
$oSql = new Sql($this, array('from'=>$sTable));
|
||||
return $oSql;
|
||||
}
|
||||
|
||||
|
||||
public function getConnection()
|
||||
{
|
||||
return $this->oConnection;
|
||||
}
|
||||
*/
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user