Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> mysqli_connect_errno dlaczego styl proceduralny w przykładach objektowych
neotec
post 13.04.2008, 02:30:35
Post #1





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 12.04.2008

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


Analizując mysqli_connect() a szczególnie
uzycie mysqli_connect_errno()
i nie rozumiem dlaczego w przykładach
dla stylu OBJECTOWEGO używana
jest funkcja nieobjektowa: mysqli_connect_errno():
http://pl.php.net/manual/pl/mysqli.connect.php

Czyli dla:
Kod
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

Jest tak:

Kod
if (mysqli_connect_errno()) {
    exit("Connect failed: ".mysqli_connect_error());
}

A dlaczego nie tak?:

Kod
if ($mysqli->connect_errno) {
    exit("Connect failed: ".$mysqli->connect_error);
}

Albo tak:

Kod
if (!$mysqli) {
    exit("Connect failed: ".$mysqli->connect_error);
}

Czy to taki skrót myślowy czy ja nie kumam objektów?

Ten post edytował neotec 13.04.2008, 16:38:21
Go to the top of the page
+Quote Post
Sedziwoj
post 13.04.2008, 08:47:31
Post #2





Grupa: Zarejestrowani
Postów: 793
Pomógł: 32
Dołączył: 23.11.2006
Skąd: Warszawa

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


A jak powiem że moim zdaniem to było Ctrl+C Ctrl+v, to się zdziwisz?
W ogóle tam masz brak konsekwencji w przykładach, są miejsca gdzie spr. czy połączenie się powiodło jest robione przez sprawdzenie czy był błąd, a nie czy zwrócił null (choć moim zdaniem nie powinno nigdy zwracać null, tylko rzucić wyjątkiem... ale to dopiero raczkuje w PHP)


--------------------
Algorytmy w PHP, czy ktoś o tym słyszał?
Dlaczego tak mało kobiet programuje? ponieważ nie zajmują się głupotami.
Go to the top of the page
+Quote Post
pyro
post 13.04.2008, 09:55:59
Post #3





Grupa: Zarejestrowani
Postów: 2 148
Pomógł: 230
Dołączył: 26.03.2008

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


i te "<BR>" wogole nie powinny tu byc...


--------------------
ET LINGUA EIUS LOQUETUR IUDICIUM
Go to the top of the page
+Quote Post
Sedziwoj
post 13.04.2008, 10:11:44
Post #4





Grupa: Zarejestrowani
Postów: 793
Pomógł: 32
Dołączył: 23.11.2006
Skąd: Warszawa

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


Po prostu rób to porządnie, nie zawsze dobrym pomysłem jest naśladowanie innych.


--------------------
Algorytmy w PHP, czy ktoś o tym słyszał?
Dlaczego tak mało kobiet programuje? ponieważ nie zajmują się głupotami.
Go to the top of the page
+Quote Post
neotec
post 13.04.2008, 17:03:38
Post #5





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 12.04.2008

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


Trochę sam sobie odpowiem, może ktoś potwierdzi albo i nie.

Ale chyba zrozumiałem że taka wersja z manulal jest jednak logiczna.

Bo, gdy: konstruktor w postaci $mysqli = new new mysqli() nie nawiąże
połączenia, to instancja objektu $mysqli w ogóle nie powstanie,
więc nie można odwołac się do jej właściwości.
Jedynie proceduralna "globalna" funkcja mysqli_connect_errno()
trzyba gdzies tam, swoją flagę że operacja zakończyła się nie powodzeniem.

Czy dobrze kombinuje?

______________________________________________________

Nie chcę tworzyć nowego wątku,
ale proszę znawców do mysql a szczególnie od mysqli
o pomoc w drugim temacie:
"Singleton nad mysqli a słuszność metody close()"
forumphp.nq.pl/index.php?showtopic=92125


Ten post edytował neotec 13.04.2008, 18:17:56
Go to the top of the page
+Quote Post
Sedziwoj
post 13.04.2008, 18:34:35
Post #6





Grupa: Zarejestrowani
Postów: 793
Pomógł: 32
Dołączył: 23.11.2006
Skąd: Warszawa

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


I to jest powód dla którego powinien lecieć wyjątek a nie tylko null.
Ogólnie powinieneś sprawdzić czy "new mysqli()" zwraca instancje obiektu, czy null, jak null to dopiero pobierasz błąd...
(a obiektowość ma zlikwidować nadmiar if'ów jak widać w PHP mają swoją wizję...)


--------------------
Algorytmy w PHP, czy ktoś o tym słyszał?
Dlaczego tak mało kobiet programuje? ponieważ nie zajmują się głupotami.
Go to the top of the page
+Quote Post

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 Wersja Lo-Fi Aktualny czas: 12.06.2025 - 23:30