Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Obsługa mysqli, bład klonowania obiektu
wijet
post
Post #1





Grupa: Zarejestrowani
Postów: 116
Pomógł: 0
Dołączył: 20.12.2005
Skąd: Łódź

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


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.
Go to the top of the page
+Quote Post
SongoQ
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

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


Pokaz wiecej kodu bo po tym nie mozna stwierdzic co jest nie tak.
Go to the top of the page
+Quote Post
wijet
post
Post #3





Grupa: Zarejestrowani
Postów: 116
Pomógł: 0
Dołączył: 20.12.2005
Skąd: Łódź

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


(IMG:http://forum.php.pl/style_emoticons/default/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 (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
mariuszn3
post
Post #4





Grupa: Zarejestrowani
Postów: 352
Pomógł: 0
Dołączył: 22.01.2006

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


Może po prostu w php nie masz włączonej obsługi mysqli. Jaki dokładnie komunikat otrzymujesz?
Go to the top of the page
+Quote Post
wijet
post
Post #5





Grupa: Zarejestrowani
Postów: 116
Pomógł: 0
Dołączył: 20.12.2005
Skąd: Łódź

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


Mysqli napewno załadowane (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) .
Inaczej bym otrzymał stosowny komunikat.

Pisałem wczesniej,komunikat: niemożna sklonować obiektu który jest nieklonowalny: mysqli. (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) .
Go to the top of the page
+Quote Post
mariuszn3
post
Post #6





Grupa: Zarejestrowani
Postów: 352
Pomógł: 0
Dołączył: 22.01.2006

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


Cytat(wijet @ 2006-03-14 12:14:06)
Mysqli napewno załadowane (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) .
Inaczej bym otrzymał stosowny komunikat.

Pisałem wczesniej,komunikat: niemożna sklonować obiektu który jest nieklonowalny: mysqli. (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) .

Nie do końca rozumiem, php wypuszcza Ci komunikat błędu po polsku (IMG:http://forum.php.pl/style_emoticons/default/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..
Go to the top of the page
+Quote Post
wijet
post
Post #7





Grupa: Zarejestrowani
Postów: 116
Pomógł: 0
Dołączył: 20.12.2005
Skąd: Łódź

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


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. (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)

Natomiast to napewno jest taki bład.
Go to the top of the page
+Quote Post
SongoQ
post
Post #8





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

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


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.
Go to the top of the page
+Quote Post
chmolu
post
Post #9





Grupa: Zarejestrowani
Postów: 179
Pomógł: 0
Dołączył: 8.10.2004

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


Zamień na $this->ConnId = new mysqli('localhost','user','pass');
Go to the top of the page
+Quote Post
wijet
post
Post #10





Grupa: Zarejestrowani
Postów: 116
Pomógł: 0
Dołączył: 20.12.2005
Skąd: Łódź

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


Wreszcie znalazłem rozwiązanie
Skrypt działa poprawnie na innym serwerze.
Tak kończą sie zabawy z plikiem konfiguracyjnym (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) jak sie nie wie do czego dana
opcja służy. (IMG:http://forum.php.pl/style_emoticons/default/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 (IMG:http://forum.php.pl/style_emoticons/default/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. (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Pozdrawiam
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 - 14:18