Nejjednodužší připojení k mysql databazi?

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
xilias
Člen | 6
+
0
-

Chtěl bych se zeptat jak se jednoduše připojit k databázi ve verzi Nette Framework 2.0-alpha2 pro PHP 5.3 . Co kam připsat?

xilias
Člen | 6
+
0
-

Tharos napsal(a):

https://doc.nette.org/…ubleshooting

srry ze se mozna tak blbe ptam neni to navod na starsi verzi?

Tharos
Člen | 1030
+
0
-

Není, principiálně na tom není nic zastaralého. Pokud bys chtěl používat Nette\Database, koukni ještě do examples sem a sem.

xilias
Člen | 6
+
0
-

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
+
0
-

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.

xilias
Člen | 6
+
0
-

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..

pecina.ondrej
Člen | 7
+
0
-

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
+
0
-

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.

CoSpi
Člen | 2
+
0
-

no tak jsem to nasel nekde v diskusi. slo o to ze se config parseruje podle tabulatoru. co je to za opicarnu? kdo na to pak ma prijit, ze je nekde mezera navic, nebo o tabulator min. proc to nemuze bejt jako ini soubor, nebo xml. proste pouzivat viditelny znaky a ne tohle

22
Člen | 1478
+
0
-

nejednodussi mi prijde kofigurace v config.neon (lazy připojení) a inicializace v bootstrapu přes dibi::connect(Environment::getConfig(‚database‘)

nemusí se pak řešit připojení v nějakým BaseModelu..stačí prohledat fórum…

22
Člen | 1478
+
0
-

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
+
0
-

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

22
Člen | 1478
+
0
-

zkus se podívat sem

joe
Člen | 313
+
0
-

Díky, už mi to jde. Něco jsem z toho pochopil navíc, mým problémem nebyly nastavený prefixy pro dibi… úplně jsem to přehlídnul

Tomas Jancik
Člen | 103
+
0
-

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?

22
Člen | 1478
+
0
-

zkus se podívat sem

Tomas Jancik
Člen | 103
+
0
-

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 :)

22
Člen | 1478
+
0
-

zkus se podívat sem,
to je asi současná klasika, pokud Hosiplan neřekne jinak .-)

Editoval 22 (23. 6. 2011 6:57)

heekon
Člen | 28
+
0
-

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)