![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
A tak mnie naszło na refleksje pod wpływem jednego tematu na forum.
A więc mamy mysql_query() http://pl1.php.net/manual/en/function.mysql-query.php Jako drugi parametr może przyjąć uchwyt połączenia, ale można nic podawać i wówczas domyślnie wg. dokumentacji jest null resource mysql_query ( string $query [, resource $link_identifier = NULL ] ) Czyli mozna napisać tak: mysql_query($sql) ale można też tak mysql_query($sql, $link) No ale skoro domyślnie to jest null, więc teoretycznie można napisać też tak: mysql_query($sql, null) lub mysql_query($sql, $link) gdzie $link to null. No ale okazuje się, że tak nie można. Jak już podajemy drugi parametr to musi on być linkiem. Nie może być nullem. A wydawać by się mogło na zdrowy rozsądek, że jeśli sami ręcznie wpiszemy to co jest wartością domyślną, to mysql_query powinno się zachować dokładnie tak samo, jakby samo tę wartość domyślną ustaliło. Co Wy na to? -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 1 527 Pomógł: 438 Dołączył: 28.06.2011 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Śledziłem tamten temat i szczerze mówiąc tak myślałem że autor coś tam podawał... ale samo to, że jest to tak a nie inaczej jest co najmniej - nieoczekiwane
![]() Dobrze, że używam PDO... ![]() -------------------- If you're good at something, never do it for free.
Potrzebujesz skryptu JS lub PHP - szukasz kogoś kto przetestuje twoją aplikację pod względem bezpieczeństwa? Szybko i solidnie? Napisz ;) Mój blog - Jak zwiększyć wydajność front-endu - O buforowaniu wyjścia w PHP słów kilka... |
|
|
![]()
Post
#3
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Oj, nie mieszajmy w to PDO. Nie o tym mowa
![]() Chodzi mi o samo zachowanie zdawać by się mogło banalnej funkcji... No ale cieszy mnie fakt, że nie tylko mnie to dziwi ![]() -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Przepraszam, ża określenie, ale deweloperzy PHP czasami przypominają niedorozwiniętą amebę i na prawdę nie potrafią zrobić najprostszych rzeczy dobrze. Fragment źródła funkcji mysql_query:
Jaki jest błąd? Zmienna mysql_link będzie NULL-em wyłącznie w przypadku, gdy w ogóle nie podamy parametru dla mysql_query(). W przypadku gdy podamy go (o wartości NULL) zmienna mysql_link będzie już stukturą zval, która ma przypisany PHP-owski typ NULL. Innymi słowy w IFie powinno być coś na kształt:
|
|
|
![]()
Post
#5
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
No tak, to wyjaśnia czemu mamy błąd
![]() Ale przez tyle lat, to te ameby naprawdę mogły go poprawić ![]() Chyba że zrobili to celowo, tu zaś skolei nasuwa się pytanie po co? No ale podejrzewam, że to już ich trzeba się pytać ![]() -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Jedyny powód jaki mogę znaleźć to to, że zend_parse_parameters() z jakiegoś bliżej nieokreślonego powodu nie może/nie potrafi PHP-owskiego NULLa wczytać do struktury zval, dla której przewidziano typ RESOURCE. Ale tutaj powinni w takim przypadku w dokumentacji podać dwie sygnatury funkcji, gdzie jedna oczekuje połączenia (nie NULLa), a druga w ogóle nie przyjmuje parametru połączenia (tak jak jest to zrobione w przypadku np. pg_query).
...jednak czego można się spodziewać po amebie. ![]() Ten post edytował Crozin 5.03.2013, 15:32:11 |
|
|
![]()
Post
#7
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Cytat ...jednak czego można się spodziewać po amebie. I ta konkluzja myślę wyczerpuje temat w 100 % ![]() Dziękuję Crozin, Twoja dociekliwość była jak zwykle nieoceniona. W ramach nagrody dostajesz miesiąc praktyk u ameb.... albo to one dostaną praktyki u Ciebie... Podejrzewam, że im i nam wyszła by na lepsze ta druga opcja ![]() -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 13:01 |