How to

8 отговора 359 прегледа
#1

How to

(1) Ima li niakakaw nachin edin pat da otworia wrazka kam mysql i da ne si igraia sled towa da ia otwariam i zatwariam na wsiaka stranica, ami samo pri logout.
(2) Ima li niakoe popoliarno php open-source forumche, koeto hienata w men moje da drapne, modificira leko spored spesifichnite nujdi i embed-ne? Reshih da pisha student directory sait za uni-to, w koeto ucha, ama ne mi se razwiwa forum-a ot scratch.

Отговор
в отговор на Hailak #2

Re: How to

1) Има
2) Такова каквото да задовли нуждите ти е е това което си напишеш ти ...

3) Пиши на кирилица...
4) Все още е удоволствие д апрограмираш а не само да копи пействаш съдържание

Отговор
в отговор на Hailak #3

Има начин!

Наричат го "persisten connection", но не ми е известно да е масова практика да се ползва. По-скоро само специфични приложения биха имали полза от това. А иначе общоприетата практика е да си направиш файлче db.php (config.php, conf.inc и т. н. - можеш да го кръстиш както си искаш) и след това на до include-ваш във всяка страница която ползва база данни.

Отговор
в отговор на hadministratora #4

Re: Има начин!

а аз примерно съм си направил 1 клас-че (много елементарно), и си правиш обект от него, като подаваш юзер/пасс/хост/дб, след което само викаш метода query, и ако немаш конекция до дб, се грижи да се конектне и да ти изпълни заявката. ако има грешка, се стор-ва и после можеш да я изведеш където/както искаш...

така че инклудваш скриптчето, и бичиш заявки само... направо се родих :)

Just a genius

Отговор
в отговор на Blake #5

Re: Има начин!

Towa sas include i faila e iasno - mislih si dali niama po eleganten nachin. Naprimer dali ne bi stanalo niakakaw identifikator na wrazkata da se predawa prez session-a...

Отговор
в отговор на Hailak #6

Re: Има начин!

Нещо от типа:

function open() // otvariane na konekciq kym bazata
{
if ($this->persistent)
{
$func = 'mysql_pconnect';
}
else
{
$func = 'mysql_connect';
}

$this->conn = $func($this->host, $this->user, $this->password);
if (!$this->conn)
{
return false;
}

if (!mysql_select_db($this->database,$this->conn))
{
return false;
}
else
{
return true;
}
}


Принципно работи, но всички сисадмини ще те мразят. Pconnect... не е препоръчвана функция - като почнат да ти висят локнати процеси става красота.
За друго решение - технически не знам да има възможност да осъществиш достъп от нова станица/файл на сървъва с MySQL без да минеш през (p)connect (да не се връзваме сега за името на функцията, в крушата е по друго)

Сайт за нова българската литература [линк]
Вече над ДВЕ години
Отговор
в отговор на Hailak #7

Re: How to

В дебелите книги пише, че connect, както и pconnect, fopen и други функции, връщат променлива от тип ресурс. Там, също така пише, че ресурса е специален вид променлива (т.е. не е число, не е низ, не е булева....). Поне за сега не ми е известен начин да се предаде ресурс през УРЛ-то, а това обезмисля използването на pconnect. И не виждам какво му е неелегантното на това? Обяснен ти е принципа на действие и от там на сетне твоя вариант може да е какъвто си решиш!

So long and thanks for all the fish!
Отговор
в отговор на hadministratora #8

Re: How to

Айде и аз да се намеся :-)))
До колкото си спомням перзистент конекциите се реюзваха след определен период от инактивити, докато обикновените се затваряха, но след по-дълъг (всичко е до настройки на сървъра де). Културните скриптове би трябвало след като свършат работата си с базата да затворят връзката към нея, но мързела мъчи, а не мори, и почти никой не го прави. Така че докато експиряса обикновената конекция MySQL-а я брои и при по-сериозно натоварване се получава ..... 1001 сее я, ту мани конекшънс .... :-))))

root@ro6avia#echo rm -rf * > /bin/seek_and_destroy
root@ro6avia#/bin/seek_and_destroy
Отговор
в отговор на ro6avia #9

Re: How to

Грешно си спомняш. Препоръчвам сверка със съответната литература преди писане на глупости.

Using mysql_close() isn't usually necessary, as non-persistent open links are automatically closed at the end of the script's execution. See also freeing resources.

So long and thanks for all the fish!
Отговор