Autor Zpráva
had
Profil *
ahoj, chtěl bych poslat dibi příkaz v php funkci, ale nemůžu tam dostat dibi metodu ani pomocí global $conn (ve který mám uložený připojení) ani jako global dibi. nevíte někdo, jak na to prosím?
nightfish
Profil
<?php
function myquery() {
  return dibi::query('...');
}

dibi::connect();
$result = myquery();


EDIT: pokud tohle nepomůže, nezbyde ti nic jiného než nám sem poslat esenciální části kódu a lepší popis problému, abychom nemuseli věštit z křišťálové koule
had
Profil *
tak... funkce, kde bych to rád použil:
<?php
function firewall(){
// zjistí, jestli má ten člověk přístup na danou stránku podle firewallové tabulky

global $_root;

$uzivatel = $_SESSION['uzivatel_id'];
$ip   = $_SERVER['REMOTE_ADDR'];
$adresa = $_root.$_SERVER['REQUEST_URI'];

dibi::test('SELECT * FROM :prefix:firewall WHERE ip = "'.$ip.'" OR uzivatel = "'.$uzivatel.'" 
AND url REGEXP "'.$adresa.'" ORDER BY id');

}
?>


v souboru conn.php, který má includovaný soubor s fcí firewall je tohle (zaručeně funkční):
<?php
// $_conn - obsahuje pole s připojovacíma udajema k databazi
try{ $conn = dibi::connect($_conn); }
catch(DibiException $ex){ echo get_class($ex).': '.$ex->getMessage(); die; }
dibi::addSubst('prefix', '');
?>


a hází mi to chybu:
Fatal error: Uncaught exception 'DibiException' with message 'Dibi is not connected to database.' in /data/www/volejbalck.cz/www.volejbalck.cz/dibi/dibi.php:882 Stack trace: #0 /data/www/volejbalck.cz/www.volejbalck.cz/dibi/dibi.php(905): dibi::getConnection() #1 /data/www/volejbalck.cz/www.volejbalck.cz/fce_firewall.php(15): dibi::test('SELECT * FROM :...') #2 /data/www/volejbalck.cz/www.volejbalck.cz/fce_firewall.php(21): firewall() #3 /data/www/volejbalck.cz/www.volejbalck.cz/conn.php(26): include_once('/data/www/volej...') #4 /data/www/volejbalck.cz/www.volejbalck.cz/index.php(3): include_once('/data/www/volej...') #5 {main} thrown in /data/www/volejbalck.cz/www.volejbalck.cz/dibi/dibi.php  on line 882
had
Profil *
teď mě to napadlo... já jsem volání fce firewall() měl hned za tou funkcí a připojení k databázi bylo v souboru conn.php až dýl... takže jsem to volání fce přesunul jinam a začlo to fungovat regulérně. Omlouvám se za zdržení, díky :-)

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0