Autor | Zpráva | ||
---|---|---|---|
Fisir Profil |
#1 · Zasláno: 21. 2. 2014, 20:29:41 · Upravil/a: Moderátor (editace znemožněna) 6. 2. 2015, 14:42:39
Ahoj. Kudy tu chodím, tudy tu upozorňuji na nevhodnost použití PHP rozšíření
mysql_* . Už mě to nebaví vypisovat a navíc jsem chtěl tazatelům poskytnout více informací, tak jsem o tom rovnou napsal článek. Na ten nyní pokaždé odkazuji.
Chtěl bych se tedy zeptat, zda to nebude bráno jako spamování. (Případně se můžete vyjádřit i k obsahu článku.) |
||
jenikkozak Profil |
#2 · Zasláno: 21. 2. 2014, 20:46:28
Vzhledem k tomu, že je poznat, že ten jsi ten článek spíchnul za dvanáct minut, jeho propagování zde na diskusi bych nepovažoval za nějak extra přínosné.
|
||
Bubák Profil |
#3 · Zasláno: 21. 2. 2014, 20:54:42
jenikkozak:
Třeba by pomohlo, kdyby Fisir věděl, na kterých částech článku ještě zapracovat. Nebo je to opravdu tak špatné? Já to nedokáži posoudit. |
||
Kubo2 Profil |
#4 · Zasláno: 21. 2. 2014, 20:56:12
Fisir:
„upozorňuji na nevhodnost použití PHP rozšíření mysqli “
Vážne? Ešte som si nevšimol, že by si tu vytýkal tazateľom používanie PHP rozšírenia MySQL Improved. Všímam si tvoje masové upozorňovanie na zastaralé PHP rozšírenie pre prácu s databázou MySQL, ale všade upozorňuješ iba na to, aby tazateľ používal mysqli_* funkcie namiesto ekvivalentných (a taktiež zastaralých) mysql_* . Takže si trochu protirečíš :-)
|
||
Fisir Profil |
#5 · Zasláno: 21. 2. 2014, 20:58:22
Reaguji na Bubáka:
To by rozhodně pomohlo. Ptám se proto, abych jednak nebyl za spammera a druhak pro to, abych tazatele neodkazoval na nějaké bláboly. Reaguji na Kuba2: Hm :-). |
||
jenikkozak Profil |
#6 · Zasláno: 21. 2. 2014, 21:18:07
Když si z toho článku odmyslíme zbytečnosti, jako je druhý odstavec (o zcela nemístném srovnání s jiným webem) a celou tu kapitolu mysqli_* ekvivalenty mysql_* funkcí (která se tváří jako užitečná a kompletní, přestože není), zbude mi pěkná porovnávací tabulka, o které mám pocit, že už jsem ji někde viděl, ovšem nebylo to u Fisira a byla celá. Výsledkem je, že z celého článku zůstane čtyřpoložkový seznam, na který je poněkud zbytečné odkazovat.
|
||
Fisir Profil |
#7 · Zasláno: 21. 2. 2014, 21:31:58
Reaguji na jenikkozaka:
Podle mě nemá smysl opisovat tabulku v případech, že se jednotlivá rozšíření od sebe neliší. Ale prosím, vy jste páni. |
||
jenikkozak Profil |
#8 · Zasláno: 21. 2. 2014, 21:44:57
Když na ten článek párkrát odkážeš, určitě se z toho nezblázním. Píšeš však o hojném odkazování. Protože mysql_ funce se tu objevují průměrně jednou denně, asi by mi dost vadilo, kdybys do každého takového vlákna odkaz na svůj web přidával.
|
||
Kubo2 Profil |
#9 · Zasláno: 21. 2. 2014, 21:52:38
Fisir, jenikkozak:
Dobre, čo keby ste sa vy dvaja rozhodli pre nejaký kompromis: Fisir ten článok prepíše, možno trochu obohatí o informácie (nečítal som ho, súdim z príspevkov v tomto vlákne) a jenikkozak mu uzná, že je fakt otravné (a po dlhšej dobe aj dosť obtiažne) i jednou denně vždy rozlične formulovať dve stovky znakov textu, podotýkajúcich na skutočnosť, že PHP rozšírenie mysql je zastaralé a povolí mu namiesto toho vkladať do príspevkov vo vláknach, kde je to relevantné, odkazy na tento vylepšený článok z Fisirovho doupěte.
|
||
Alphard Profil |
#10 · Zasláno: 21. 2. 2014, 22:03:57
Fisir:
Myslím, že to nemá moc smysl. Předpokládám, že článek cílí na začátečníky, kteří neznají naprosté základy. I když jim ukážeš alternativu, nebudou chtít přepisovat dosavadní kód (i kdyby to zvládli). Zpravidla používají freehostingy, kde nebývá zrovna aktuální verze PHP (a po uvolnění verze rušící mysql_ extenzi se do toho tím spíš nepoženou). Doporučoval bych článek spíš zkrátit, nějakou twitterovou verzi :-) nebo mohu pár vět napsat do FAQ. Odkazuj si ho spolu s radou řešící tazatelův problém, ale neposílej sem příspěvky, kde jediným obsahem bude tento odkaz. |
||
Taurus Profil |
#11 · Zasláno: 21. 2. 2014, 22:12:47
jenikkozak:
„pěkná porovnávací tabulka, o které mám pocit, že už jsem ji někde viděl, ovšem nebylo to u Fisira a byla celá“ Zase problém s citací…? |
||
Fisir Profil |
Reaguji na Taura:
|
||
Radek9 Profil |
#13 · Zasláno: 21. 2. 2014, 22:45:19
Fisir:
Asi bych měl pár hlavních připomínek: 1) Když už jako jednu z výhod MySQLi vypisuješ objektový přístup, proč ho nepoužiješ v ukázkách? Ten procedurální způsob bych zmínil jen okrajově. 2) Taktéž zmiňuješ prepared statements. I u nich by se hodila ukázka. Hlavně kvůli tomu, že získávání řádku výsledku je poněkud nezvyklé (kvůli použití bind_result ).
3) Proč se zaměřuješ pouze na MySQLi a ne i na PDO? Je to také zajímavá alternativa s ještě širším spektrem funkcionality. 4) Taktéž by se hodilo zmínit některé wrappery, které práci s těmito API zjednodušují. |
||
Fisir Profil |
#14 · Zasláno: 22. 2. 2014, 11:43:54
Reaguji na Radka9:
Na všechny body odpovím tím, že je to článek určený začátečníkům u kterých pochybuji, že by se pouštěli do objektového programování a dalších složitostí. |
||
juriad Profil |
#15 · Zasláno: 22. 2. 2014, 11:59:31
Podceňuješ začátečníky.
I začátečník si vybere perspektivní technologii, když mu ukážeš její zřejmé výhody (a nevýhody té zatracené). I když tomu, co napíšeš, neporozumí ihned, zapamatují si, že něco takového je možné. A třeba se později vrátí, aby to prostudovali pořádně. Oproti oficiální dokumentaci máš obrovskou výhodu v tom, že píšeš česky a nemusíš popsat úplně všechno. Pokud zmiňuješ nevýhody mysql_*, musíš je ukázat na příkladech. A diskutovat možná řešení v rámci té technologie a dojít k závěru, že elegantní řešení neexistuje. A pak čtenáři ukázat řešení pomocí mysqli_* s minimálním potřebnou změnou. Jinak si čtenář řekne, že takový problém nemá a že ho to vlastně nezajímá. Napíšeš jen heslo a čtenář neví, co tím myslíš. Nenapadne ho, že se s tím problémem setkává každou chvíli. |
||
Radek9 Profil |
#16 · Zasláno: 22. 2. 2014, 12:48:37
Fisir:
„pochybuji, že by se pouštěli do objektového programování a dalších složitostí“ Docela mě překvapuje přístup spousty lidí, kteří si myslí, že pro začátečníky je ohromně složité naučit se objektové programování. To vůbec není pravda. Obtížný je ten přechod z procedurálního na objektové. Pokud s objektovým začneš, není absolutně žádný problém (ověřeno v praxi). |
||
Fisir Profil |
#17 · Zasláno: 22. 2. 2014, 14:01:42
Reaguji na Radka9:
Měl jsem na mysli právě ten přechod, protože pokud je na tenhle článek odkazuji, už mají procedurální kód s rozšířením mysql_* .
|
||
Radek9 Profil |
#18 · Zasláno: 22. 2. 2014, 14:22:19
Fisir:
Já jsem osobně také dlouho dobu používal MySQL rozšíření, nicméně jsem nad ním měl svůj objektový wrapper. Vím, že je to potom trochu subjektivní a ne u každého je vhodné hned použít objektový přístup. Nicméně bych ho určitě zmiňoval jako primární způsob a až potom bych ukázal, že to jde i procedurálně. |
||
pcmanik Profil |
#19 · Zasláno: 22. 2. 2014, 14:50:39
Podľa mňa je jednoduchšie odkázať na článok ako neustále hovoriť o zastaralosti mysql. Članku nič nechýba jasne popisuje nevýhody mysql, len mi tam chýba PDO ako jedna z možností nahradenia mysql.
Taktiež peta si tu neustále odkazuje na svoj web, tak prečo by Fisir nemal? Naviac je toto myslím oveľa užitočnejšie ako to čím nás tu zásobuje peta. |
||
Fisir Profil |
#20 · Zasláno: 22. 2. 2014, 15:38:09
Článek jsem přepsal, je to lepší?
|
||
Tori Profil |
#21 · Zasláno: 22. 2. 2014, 19:52:35
Chybí koncovka: „spousta kódů využívajících PHP rozšíření “ (hned na začátku).
Určitě lepší, taky to někdy odkážu. |
||
Fisir Profil |
#22 · Zasláno: 22. 2. 2014, 20:07:08
Reaguji na Tori:
Opraveno a děkuji. |
||
jenikkozak Profil |
#23 · Zasláno: 22. 2. 2014, 20:49:27
pcmanik:
Nevýhoda bytí jako peta, je ta, že jsi pak jako peta… Tohle je úplně jiný článek, Fisire. Líbí se mi, jak jsi na něm zapracoval. |
||
Fisir Profil |
#24 · Zasláno: 22. 2. 2014, 21:02:16
Reaguji na jenikkozaka:
Takže…? (Příspěvky samozřejmě budou obsahovat i něco k tématu, ne jen upozornění a odkaz.) |
||
jenikkozak Profil |
#25 · Zasláno: 22. 2. 2014, 22:43:56
Takže to, co jsem napsal k původní verzi, pozbylo platnosti. Nebudu odkaz na tvůj článek považovat za nežádoucí. Myslím si, že může lidem pomoci. Což ale neznamená, že na něm už nemůžeš dál pracovat. :)
|
||
Radek9 Profil |
Fisir:
„Nyní je v módě objektový přístup“ Tohle bych možná formuloval trošku jinak. :-) „nýbrž rovnou při incializaci třídy“ Instance, nikoli třídy. Případně napsat jako „při volání konstruktoru“. „U MySQLi je na to vyhrazená proměnná“ Tady bych spíš použil termín vlastnost či datová položka. „Důležitou součástí zabezpečení je escapování“ A zrovna tady by se velice hodilo zmínit prepared statements, které escapování ohromným způsobem zjednodušují. ;-) Časem bych možná přidal ukázky i k PDO (což ale není nutné) a jinak nemám připomínky, hezky sepsáno. Na popostrčení začátečníků je to více než dostačující. ;-) |
||
Chamurappi Profil |
#27 · Zasláno: 22. 2. 2014, 23:06:07
Reaguji na Fisira:
„Vadí, že budu hojně odkazovat na svůj článek?“ Nezkoumal jsem vůbec obsah tvého článku, ale mně osobně připadá lepší, když na své texty nemusím odkazovat sám. Napíšeš-li něco opravdu hodnotného a potřebného, stačí jen prvotní impuls a dál už na tebe budou hojně odkazovat jiní… |
||
Fisir Profil |
#28 · Zasláno: 23. 2. 2014, 09:35:17
Reaguji na Chamurappiho:
Já bych si také přál, abych na sebe nemusel odkazovat já sám, je mi to trapné, ale… Reaguji na Radka9: „Tohle bych možná formuloval trošku jinak.“ Je to lepší? „tady by se velice hodilo zmínit prepared statements“ Zmínil jsem, snad jsem podchytil vše důležité. |
||
juriad Profil |
#29 · Zasláno: 23. 2. 2014, 10:29:28
Fisir:
1) Není třeba FROM DUAL . V Mysql není klauzule FROM povinná jako v Oracle.
2) V tabulce znaků v bind_params bych druhý sloupec přeložil do češtiny. 3) U prepared statements můžeš zmínit, že se vyplatí použít i když nechceš dotaz volat opakováně a využít je jen jako elegenatní způsob escapování. Snížíš riziko chyby tím, že samotný dotaz neobsahuje žádné konstanty a je přehledný a veškeré hodnoty se do něj dosazují programově. 4) Dotaz INSERT INTO table VALUES (?) selže, protože table je klíčové slovo. Nevím, jestli je to záměr v příkladu demonstrujícím chyby.
5) Vedle celého příkladu procedurálním stylem bych napsal ještě ten samý příklad objektovým stylem, ať si čtenář opravdu všimne, že je to „stejné“. 6) PDO bych nepsal jako zvláštní kapitolu na konci, ale na začátku zmínil, že existuje a že se jím nebudeš zabývat. Takto navazující slibovaný druhý díl nebude přerušen. Jinak se mi článek docela líbí. Mimochodem, celý obsah (#contentContent) má horizontální posuvník. FF27, Linux. Může za to textarea s komentáři (respektive její roztáhnutí na šířku). |
||
Fisir Profil |
#30 · Zasláno: 23. 2. 2014, 13:43:59
Reaguji na juriada:
Ad 1) Smazáno Ad 2) Přeloženo Ad 3) Zmíněno Ad 4) Původně to záměr byl, ale možná dost špatně odhalitelný Ad 5) Dopsáno Ad 6) Který druhý díl? :-) „celý obsah (#contentContent) má horizontální posuvník“ Pravděpodobně tvůj prohlížeč nezná vlastnost box-sizing , už je to ale v pořádku.
|
||
Téma pokračuje na další straně.
|
0