Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Klasa obsługująca mysql
ZuyPan
post
Post #1





Grupa: Zarejestrowani
Postów: 116
Pomógł: 4
Dołączył: 4.02.2010

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


Witam.
Koledzy z forum uświadomili mi, że to czas na naukę obiektówki. Jest to moja pierwsza "większa" klasa (te z tutoriali ograniczały się do sami wiecie czego (IMG:style_emoticons/default/biggrin.gif) ). Na wstępie też proszę aby nie było tematów w stylu PDO gdyż skoro mam się uczyć to lepiej na swoich skryptach. Problem pojawił się już na początku. Coś co w strukturalnym kodowaniu wygląda tak:

  1. <?php
  2. $polaczenie1 = mysql_connect($host, $login, $haslo);
  3. if ($polaczenie1){
  4. mysql_select_db($baza1, $polaczenie1);
  5. }
  6. ?>


nie chce mi wyjść w obiektówce. Chodzi mi konkretnie o "oznakowanie" połączenia mysql_connect by potem wywołać go przy mysql_select_db. Teoretycznie proste, ale co jeśli pojawi sie więcej połączeń? Wtedy każde musiało by mieć swoją zmienną na zasadzie: $polaczenie1, $polaczenie2 . Mam nadzieje, że rozumiecie o co mi lotto (IMG:style_emoticons/default/smile.gif)

A tak przy okazji to mam pytanie, które mnie męczy a o dziwo w nie znalazłem na nie odpowiedzi:

  1. <?php
  2. class Mysql{
  3.  
  4. public function MysqlPolacz(){
  5.  
  6. }
  7.  
  8. }
  9. ?>


czy zmienne muszą być deklarowane przed wywołaniem funkcji czy mogą zostać utworzone dopiero "w niej". Chodzi mi o 3 zmienne - private $login; private $haslo; private $host; Innymi słowy - czy musi to wyglądać tak:
  1. <?php
  2. class Mysql{
  3.  
  4. private $login;
  5. private $haslo;
  6. private $host;
  7.  
  8. public function MysqlPolacz(){
  9.  
  10. }
  11.  
  12. }
  13. ?>

czy może tak:
  1. <?php
  2. class Mysql{
  3.  
  4. public function MysqlPolacz(){
  5.  
  6.  
  7. private $login;
  8. private $haslo;
  9. private $host;
  10.  
  11. }
  12.  
  13. }
  14. ?>
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
piotr94
post
Post #2





Grupa: Zarejestrowani
Postów: 331
Pomógł: 30
Dołączył: 11.11.2008
Skąd: Kraków

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


daj procedury łączenia jako __construct():
  1. class mysql{
  2. private $_connection;
  3. private $_query;
  4. public function __construct($server,$user,$password,$database){
  5. if(!$this->_connection=@mysql_connect($server,$user,$password)){
  6. trigger_error('Can\'t connect to database (host: <i>'.$server.'</i>, user: <i>'.$user.'</i>)',E_USER_ERROR);
  7. }elseif(!@mysql_select_db($database,$this->_connection)){
  8. trigger_error('Can\'t select database (database: <i>'.$database.'</i>)',E_USER_ERROR);
  9. }
  10. }
  11. //... dlasza część klasy, obsługa zapytań, i innych funkcji...
  12. }

np. tak wygląda początek mojej klasy do mysql, która pisałem... mniejsza z tym, dawno temu
i potem:
  1. $db=new mysql($config_script['mysql_host'],$config_script['mysql_user'],$config_script['mysql_pass'],$config_script['mysql_db']);


Ten post edytował piotr94 21.07.2010, 11:44:35
Go to the top of the page
+Quote Post

Posty w temacie
- ZuyPan   Klasa obsługująca mysql   20.07.2010, 17:43:29
- - zend   Zmienne mogą być tworzone dynamicznie za pomocą __...   20.07.2010, 17:52:34
- - zegarek84   Cytat(ZuyPan @ 20.07.2010, 18:43:29 )...   20.07.2010, 18:48:22
- - ZuyPan   Ech :/ Wczoraj do 1 w nocy czytałem o OOP i nie po...   21.07.2010, 09:19:46
- - jang   [PHP] pobierz, plaintext if ($this->connect...   21.07.2010, 11:31:00
- - piotr94   daj procedury łączenia jako __construct(): [PHP] p...   21.07.2010, 11:43:37
- - ZuyPan   Dziękuję ! Działa, pierwszy etap bardzo prost...   21.07.2010, 11:45:53
- - darko   Do nauki oop nie bierz się za opakowywanie w klasę...   21.07.2010, 11:46:18
- - ZuyPan   Darko z wielką chęcią, ale "czas to pieniądz...   21.07.2010, 11:59:48
- - darko   Nauka złych nawyków, podejście do problemów na zas...   21.07.2010, 12:11:24
- - ZuyPan   skorzystam z okazji i zapytam: Sprawdzanie czy zap...   21.07.2010, 12:32:34
- - Crozin   Jeżeli wykonanie zapytania się nie powiodło powini...   21.07.2010, 12:34:55
- - ZuyPan   Poczytałem o wyjątkach i znalazłem taki kod: [PHP]...   21.07.2010, 12:55:58
|- - darko   Cytat(ZuyPan @ 21.07.2010, 13:55:58 )...   21.07.2010, 12:59:29
- - ZuyPan   ale gafa. Oczywiście wiem do czego służy echo, ale...   21.07.2010, 13:04:25
- - darko   Da się, np. [PHP] pobierz, plaintext $msg = null;t...   21.07.2010, 13:09:48
- - rvk   muszę się podpiąć pod temat, (modzi) również chcia...   24.07.2010, 19:13:43
- - Crozin   Co wyście się wszystcy uparli na "klasę obsłu...   24.07.2010, 19:19:44
- - rvk   dlaczego jest zła, jak budować klase aby była dobr...   24.07.2010, 19:55:44
- - cojack   Cytat(Crozin @ 24.07.2010, 20:19:44 )...   24.07.2010, 19:56:39
- - rvk   oj chciałbym mieć już własnego framework, nawet pr...   24.07.2010, 20:17:05
- - cojack   Nic się nie martw, pisz jak piszesz, jak będzie dz...   24.07.2010, 20:54:31
- - Crozin   CytatCo Ci szkodzi że piszą klasy które z oop mają...   25.07.2010, 09:09:27
- - cojack   Crozin jaja bo to były moje początki z oop. Cytat...   25.07.2010, 09:16:23
- - Crozin   1) Kod powinieneś pisać po przynajmniej chwilowym ...   25.07.2010, 09:23:16
- - ZuyPan   Ojc widzę, że mój topic staje się miejscem ostrej ...   25.07.2010, 17:49:27


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

 



RSS Aktualny czas: 17.10.2025 - 21:21