Преглед садржаја
Ако постоји нешто што може оштетити апликацију, то је када не користимо одговарајуће ресурсе да је учинимо бржом и сигурнијом, постоји много начина за побољшање брзине и безбедности апликација, то може бити коришћењем бољих развојних образаца, примену веће безбедности на серверима итд.Међутим, постоји тачка у којој много пута не престајемо да размишљамо и то је ако је алат који нам језик даје најбољи за посао који обављамо. Ово се много дешава у ПХП Упркос чињеници да је годинама било упозорење да се функција не користи мискл_цоннецт () за успостављање веза са Базе података, чини се да многи програмери не схватају велику грешку коју чине када је користе.
ПХП има изворну подршку за велики број мотора Базе података који постоје на тржишту, међутим његова интеграција са МиСКЛ то је скоро обавезно полазиште за већину корисника.
мискл_цоннецт ()Од верзије 5.5 оф ПХП класична функција мискл_цоннецт () је у стању застарела, односно застарео је и снажно се препоручује да га не користите јер неће бити укључен у будуће верзије језика.
Алтернатива успостављању везе пролази кроз два елемента, први је употреба исте језичке структуре за повезивање или употреба нове библиотеке за повезивање са МиСКЛ. Овде се може појавити прво питање, зашто само размислити МиСКЛ? Па, одговор је једноставан, то је почетак, то је најједноставнија и најкориснија ствар коју можемо прво објаснити, ако познајемо ову базу, можемо је екстраполирати на друге моторе и управљачке програме.
Прва алтернатива повезивања са База података је употреба сопственог објекта података језика који се назива ПХП објекат података или његова скраћеница ПДО. Ово није ништа друго до велико писано проширење на језику Ц. то нам омогућава да успоставимо везе са различитим типовима мотора Базе података и да има стандардне методе које нам дају могућност писања апликација на више платформи, односно не морамо мењати синтаксу ако променимо механизам базе података.
Прво смо рекли да ћемо се фокусирати МиСКЛ, међутим ако успоставимо везу путем ПДО оно што радимо можемо применити на друге моторе. За ово морамо само да активирамо или уградимо управљачке програме за наведене моторе и активирамо их у датотеци пхп.ини са сервера.
Да бисте се повезали са а База података само морамо да успоставимо везу користећи одговарајућу методу за то, у ПДО веза се остварује са три основна параметра, именом сервера базе података, корисничким именом и његовом лозинком.
Једини параметар од ова три који треба објашњење је параметар сервера базе података, у прошлости смо морали да изаберемо База података Кроз одређену функцију након успостављања везе, у овом случају ћемо то учинити у истом низу, па би наш низ имена сервера изгледао овако:
мискл: хост = хостнаме; дбнаме = дбнаме
Видимо да смо у овом случају прво одредили мотор мискл онда ћемо са домаћином рећи који је сервер, овде то може бити ИП или локални домаћин ако је сервер локални, коначно са дбнаме прослеђујемо назив базе података на коју желимо да се повежемо. На следећој слици ћемо посматрати како се код повезује помоћу ПДО:
ЕНЛАРГЕ
Будући да знамо почетни корак како се повезати, сада морамо научити како можемо извршавати упите, обично смо у прошлости користили директно извршавање упита са његовим параметрима, ова пракса није нимало сигурна јер нас чини склонима напади тог типа СКЛ Ињецтион, ПДО омогућава нам да користимо тзв Припремљени стаменти што није ништа друго до извршавање упита на параметриран начин, па сама библиотека обавља посао отклањања грешака и мање је склона нападима. Хајде да видимо даље како извршити једноставан упит, а затим његов еквивалент са Препаред Стамент.У овом једноставном упиту претпоставићемо да имамо табелу у нашој База података позив Аутор који прима ауторски код, а затим и његово име, наравно да је демонстративно, то није пример добре табеле, само нас занима да знамо како веза функционише из ПДО.
На слици видимо да називамо методу тзв упит () из објекта креираног помоћу ПДО стринга везе, онда уписујемо упит без већих проблема:
ЕНЛАРГЕ
Проблем је у томе што вредности примамо директно, па не постоји начин да се ово побољша и поново употреби, уместо тога ако направимо а Препаред Стамент, видећемо да прво означимо који је упит за извршавање, затим га другом методом учинимо ефикасним и проследимо му потребне вредности. Ово покреће механизам за отклањање грешака параметара. ПДО чиме се даје додатни ниво заштите. Погледајмо на следећој слици како би претходни пример изгледао коришћењем Припремљени стаменти Сада.ЕНЛАРГЕ
На први поглед може изгледати донекле сложено и није оптимално, али ако анализирамо, видимо да прво утврђујемо упит који ће се извршити, затим стварамо низ са параметрима које ће наш упит примити, у случају примјера који примимо код аутора и његово име, на крају извршавамо упит и прослеђујемо му низ параметара.Ако желимо да се консултујемо када смо већ унели неке вредности у наш База података врло је једноставно, само морамо то учинити помоћу упита СЕЛЕЦТ, ово ће нам омогућити да донесемо записе, у прошлости смо зависили од функција као што су мискл_фетцх_арраи () или мискл_фетцх_ассоц () који је једном потрошен оставио нас је неспособне да поново управљамо резултатима.
Витх ПДО Добићемо податке директно из објекта, тако да ћемо их увек имати на располагању током извршавања, да видимо у следећем примеру како би то било учињено:
Видимо како у почетку правимо а Препаред Стамент, у овом случају радимо једноставан упит, а затим петљом док () прибавићемо сваки од записа и штампати их, ако приметимо да се на њих не позивамо МиСКЛ било где у нашем коду, па ако променимо низ везе и користимо други механизам који има табелу и а База података истог имена и структуре, моћи ћемо да добијемо ваше податке без потребе за променом кода.
Шта МиСКЛ је најпопуларнији мотор базе података за интеграцију ПХП, постоји и алтернатива и то је МиСКЛи који није ништа друго до објектно оријентисани интерфејс. Његов начин рада је врло сличан оном ПДОМеђутим, оно што се променило је да је то само за овај популарни механизам базе података, па конверзија на више платформи не би била могућа.
Његов низ везе је мало мање сложен јер дели име сервера у хосту и базу података која ће се користити у два различита параметра, поред имена и лозинке корисника, да видимо како то изгледа:
$ објЦонек = нови мискли (Име хоста, корисник, лозинка, Име базе података);
Погледајмо у следећем примеру како успостављамо везу помоћу МиСКЛи и како можемо извести једноставан унос података:
ЕНЛАРГЕ
Напомињемо да постоји сличност са ПДО имајући метод упит () такође, међутим, ово ће радити само за МиСКЛ.Сада ћемо примати и понављати податке које можемо добити из упита, за то ћемо користити исти метод упит () а затим метод фетцх_ассоц () да бисте добили резултате:
Најзанимљивије што смо приметили је да користимо метод Близу (), ово затвара тренутну везу и чисти бафер на такав начин да оптимизује употребу ресурса сервера.
ВажноМорамо имати на уму да ако имамо систем направљен у старој верзији ПХП и нећемо мигрирати на нове верзије, можда променити низове везе у База података а методе упита можда нису добра идеја за дело које представљају. Међутим, ако желимо да направимо нове апликације и системе, најбоље је да почнемо са чврстим темељима користећи ове нове библиотеке са подршком у будућим верзијама ПХП.
Овим смо завршили овај водич и видели смо да су нове алтернативе много чистије и сигурније, а њихова једноставност употребе их чини погодним за садашње време.Да ли вам се допао и помогао овај водич?Можете наградити аутора притиском на ово дугме да бисте му дали позитиван поен