Autor | Zpráva | ||
---|---|---|---|
Shaim Profil |
#1 · Zasláno: 15. 10. 2013, 06:36:25
Zdravím,
mysql_* bude od PHP 5.5 zastaralá, zajímá mě, jestli má smysl ještě stále využívat tuto "zastaralou" technologii? Nebo se při psaní nových aplikací přeorientovat. mysqli_* asi ne-e, když už, tak PDO kvůli podpoře více typů DB. Co myslíte, v jakém horizontu bude toto reálné? Je mi jasné, že ten skok nebude tak rychlý, jelikož na zastaralém mysql běží 90% (odhad) aplikací. |
||
Joker Profil |
#2 · Zasláno: 15. 10. 2013, 07:21:51
Shaim:
(Možná na úvod poznámka pro některé čtenáře, zastaralé je jen Mysql rozšíření v PHP, ne MySQL databáze jako taková.) „mysql_* bude od PHP 5.5 zastaralá“ Ne „bude“, ale „je“, PHP 5.5 už bylo vydáno, aktuální verze je 5.5.4. „Nebo se při psaní nových aplikací přeorientovat.“ Přeorientovat, k tomu právě to označení „deprecated“ slouží, že by se daná věc neměla u nových aplikací používat. |
||
Zechy Profil |
#3 · Zasláno: 15. 10. 2013, 07:45:02
Úplně stejným stylem jako mysql_ se dá skrukturovaně použít mysqli_. Ovšem pokud chceš držet krok s dobou je lepší použít třídu MySQLi.
|
||
Jan Tvrdík Profil |
#4 · Zasláno: 15. 10. 2013, 08:02:02
Nebo ještě lépe přestat používat vestavěné funkce a začít použít něco, co rozumně ošetřuje chyby a escapuje proměnné, např. dibi.
|
||
Actimel Profil |
#5 · Zasláno: 15. 10. 2013, 15:25:49
Jan Tvrdík:
„začít použít něco, co rozumně ošetřuje chyby a escapuje proměnné“ Na to si může vystačit s prepared statements, které mysqli_* funkce umí a nebo je může použít v PDO, které je součástí PHP, takže se obejde bez jakékoli knihovny… |
||
Jan Tvrdík Profil |
#6 · Zasláno: 15. 10. 2013, 15:38:31
Actimel:
To není bohužel tak úplně pravda. Prepared statements jdou použít jenom na určité druhy dotazů. Např. pokud vím neumí escapovat SQL identifikátory a LIKE, nezvládají velmi užitečnou IN konstrukci apod. |
||
Actimel Profil |
#7 · Zasláno: 15. 10. 2013, 16:19:46
Jan Tvrdík:
O tom jaké omezení má mysqli co se týká prepared statements netuším, PDO jsem taky používal jen krátce, jinak používám nette database a momentálně se chci kouknout na doctrine… Já třeba jsem takový, že pokud nemusím, tak cizí knihovny nepoužívám. Sám nevím přesně proč, možná ta radost, že si všechno udělám sám, ale to asi brzo přejde. Nicméně na menší věci si myslím, že na menší věci PDO postačí. |
||
Jan Tvrdík Profil |
Actimel:
Nette\Database i Doctrine mají nad prepared statements napsaný vlastní SQL processor, který se snaží výše popsané problémy nějak řešit. Viz např. docs.doctrine-project.org/projects/doctrine-dbal/en/latest/reference/data-retrieval-and-manipulation.html#list-of-parameters-conversion. Nicméně dibi je pro lidi, kteří byli zvyklí používat přímo mysql_ funkce, výrazně menší skok, než přejít na NDB nebo Doctrine.
|
||
Časová prodleva: 5 dní
|
|||
Shaim Profil |
#9 · Zasláno: 20. 10. 2013, 21:00:53
Děkuji za rady, rozhodoval jsem se mezi PDO a mysqli, nakonec jsem se přiklonil k DIBI. Velmi se mi líbí jednoduchost. Děkuji!
|
||
Časová prodleva: 10 let
|
0