Nejjednodužší připojení k mysql databazi?
- xilias
- Člen | 6
No nejak sem se s tim nepopral.. asi jsem blb .. :D chtel bych nekoho poprosit treba nejaky primy tutorial na Nette\Database treba muze byt na databazi na webzdarma(„mysql.webzdarma.cz“) .. mam verzi nette framework 2.0-alfa php-5.3 fakt na to nejak nemuzu prijit .. byl bych za to moc vdecny ..
- VaKvas
- Začátečník | 111
config.neon:
database:
dsn: 'mysql:dbname=nazev_db'
user: root
password: 'heslo'
bootstrap.php:
$application->onStartup[] = function(){
BaseModel::init(Environment::getConfig()->database);
};
BaseModel.php:
static public $database;
static function init($database) {
self::$database = new Nette\Database\Connection(
$database->dsn, $database->user, $database->password);
}
a pak uz v presenteru:
$this->model = new \BaseModel;
kde napr. pres
$this->model->getData();
volame metody v modelu kde pouzivame napr.
function getData() {
return self::$database->table('tabulka');
}
Takto podobne to pouzivam ja.. akorat to mam rozdelene do BasePresenteru a BaseModelu z nich to pak dedim.
- pecina.ondrej
- Člen | 7
xilias napsal(a):
Kdyz udelam vse jak pises a pak do presenteru dam
$this->model = new \BaseModel;
tak mi to vyhodi zase error 500
tak ja uz fakt nevim no ..
poradte nekdo..
Jedine co ti muzu poradit je vypnout pocitac a vzit si do ruky krumpac, a ten te bude provazet zivotem..
- CoSpi
- Člen | 2
taky se pridavam pro nejaky poradny navod na aktualni verzi. me jde konkretne o pripojeni k MySQL na lokale, ale vsude to je jinak. tutorial, priklady, diskuse, FAQ. meli by jste si to kluci sjednotit.
a ty klaune si bez ke krumpaci sam. jestli dokazes sem do diskuse napsat aktualni funkcni priklad, tak se omlouvam. tim co jsi napsal jsi nikomu nepomohl a akorat tady zanasis forum blbostma.
- 22
- Člen | 1478
Příklad:
config.neon:
database:
host: localhost
username: mafia
password: ****
database: mafia
profiler: true
lazy: true
run: true
result:
detectTypes: true
bootstrap.php:
...
// Load configuration from config.neon file
Environment::loadConfig();
dibi::connect(Environment::getConfig('database'));
...
- joe
- Člen | 313
Přimlouvám se za nějaký návod, jak správně napsat konfigurační soubor config.neon. Po aktualizaci Nette jsem to teď asi po hodině zkoušení vzdal. Nevím co je co, nevím jak se připojit k MySQL databázi, to co je tady jsem vyzkoušel, ale pořád se mi to asi nepřipojuje na MySQL a hledá to v nějakých souborech na disku – konkrétně v souborech table.frm
Dále k čemu jsou services, k čemu jsou zavináče apod. Nikde nemohu najít nějaké rozumné vysvětlení.
Díky
- Tomas Jancik
- Člen | 103
VaKvas wrote:
config.neon:
database: dsn: 'mysql:dbname=nazev_db' user: root password: 'heslo'
bootstrap.php:
$application->onStartup[] = function(){ BaseModel::init(Environment::getConfig()->database); };
co ctu na foru, tak Environment je deprecated…
muze mi teda nekdo poradit, jak nacist potrebna data pro pripojeni k databazi
z konfigu?
- Tomas Jancik
- Člen | 103
22 wrote:
zkus se podívat sem
diky, nejak jsem to nezkoumal kvuli dibi a ja hledal pripojeni pres Nette\Database, ale tam by to melo fungovat taky, ze… zitra vyzkousim jak budu u svyho pc…
jen jeste jeden dotaz… jak se ke $configurator dostanu treba z modelu?
nechci se pripojovat pokazdy
teda nakonec asi budu, ale co kdyby :)
- heekon
- Člen | 28
ja to delam takto
v configu mam
common:
...
database:
driver: pgsql
host: 10.0.0.10
port:
database: postgres
username: test
password: test
...
v bootstrapu volam
$database = $configurator->container->params->database;
$application->onStartup[] = function() use ($database) {
DBModel::init($database);
};
a DBModel vypada nasledovne
class DBModel extends Nette\Object
{
static public $database;
static function init($database) {
self::$database = New Nette\Database\Connection(
$database->driver.':host='.$database->host.(($database->host !== "localhost") && isset($database->port) && ($database->port !== "") ? ';port='.$database->port : '').';dbname='.$database->database,
$database->username,
$database->password
);
}
}
v prislusnem presenteru nebo controlu pak volam spojeni takto
$database = DBModel::$database;
$database->query(...);
osobne mi to zatim vyhovuje, ale nedelam v Nette tak dlouho … tudiz nereknu ti zda je to to spravne reseni, nicmene je funkcni :)
Editoval heekon (23. 6. 2011 12:32)