Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Obsługa mysqli
Forum PHP.pl > Forum > PHP > Object-oriented programming
wijet
Chciałe napisać swoj sterownik baz danych mam mysql i sqlite ale kiedy pisze mysql wystepuje blad.W manualu wyczytalem ze sa dwa sposoby uzycia mysqli obiektowy i strukturalny.
ale gdy pisze

  1. <?php
  2.  
  3. $this->ConnId = mysqli_connect('localhost','user','pass');
  4.  
  5. ?>


Wywala mi blad ze niemoze sklonowac obiektu który nie jest 'klonowalny'(mysqli). Znalazlem identyczny kawalek kodu w creole
ale tam to działa.
SongoQ
Pokaz wiecej kodu bo po tym nie mozna stwierdzic co jest nie tak.
wijet
dry.gif Jestem teraz w szkole i tego kawalka kodu z sterownika nie moge podac.
Ale mniej wiecej, wyglada to tak.
  1. <?php
  2.  
  3. Class dbdriver extends dbLayer {
  4. public function MakeConnect()
  5. {
  6.  $this->ConnId = mysqli_connect('localhost','user','pass');
  7.  // i tu dalej........
  8. }
  9.  
  10.  
  11. }
  12.  
  13.  
  14. ?>

Jak pisałem dla mysql kod smiga i jest wszystko ok, blad wystepuje na mysqli.
Jeśli pomijam linijke przypisanie do $this->ConnId wszystko działa poprawnie smile.gif
mariuszn3
Może po prostu w php nie masz włączonej obsługi mysqli. Jaki dokładnie komunikat otrzymujesz?
wijet
Mysqli napewno załadowane tongue.gif .
Inaczej bym otrzymał stosowny komunikat.

Pisałem wczesniej,komunikat: niemożna sklonować obiektu który jest nieklonowalny: mysqli. tongue.gif .
mariuszn3
Cytat(wijet @ 2006-03-14 12:14:06)
Mysqli napewno załadowane tongue.gif .
Inaczej bym otrzymał stosowny komunikat.

Pisałem wczesniej,komunikat: niemożna sklonować obiektu który jest nieklonowalny: mysqli. tongue.gif .

Nie do końca rozumiem, php wypuszcza Ci komunikat błędu po polsku questionmark.gif Może jestem nie do edukowany, jest coś takiego jak php po polsku? Z komunikatami błędu po polsku?
Co konktretnie wypuszcza ten komunikat (silnik php ?) ? ..i czy na pewno dosłownie jest to : 'niemożna sklonować obiektu który jest nieklonowalny: mysqli'
to nawet jest ortograficznie nie poprawne..
wijet
To jest ortograficznie czy gramatycznie niepoprawne.

Jasne ze nie mam php po polsku.

Takie jest moje tlumaczenie i raczej wlasciwe nie moge teraz sprawdzic bo w szkole tu mam php bez mysqli. sad.gif

Natomiast to napewno jest taki bład.
SongoQ
Zrob taki sam przyklad jak w manualu jesli bedzie blad czyli cos nie tak z mysqli a jesli bedzie ok to masz blad w tej klasie.
chmolu
Zamień na $this->ConnId = new mysqli('localhost','user','pass');
wijet
Wreszcie znalazłem rozwiązanie
Skrypt działa poprawnie na innym serwerze.
Tak kończą sie zabawy z plikiem konfiguracyjnym tongue.gif jak sie nie wie do czego dana
opcja służy. laugh.gif
Porównałem plik konfiguracyjny z standardowym, powodem błedu było ustawienie
Cytat
zend.ze1_compatibility_mode = On

zmienna standardowo ma wartość Off.
Przy takim ustawieniu kod
  1. <?php
  2. class A{
  3. public $foo;
  4. public $too;
  5.  
  6. }
  7. Class B extends A {
  8.  
  9.  public $ConnId;
  10.  
  11.  public function connect()
  12. {
  13. $this->ConnId = mysqli_connect('localhost','root','');
  14. }
  15.  
  16.  } 
  17.  
  18.  $db = new B;
  19.  $db->connect();
  20.  
  21. ?>


spowoduje bład winksmiley.jpg z którym się spotkałem
Cytat
Fatal error: Trying to clone an uncloneable object of class mysqli in .....


@chmolu to wogule bez sensu uzywac obiektu mysqli i jego metody bylyby sterowane przez obiekt sterownika,moim zdaniem to niepotrzebne obsysanie na wydajności.

I wydaje mi się że to na tyle tematu. smile.gif

Pozdrawiam
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.