Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php]Pierwsze funkcje, Zobaczcie czy jest to poprawnie
redelek
post
Post #1





Grupa: Zarejestrowani
Postów: 658
Pomógł: 37
Dołączył: 4.06.2005
Skąd: Wawa

Ostrzeżenie: (0%)
-----


Witam,

Piszę prostą biblioteczkę w php:).
Bardzo bym prosił o pomoc czy jest to poprawne czy raczej nie bawić się w coś takiego. Będę wdzięczny za wskazówki
  1. <?php
  2. $dbhost = 'localhost';
  3. $dbuser = 'root';
  4. $dbpass = 'dropsy';
  5. $dbname = 'link';
  6. $polacz = @mysql_connect($dbhost, $dbuser, $dbpass);
  7. ########## FUNKCJE ##########
  8. function polaczMySQL(){
  9.  
  10. if (!$polacz) {
  11.  die('Nie można się połączyć: ' . mysql_error());
  12.  }else
  13.  echo 'OK'.'<br>';
  14.  mysql_select_db($dbname);
  15. }
  16.  
  17. function zamknijMySQL()
  18. {
  19. $zamknij= mysql_close($polacz);
  20.  
  21. if (!$zamknij){
  22. die ('Nie mogę się rozłączyć z bazą: ' . mysql_error());
  23.  }else
  24. echo 'Nastąpiło rozłączenie :)';
  25. }
  26. ?>


Z tą zmienną połącz musiałem wyskoczyć poza funkcję, bo jak była w niej to nie działała, mi funkcja zamknijMySQL().
Coś pewnie o globalnych zmiennych trzeba by było poczytać , ale jeszcze nie wiem nic o tym i zrobiłem tak jak wyżej.

Dzięki za wskazówki

Pozdrawiam
Redelek

Ten post edytował redelek 23.04.2008, 10:41:57
Go to the top of the page
+Quote Post
MMPrime
post
Post #2





Grupa: Zarejestrowani
Postów: 79
Pomógł: 12
Dołączył: 23.04.2008

Ostrzeżenie: (0%)
-----


Przekaż wszelakie dane przez parametry funkcji i będzie grało.
Kod
function polaczMySQL( $polacz, $dbname )
{
  // ....


Postaraj się też ustandaryzować nazewnictwo zmiennych, teraz stosujesz polskie nazwy i angielskie.
Go to the top of the page
+Quote Post
webdice
post
Post #3


Developer


Grupa: Moderatorzy
Postów: 3 045
Pomógł: 290
Dołączył: 20.01.2007




Poczytaj sobie jeszcze o zasięgu zmiennych w funkcjach bo to nie ma prawa działać. Pamiętaj że musisz przekazywać do funkcji zmienne jako parametry jeśli chcesz z nich korzystać.

EDIT: Po co pisać funkcje do łączenie z bazą danych skora tak naprawdę robi coś całkiem innego?
Go to the top of the page
+Quote Post
l0ud
post
Post #4





Grupa: Zarejestrowani
Postów: 1 387
Pomógł: 273
Dołączył: 18.02.2008

Ostrzeżenie: (0%)
-----


- funkcji polacz() powinieneś przekazywać dane do bazy, a nie już gotowy link. Przecież ona ma się łączyć z bazą (jak nazwa mówi) a nie tylko sprawdzić czy jest połączenie i wybrać bazę.

  1. <?php
  2. function polacz($dbhost, $dbuser, $dbpass, $dbname) {
  3. ?>
Go to the top of the page
+Quote Post
redelek
post
Post #5





Grupa: Zarejestrowani
Postów: 658
Pomógł: 37
Dołączył: 4.06.2005
Skąd: Wawa

Ostrzeżenie: (0%)
-----


Cytat(l0ud @ 23.04.2008, 09:46:48 ) *
- funkcji polacz() powinieneś przekazywać dane do bazy, a nie już gotowy link. Przecież ona ma się łączyć z bazą (jak nazwa mówi) a nie tylko sprawdzić czy jest połączenie i wybrać bazę.

  1. <?php
  2. function polacz($dbhost, $dbuser, $dbpass, $dbname) {
  3. ?>


  1. <?php
  2. function polaczMySQL ($dbhost, $dbuser, $dbpass, $dbname){
  3. $polacz = @mysql_connect($dbhost, $dbuser, $dbpass);
  4. if (!$polacz) {
  5.  die('Nie można się połączyć: ' . mysql_error());
  6.  }else
  7.  echo 'OK'.'<br>';
  8.  mysql_select_db($dbname);
  9. }?>


A w skrypcie mam ją wywoływać tak
  1. <?php
  2. polaczMySQL('localhost','root', 'dropsy','link');
  3. ?>


czy to o to chodzi?

Ten post edytował redelek 23.04.2008, 11:11:02
Go to the top of the page
+Quote Post
ayeo
post
Post #6





Grupa: Przyjaciele php.pl
Postów: 1 202
Pomógł: 117
Dołączył: 13.04.2007
Skąd: 127.0.0.1

Ostrzeżenie: (0%)
-----


Mi się wydaje, że funkcja polaczMYSQL(); jest bez sensu bo jest identyczna w działaniu z mysql_connect(); Chyba, że zapiszesz na sztywno dane (host, login, hasło) w funkcji. Funkcja powinna zwracać uchwyt połączenia lub FALSE w przypadku niepowodzenia.

  1. <?php
  2. function polaczMySQL()
  3. {
  4. $dbhost = "localhost";
  5. $dbuser = "root";
  6. $dbpass = "dupa8"; // ;)
  7. $dbname = "linki";
  8. $polacz = mysql_connect($dbhost, $dbuser, $dbpass);
  9. if (!$polacz) 
  10. {
  11. return FALSE;
  12. }
  13. else
  14. {
  15. mysql_select_db($dbname);
  16. return $polacz;
  17. }?>


Pozdrawiam!
Go to the top of the page
+Quote Post
redelek
post
Post #7





Grupa: Zarejestrowani
Postów: 658
Pomógł: 37
Dołączył: 4.06.2005
Skąd: Wawa

Ostrzeżenie: (0%)
-----


Cytat(ayeo @ 23.04.2008, 10:14:19 ) *
Mi się wydaje, że funkcja polaczMYSQL(); jest bez sensu bo jest identyczna w działaniu z mysql_connect(); Chyba, że zapiszesz na sztywno dane (host, login, hasło) w funkcji. Funkcja powinna zwracać uchwyt połączenia lub FALSE w przypadku niepowodzenia.

  1. <?php
  2. function polaczMySQL()
  3. {
  4. $dbhost = "localhost";
  5. $dbuser = "root";
  6. $dbpass = "dupa8"; // ;)
  7. $dbname = "linki";
  8. $polacz = mysql_connect($dbhost, $dbuser, $dbpass);
  9. if (!$polacz) 
  10. {
  11. return FALSE;
  12. }
  13. else
  14. {
  15. mysql_select_db($dbname);
  16. return $polacz;
  17. }?>


Pozdrawiam!


Mi właśnie o to chodzi żeby był jeden plik z konfiguracją.
Chciałem go podzielić na sekcje
#### ZMIENNE ####
#### FUNKCJE ####
Plik bym sobie dołączał do wszystkich stron i zamiast pisać całego mysql_connect. będę pisał polaczMYSQL(); i po sprawie
Tak jak ty napisałeś to po zmianie hasła do bazy będę musiał przelecieć wszystkie funkcje i wyszukać w nich $dbpass i zmienić to.
Go to the top of the page
+Quote Post
ayeo
post
Post #8





Grupa: Przyjaciele php.pl
Postów: 1 202
Pomógł: 117
Dołączył: 13.04.2007
Skąd: 127.0.0.1

Ostrzeżenie: (0%)
-----


Jakie wszystkie funkcje? Właśnie tylko w tej jednej!
Go to the top of the page
+Quote Post
piotrooo89
post
Post #9


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




jeśli moglbym Ci coś poradzić z czego sam kożystam to stworzenie sobie pliczku do laczenia sie z bazą danych.

oto on:

  1. <?php
  2. $dbhost = "localhost";
  3. $dbuser = "root";
  4. $dbpass = "dupa8"; // ;)
  5. $dbname = "linki";
  6. $polacz = mysql_connect($dbhost, $dbuser, $dbpass);
  7. if (!$polacz) 
  8. {
  9. return FALSE;
  10. }
  11. else
  12. {
  13. mysql_select_db($dbname);
  14. return $polacz;
  15. }?>


nazywasz go sobie np.: mysql.inc

i includujesz go sobie w pliczku .php np:

  1. <?php
  2. include('mysql.inc');
  3. ?>


jak zrobisz taki myk to przy znianie jakis danych w np dostępie do bazy edytujesz tylko ten plik i masz spokoj.

mam nadzije że Ci sie to przyda (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
l0ud
post
Post #10





Grupa: Zarejestrowani
Postów: 1 387
Pomógł: 273
Dołączył: 18.02.2008

Ostrzeżenie: (0%)
-----


Cytat
jak zrobisz taki myk to przy znianie jakis danych w np dostępie do bazy edytujesz tylko ten plik i masz spokoj.


Masz spokój, dopóki ktoś nie odnajduje pliku mysql.inc, ściąga i nie rozwala Ci bazy (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) Wg. mnie podstawą jest stosowanie rozszerzenia .php w takich plikach.
Go to the top of the page
+Quote Post
ayeo
post
Post #11





Grupa: Przyjaciele php.pl
Postów: 1 202
Pomógł: 117
Dołączył: 13.04.2007
Skąd: 127.0.0.1

Ostrzeżenie: (0%)
-----


To jeszcze zależy gdzie ten plik będziesz trzymał i jak masz skonfigurowany serwer.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 15:13