Autor Zpráva
IdemeNaHavaj
Profil
Ahoj

Mam 2 subory index.php a db.php , v db.php mam pripojenie do databázy a teraz v index.php si chcem dať funkciu napríklad
function nieco(){
$query = mysql_query("SELECT nieco FROM niekde");
echo "nieco z databazy";
}
nieje dolezite aka je ta funkcia a co je jej obsah ale dolezite je ze to nereaguje na mysql_query pretoze to akoby nieje pripojene do DB. Ak aj do funkcie vlozim require "db.php", tak potom to uz ide. Preco teda vo funkcii nieje pripojenie do db? Pripominam ze funkcia je napisana v kode az PO pripojeni do db, teda po "require db.php".
Vdaka.
Joker
Profil
IdemeNaHavaj:
Pripominam ze funkcia je napisana v kode az PO pripojeni do db, teda po "require db.php".
Zřejmě se někde ta funkce volá už před připojením, nebo se připojení nepovedlo.

Jinak funkce, která spoléhá, že se někde předtím otevřelo připojení do databáze, není dobře navržená. Identifikátor připojení se dá předávat jako argument.
Krom toho mysql_* funkce jsou zastaralé a neměly by se už používat.
IdemeNaHavaj
Profil
Joker:
funkce, která spoléhá, že se někde předtím otevřelo připojení do databáze, není dobře navržená
A ako by bola dobre?

Ešte dopíšem ako to mám:
index.php:
<?php
require "db.php"; // tu je pripojenie do DB a som si na 101% istý že funguje
require "funkcie.php"; //tu sú funkcie, ktoré nereagujú na predchádzajúci require
require "html.php"; //fu sa funkcie ukazujú, vyvolávajú, 
?>
Joker
Profil
IdemeNaHavaj:
A ako by bola dobre?
Vždyť to píšu, spojení k databázi se dá předávat v argumentu.
Např.:
function foo($spojeni) {
  mysql_query("SELECT sloupec FROM tabulka", $spojeni);
}
IdemeNaHavaj
Profil
Ano tak to už ide len som tomu nepochopil, vďaka :-)

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: