Nette config: Databázový prefix…
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- Michalek
- Člen | 211
No, já mám v config.ini
database.driver = mysql
database.host = localhost
database.lazy = TRUE
database.charset = utf8
database.profiler = TRUE
database.database = jmeno
database.prefix = cms_
a v aplikaci pak
public static function connect()
{
$dbconfig = Environment::getConfig('database'); // nacteme z config.ini
dibi::connect($dbconfig);
dibi::addSubst('cms', $dbconfig->prefix); // pridame prefix tabulek do dibi
unset($dbconfig);
}
a přes dibi se připojuju
dibi::select('*')->from(':cms:tabulka');
Což je teda kombinace obou dvou vašich příspěvků, ne? :)
Editoval Michalek (17. 7. 2010 20:43)
- Peppy
- Člen | 137
díky…toto som potreboval :)…ja som to upravil na:
Config.ini
[development < common]
database.driver = mysql
database.lazy = TRUE
database.host = localhost
database.username = root
database.password =
database.name = techit
database.prefix = prefix
Bootstrap.php
// 2b) load configuration from config.ini file
Environment::loadConfig();
// 3b) load database configuration
$cfg = Environment::getConfig('database');
// 4b) connect
dibi::connect($cfg);
dibi::addSubst('prefix', $cfg->prefix);
Prefix tabuliek je v konfigu, používam konštantu :prefix: …ďakujem, solved! :)
- nanuqcz
- Člen | 822
mkoubik napsal(a):
Ještě detail, substituce může být i za prázdný string, pak to vypadá líp:
$db->select('*')->from('::table')
…
Mě to nefunguje, dělám něco špatně, anebo je tato možnost v novějších verzích zrušená?
config.ini:
[common]
...
database.charset = utf8
database.lazy = FALSE
database.host = localhost
database.username = root
database.password = ''
database.substitutes.'' = nc_
...
Articles.php:
...
public function getAll(){
return Dibi::select('*')->from("::articles")->orderBy('created DESC');
}
...
vrací chybu Missing substitution for '' expression.
:-(