

MySQL, PHP - otázky ohľadne addslashes() a global_register
1. Povedzme, že mám v tabuľke 32 znakov dlhú položku [varchar(32)]. používaetľ ma bude chcieť nabúrať a zadá povedzme 32 úvodzoviek. Po použití addslashes bude mať ten text 64 znakov. Tento text vložím do databázy. Môže sa niečo stať a treba to ošetriť alebo to netreba ošetrovať a môžem kľudne vložiť aj 64 znakov?
2. Ako globálne pre stránku vypnúť global_register, ak v nastaveniach v php.ini je zapnutý, ale ja ho chcem pre danú stránku vypnúť globálne, čiže nie len pre jeden PHP súbor?
3. Mám jendo, či použijem addslashes() alebo mysql_escape_string, pretože ako som sa dočítal na internete, tak addslashes neodporúčajú pri SQL. Prečo?
1. Hoci bude mať ten reťazec po použití addslashes 64 znakov, tak ten text, ktorý reprezentuje, bude stále 32-znakový. Do databázy nevkladáš oescapovaný text, ale iba text.
2. register_globals nemôže byť zmenené za behu, ale dá sa nastaviť v .htaccess:
3. Pri MySQL je to jedno, ale iné databázové servre používajú iné escapovanie znakov v reťazcoch.
1. Ale to sa do databázy teda tie lomítka nevložia, keď aj budú v texte?
Keď bude pôvodný text "\", tak addslashes z toho spraví "\\". To použiješ v SQL dopyte, ktorý keď bude parsovať MySQL server, tak si z toho spraví znova text "\". Takže sa vloží pôvodný text "\".