Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Includowanie pliku z funkcjami
Forum PHP.pl > Forum > Przedszkole
kayy
Witam!
Co raz więcej przybywa mi w moim skrypcie funkcji, więc, żeby się nie pomieszać to utworzyłem sobie skrypt z funkcjami który na początku każdego skryptu includuje.

Jego zawartość jest taka:
  1. <?php
  2.  
  3. /*
  4. ******************FUNCTIONS*********************
  5. */
  6.  
  7.  
  8. function createPostString($aPostFields) {
  9. foreach ($aPostFields as $key => $value) {
  10. $aPostFields[$key] = urlencode($key) . '=' . urlencode($value);
  11. }
  12. return implode('&', $aPostFields);
  13. }
  14.  
  15.  
  16. function db_conn($baza) {
  17. $conn = mysql_connect("localhost", "mojabaza","mojpass");
  18. if(mysql_select_db($baza)) { $result = true; }
  19.  
  20. }
  21.  
  22. function db_close() {
  23.  
  24. mysql_close($conn);
  25. }
  26.  
  27. function curl_post($adrr) {
  28. $ch = curl_init($adrr);
  29. curl_setopt($ch, CURLOPT_POSTFIELDS, createPostString($postFields));
  30. curl_exec($ch);
  31. curl_close($ch);
  32. }
  33.  
  34. ?>


No i wywala kupe errorów:
Kod
Warning: mysql_close(): supplied argument is not a valid MySQL-Link resource in /home/...../myinc.php on line 23

Warning: Invalid argument supplied for foreach() in /home/.../myinc.php on line 9

Warning: implode() [function.implode]: Invalid arguments passed in /home/.../myinc.php on line 12


Wie ktoś może dlaczego?
Może i banalne pytanie, ale kto pyta nie błądzi; )


lobopol
A pokaż jak to includujesz i jak używasz tych funkcji.
kayy
  1. <?php
  2. include('myinc.php');
  3. db_conn('baza_test');
  4.  
  5. $postFields['nick'] = $nick;
  6. $postFields['pass'] = $pass;
  7. curl_post('http://strona.pl/dfd.php');
  8.  
  9. db_close();
  10.  
  11. ?>

zauważyłem, że db_conn zdziała dobrze, bo pobiera dane z bazy, tylko db_close nie chodzi.
lobopol
Bo $conn jest zmienną funkcyjną, poza funkcją db_conn nie masz do niej dostępu. Powinieneś ją wywoływać $polaczenie = db_conn(blabla) i w db_conn powinieneś zwracać uchwyt do bazy.
kayy
Nie wiem czy dobrze zrozumiałem ale robię tak:

  1. function db_close($conn) {
  2.  
  3. mysql_close($conn);
  4. }
  5.  


a w kodzie:
  1.  
  2. $conn = db_conn(blabla);
  3.  
  4.  
  5. db_close($conn);

I to samo.


A co z funkcją createPostString ? Czemu ona nie działa? Przecież przekazuje jej parametr i ona powinna wyrzucac result.
lobopol
te blabla było tylko przykładem
  1. function db_conn($baza) {
  2. $conn = mysql_connect("localhost", "mojabaza","mojpass");
  3. if(mysql_select_db($baza)) { $result = true; }
  4. else{die(); }
  5. return $conn;
  6. }
  7. //wywołanie
  8. $conn = db_conn($baza);
  9. db_close($conn);


Jak tą drugą funkcje wywołujesz i jakie zmienne jej dajesz?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.