tiny ‘n’ smart
database layer

Odkazy: dibi | API reference

Oznámení

Omlouváme se, provoz fóra byl ukončen

Prefixy v dibi – nefunguje mi to

před 6 lety

puhy.cz
Člen | 4

Zdravím.

Mám tady problém s prefixy v dibi. Přijde mi, že to mám podle dokumentace, ale nechodí mi to. Mám tam připojené dvě db.

PHP kód:

$zc = new DibiConnection($udaje_zc);
$ps = new DibiConnection($udaje_ps);

dibi::addSubst('zc', 'zs_');
dibi::addSubst('ps', 'pstest_');


$query_ps=$ps->query('INSERT INTO [:ps:customer]', $ps_customer );\--
tak to hází error.

pokud napíšu přímo

PHP kód:
$query_ps=$ps->query('INSERT INTO [pstest_customer]', $ps_customer );

tak to chodí. Co mám blbě?

Díky moc.

před 6 lety

Jan Tvrdík
Nette guru | 2550

Ach jo. Co takhle napsat sem ten error, šmoulíku?

Metoda dibi::addSubst je zastaralá. Použij

dibi::getSubstitutes()->ps = 'pstest_';

před 6 lety

puhy.cz
Člen | 4

No dělá mi to to samý.

test1 Fatal error: Uncaught exception ‚DibiException‘ with message ‚Dibi is not connected to database.‘ in /var/www/clients/client1/web47/web/prevod/dibi.min.php:717 Stack trace: #0 /var/www/clients/client1/web47/web/prevod/dibi.min.php(803): dibi::getConnection() #1 /var/www/clients/client1/web47/web/prevod/prevod.php(29): dibi::getSubstitutes() #2 {main} thrown in /var/www/clients/client1/web47/web/prevod/dibi.min.php on line 717

jakmile zakomentuju

29 dibi::getSubstitutes()->ps = 'pstest_';
30 dibi::getSubstitutes()->zc = 'zs_';

a místo:

$query_ps=$ps->query('INSERT INTO [:ps:customer]', $ps_customer );

dám

$query_ps=$ps->query('INSERT INTO [pstest_customer]', $ps_customer );

tak to funguje.

Co dělám blbě?

před 6 lety

Jan Tvrdík
Nette guru | 2550

Řekni mi, prosím tě, co ti není jasné na chybě „Dibi is not connected to database“? Před voláním getSubstitutes() musíš být připojen k databázi.

před 6 lety

puhy.cz
Člen | 4

Díky, s dibi začínám, ale přijde mi, že se k databázi připojuju před tím, nebo ne?

$zc = new DibiConnection($udaje_zc);
$ps = new DibiConnection($udaje_ps);

/*dibi::addSubst('zc', 'zs_');
dibi::addSubst('ps', 'pstest_'); */

41 dibi::getSubstitutes()->ps = 'pstest_';
42 dibi::getSubstitutes()->zc = 'zs_';

$query_ps=$ps->query('INSERT INTO [:ps:customer]', $ps_customer );

toto hází: Fatal error: Uncaught exception ‚DibiException‘ with message ‚Dibi is not connected to database.‘ in /var/www/clients/client1/web47/web/prevod/dibi.min.php:717 Stack trace: #0 /var/www/clients/client1/web47/web/prevod/dibi.min.php(803): dibi::getConnection() #1 /var/www/clients/client1/web47/web/prevod/prevod.php(41): dibi::getSubstitutes() #2 {main} thrown in /var/www/clients/client1/web47/web/prevod/dibi.min.php on line 717

když to udělám takhle, tak to funguje:

$zc = new DibiConnection($udaje_zc);
$ps = new DibiConnection($udaje_ps);

/*dibi::addSubst('zc', 'zs_');
dibi::addSubst('ps', 'pstest_');

41 dibi::getSubstitutes()->ps = 'pstest_';
42 dibi::getSubstitutes()->zc = 'zs_'; */

$query_ps=$ps->query('INSERT INTO [pstest_customer]', $ps_customer );

nechápu co dělám špatně

Editoval puhy.cz (6. 10. 2013 10:12)

před 6 lety

Jan Tvrdík
Nette guru | 2550

Jsem přehlédl, že ty od začátku mícháš statický a objektový přístup. To pochopitelně nejde. Správně tedy:

$zc = new DibiConnection($udaje_zc);
$ps = new DibiConnection($udaje_ps);

$zs->getSubstitutes()->zc = 'zs_';
$ps->getSubstitutes()->ps = 'pstest_';

$query_ps=$ps->query('INSERT INTO [:ps:customer]', $ps_customer );

Editoval Jan Tvrdík (6. 10. 2013 11:24)

před 6 lety

puhy.cz
Člen | 4

Díky moc, to je ono :-)