inicializovany composer pre projekt,
instalovane balicky tpsoft/dbmodel a tpsoft/apilite. vygenerovane subory dbmodel-files
This commit is contained in:
58
backend/src/Maintenance.php
Normal file
58
backend/src/Maintenance.php
Normal file
@ -0,0 +1,58 @@
|
||||
<?php
|
||||
|
||||
namespace TPsoft\Nutrio\;
|
||||
|
||||
class Maintenance extends \TPsoft\DBmodel\Maintenance
|
||||
{
|
||||
|
||||
public function database()
|
||||
{
|
||||
if (!$this->existsTable('options')) {
|
||||
$this->checkDBTable('options', '
|
||||
`key` VARCHAR(255) NOT NULL PRIMARY KEY,
|
||||
`value` VARCHAR(255) NOT NULL
|
||||
');
|
||||
$this->dbver(1);
|
||||
}
|
||||
$dbver = $this->dbver();
|
||||
if ($dbver == 1) {
|
||||
// create new
|
||||
}
|
||||
}
|
||||
|
||||
protected function settings(string $key, ?string $value = null): string|false
|
||||
{
|
||||
if (is_null($value)) {
|
||||
return $this->dbh->getOne(sprintf('SELECT `value` FROM `options` WHERE `key` = %s', $this->dbh->quote($key)));
|
||||
} else {
|
||||
$db_type = $this->dbh->getDBtype();
|
||||
switch ($db_type) {
|
||||
case 'mysql':
|
||||
return $this->dbh->query(sprintf(
|
||||
'INSERT INTO `options` (`key`, `value`) VALUES (%s, %s) ON DUPLICATE KEY UPDATE `value` = %s',
|
||||
$this->dbh->quote($key),
|
||||
$this->dbh->quote($value),
|
||||
$this->dbh->quote($value)
|
||||
)) !== false;
|
||||
break;
|
||||
case 'sqlite':
|
||||
return $this->dbh->query(sprintf(
|
||||
'INSERT INTO `options` (`key`, `value`) VALUES (%s, %s) ON CONFLICT(`key`) DO UPDATE SET `value` = %s',
|
||||
$this->dbh->quote($key),
|
||||
$this->dbh->quote($value),
|
||||
$this->dbh->quote($value)
|
||||
)) !== false;
|
||||
break;
|
||||
default:
|
||||
new \Exception('Unknown DB type: ' . $db_type);
|
||||
return false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
protected function dbver(?string $ver = null)
|
||||
{
|
||||
return $this->settings('version', $ver);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user