Autor | Zpráva | ||
---|---|---|---|
leorond Profil |
#1 · Zasláno: 16. 11. 2015, 21:54:25
Ahoj, rád bych svůj redakční systém předělal z MySQL do MySQLi ale chci se zeptat zda se mi vyplatí předělávat ho do MySQLi nebo je lepší napsat nový, pro a proti.
Děkuji |
||
Alphard Profil |
#2 · Zasláno: 16. 11. 2015, 22:07:30
leorond:
„nebo je lepší napsat nový, pro a proti“ Nový redakční systém? Jestli se kvůli změně databázové vrstvy nevyplatí zachovat nic z původního redakčního systému, je to dost divné... V každém případě, hned bych použil dibi; MySQLi extenze je sice lepší než MySQL, ale stejně nic moc... |
||
leorond Profil |
#3 · Zasláno: 16. 11. 2015, 22:16:24
V čem je lepší dibi než MySQLi?
|
||
lionel messi Profil |
leorond:
„V čem je lepší dibi než MySQLi?“ Za všetky výhody stačí uviesť automatické escapovanie (nehrozí, že programátor na ošetrenie užívateľského vstupu zabudne; tzv. prepard statements v MySQLi sa síce tvária, že robia to isté, trpia však slabinami), prácu s chybami (vyhadzujú sa výnimky, ktoré nechajú zabudnúť na or die a podobné príšery) či prenositeľnosť medzi jednotlivými databázovými systémami. Skúsenejší kolegovia určite doplnia ďalšie. :-)
Alphard radí múdro. Keď už zahadzovať zlé, je vhodné siahnuť po čo najlepšej alternatíve a tou čisté MySQLi (rovnako ako PDO), žiaľ, nie je. |
||
leorond Profil |
lionel messi:
„Za všetky výhody stačí uviesť automatické escapovanie“ V čem to spočívá? Myslím tím automatické escapování jak funguje? OMG to vypadá o moc lépe než MySQLi a o dost přehlednější :) takže když budu chtít upravit v tabulce test text na halo tak mi stačí pouze tento zápis?
$text = "halo"; dibi::query('UPDATE `test` SET `text`=%s', $text); Je to skoro stejné jako MySQL To jako vážně? $arr = [ 'a' => 'hello', 'b' => TRUE, ]; dibi::query('INSERT INTO [table]', $arr); // INSERT INTO `table` (`a`, `b`) VALUES ('hello', 1) dibi::query('UPDATE `table` SET ', $arr); // UPDATE `table` SET `a`='hello', `b`=1 |
||
Alphard Profil |
#6 · Zasláno: 16. 11. 2015, 23:18:09
leorond:
„to vypadá o moc lépe než MySQLi a o dost přehlednější“ To je záměr. „Je to skoro stejné jako MySQL“ Ano. Proto si to troufám radit i úplným začátečníkům. Kdo se ještě nedostal k pokročilejším konstrukcím, může dibi skutečně používat stejně jako mysql(i) extenzi. A až se s ním seznámí trochu víc, zjistí, že dibi dokáže značně usnadnit vývoj. Přes věci jako chytré expandování pole, fluent rozhraní nebo fetchAssoc() metodu až po profiler. |
||
leorond Profil |
Tak se to snaží nějak našprtat ale kde dělám chybu zde?
dibi::connect([ 'driver' => 'mysql', 'host' => 'localhost', 'username' => 'root', 'password' => '***', 'database' => 'test', 'charset' => 'utf8', ]); Háže mi to error 500 Existuje vůbec někde nějaký dobrý článek pro připojení k databázi? |
||
Alphard Profil |
#8 · Zasláno: 17. 11. 2015, 01:01:39
Je tam include dibi? Článek snad ani není potřeba, spíš by to chtělo povolit výpis chyb, abychom se dozvěděli něco konkrétnějšího než 500.
|
||
leorond Profil |
Nenašel jsem žádný pořádný návod jak na to :D
Zapnul jsem error_reporting ale stále jen Chyba serveru 500.
|
||
Alphard Profil |
#10 · Zasláno: 17. 11. 2015, 12:38:04
leorond [#9]:
A jiné chyby se zobrazují? Další možnosti zobrazení chyb jsou uvedené na Diskuse JPW: Nejčastější potíže s PHP (FAQ) » Zapnutí výpisu všech chyb a varování. Zdůrazňuji, že zprovoznit si vývojové prostředí, které zobrazuje chyby, je naprosto základní věc pro vývoj. Naslepo programovat nelze. Od tohoto problému nemá smysl utíkat (např. tím, že vzdáš snahu vyzkoušet dibi), i kdybys s tím měl strávit týden, tady je třeba začít. |
||
leorond Profil |
#11 · Zasláno: 18. 11. 2015, 08:13:47
Ano to je naprostý základ ale i přes správnou funkčnost výpisu chyb se zobrazí Chyba serveru 500.
|
||
juriad Profil |
#12 · Zasláno: 18. 11. 2015, 08:22:30
A koukáš se na správné místo - totiž do logu? Je jasné, že webová stránka v prohlížeči ti při závažné chybě neřekne nic víc, než uvádíš.
Nemáš náhodou PHP 5.3 nebo starší? Ta už stejně není 1 rok a 3 měsíce podporovaná. (PHP 5.3 nezná zápis polí pomocí hranatých závorek). |
||
Časová prodleva: 9 let
|
0