Autor Zpráva
Meloun
Profil *
Mam problem...
Treba dejme tomu, ze mam funkci na navazani pripojeni k databazi.
A chci, aby mi vracela identifikator spojeni ale i string s hlaskama, jestli se pripojeni zdarilo, nebo ne...
Poradi mi nekdo, jak vratit vice parametru? Dik moc...

A jeste jeden poddotaz: Je nutne se pripojovat k dabazi kazdym skriptem a po jeho ukonceni odpojovat? Nebo to mam nejak omezit? Jsem zacatecnik :) Neumim v tom jeste chodit...
Dik moc predem!
ash
Profil
Ak máš v identifikátore spojenia FALSE, znamená to, že sa nepodarilo, takže všetko, čo potrebuješ vedieť máš pokope v jednej premennej.

Je nutne se pripojovat k dabazi kazdym skriptem a po jeho ukonceni odpojovat?
Ak používaš spojenie mysql_connect, tak prihlasovať sa musíš zakaždým, na konci skriptu ťa to odhlási samo.

Dá sa použiť permanentné spojenie mysql_pconnect, ale s tým nemám skúsenosti, neviem ako funguje.
Meloun
Profil *
Takze rikas otestovat spojeni po zavolani funkce, ktera pripojeni realizuje, jo?


A co dkybych to vraceni vic parametru stejne potreboval? Slo by to nejak? Stejne by me to zajimalo...
Dik moc :)
Kajman
Profil *
Ať ta funkce vrací array... tam si toho můžete nafrkat kolik chcete.

...
$vratit=array();
$vratit['hlaska']='ano';
$vratit['cokoliv']=1;
return $vratit;

V ramci jednoho skriptu stačí jednou. Pro více skriptů se občas používá pconnect.
Meloun
Profil *
Aha, a jinak to tedy nejde, jo? To pole me taky napadlo...
Kajman
Profil *
Vrátit víc asi těžko, jen lze měnit hodnoty proměnných, na které ukážete v parametrech funkce.
Meloun
Profil *
Ok, dik moc! :)
Mordae
Profil
Když použiješ reference, tak jde tohle:

<?php

/**
* Pripoji se k MySQL serveru a vrati ukazatel na spojeni.
*/
function pripoj(&$e, $server, $login, $heslo){
if($e) return;

if(! $spojeni = @ mysql_connect($server, $login, $heslo)){
$e = 'Nastala chyba při spojení s MySQL serverem!';
return;
}
return $spojeni;
}
/**
* Prepne se na vybranou db vramci daneho spojeni.
*/
function vyberDB(&$e, $db, $spojeni){
if($e) return;

if(! mysql_select_db($db, $spojeni)){
$e = 'Nepodařilo se přepnout na databázi ' . $db . ', MySQL hlásí: ' . mysql_error();
return;
}
}

// Nachystáme proměnnou na chyby:
$e = '';
// No a teď už jen v klidu zavoláme;
$spojeni = pripoj($e, 'localhost', 'root', '');
vyberDB($e, 'moje_db', $spojeni);

// A otestujeme na chyby:
if($e) die($e);
// (Dost mizerný příklad :-))
?>

Tak tohle používám já. Má to výhody například v tom, že dostaneš chyby i z konstruktoru třídy a tak...
BTW; doporučuji natrénovat objekty, je to pak větší legrace, než jen funkce...
Mordae
Profil
A promiň, v jednoduchosti se to dá shrnout takhle:
<?php

$promenna = 'ahoj';
$promenna2 = 'cau';
function nemeni($neco){
$neco = 'ahoooooooooooj';
}
function meni(&$neco){
// vsimni si ampersandu - &
$neco = 'ahoooooooooooj';
}
nemeni($promenna);
meni($promenna2);
echo $promenna . "\n";
echo $promenna2;
// Výstup bude:
// ahoj
// ahoooooooooooj
?>
kaifman
Profil
co takhle jako vlastnosti objektu ?
Mordae
Profil
kaifman: Špatně se to vyzvedává, ale taky by to šlo. Já se jen modlím za brzké PHP/5...
Toto téma je uzamčeno. Odpověď nelze zaslat.

0