Kontaktoni mbështetjen

Përgjigjemi me email. Zakonisht brenda dy ditësh.

Për mbrojtje nga abuzimi, Google reCAPTCHA kontrollon këtë dërgesë. Gjatë kësaj, të dhënat i transmetohen kompanisë Google. Skripti ngarkohet vetëm kur hapet ky formular.

← Të gjitha postimet

Një adresë faqeje më e gjatë se kolona e saj

Për përmbajtjen dhe kontrollin e saj

Në këtë artikull

Më 9 gusht 2026, njëzet figura numëruesish nuk u vizatuan. Jo gabim, jo ngadalë — vizitori nuk mori asgjë aty ku duhej të ishte numëruesi.

Shkaku ishte një adresë faqeje më e gjatë se 255 shenja. Tani shkurtohet në çastin e shkrimit dhe figura e numëruesit nuk varet më nga gjatësia e adresës që merr.

Zinxhiri

Kolona që ruan se në cilën faqe ka rënë një vizitë është varchar(255). Adresa mbërriti më e gjatë se kaq. Shtimi dështoi me SQLSTATE 22001, të dhënat janë tepër të gjata për kolonën, gjë që në këtë kod shkaktoi një përjashtim.

Dhe shkrimi i statistikave ndodh përpara se të vizatohet figura. Prandaj përjashtimi nuk humbi vetëm një rresht statistikash. Ndërpreu kërkesën që prodhon figurën e numëruesit. Një faqe me adresë të gjatë e prishi në heshtje numëruesin e vet për çdo vizitor.

kolonavarchar(255)shtimi dështonSQLSTATE 22001përjashtimndërpret kërkesënvizitori nuk merr figurë numëruesi

Adresat e gjata nuk janë të pazakonta. Një galeri me shtigje të ndërthurura, një dyqan me një duzinë parametrash gjurmimi të shtuar nga platforma reklamuese, një faqe rezultatesh kërkimi — secila i kalon lehtë 255 shenja.

Zgjidhja dhe zgjidhja që nuk u zgjodh

Adresa tani shkurtohet në gjerësinë e kolonës para shtimit. Njëzet karaktere të një URL-je shumë të gjatë humbasin nga lista e faqeve; asgjë tjetër nuk ndryshon.

Alternativa ishte zgjerimi i kolonës. Ajo u refuzua: nuk ka asnjë gjerësi që nuk mund të tejkalohet dhe zgjedhja e një numri më të madh thjesht e zhvendos të njëjtin dështim më larg, ku do të jetë më e vështirë për t'u njohur kur të mbërrijë. Mënyra e dështimit duhet të pushojë së qeni fatale, jo të bëhet më e rrallë.

Mbështjellja e shtimit në një try/catch do të kishte rregulluar edhe simptomën e dukshme dhe do të kishte qenë më keq: numëruesi do të vizatohej, rreshti do të zhdukej në heshtje dhe listës së faqeve do t'i mungonin saktësisht faqet me adresat më të ndërlikuara, përgjithmonë, pa asgjë në asnjë regjistër.

Dy gjëra që vlen të mbahen mend

Të dhënat nga jashtë duhen shkurtuar sipas gjerësisë së kolonës, jo thjesht të shpresohet se do të zënë vend. Çdo gjë që mbërrin nga jashtë — një adresë, një referues, një agjent përdoruesi, një titull — është aq e gjatë sa vendosi dikush tjetër dhe baza e të dhënave ka një mendim rreth kësaj, të cilin e shpreh duke refuzuar.

Dini se çfarë tjetër ndodhet pas një dështimi. Ky ishte gabim statistikash në një shërbim statistikash dhe dëmi i dukshëm ishte një figurë që mungonte. Shkrimi dhe vizatimi përdornin të njëjtën kërkesë; asgjë në kod nuk thoshte se ishin të lidhura dhe asgjë nuk paralajmëronte se një shtim i dështuar do të merrte me vete edhe figurën.

Njëzet figura të prishura në ditë janë pak. Problemi u zbulua duke lexuar regjistrat për diçka krejt tjetër; kështu zbulohen zakonisht dhe kjo është arsyeja për të vazhduar leximin e tyre.

Reklamë