台灣最大程式設計社群網站
線上人數
1592
 
會員總數:243455
討論主題:188176
歡迎您免費加入會員
討論區列表 >> MySQL >> 編輯檢視表 錯誤代碼:414
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
編輯檢視表 錯誤代碼:414
價值 : 50 QP  點閱數:197 回應數:8

樓主

培根
門外漢
0 36
717 123
發送站內信

各位高手們好!
我在WIN10上使用Wampserver,我的mysql有裝PHP
因為方變性,我建立的檢視表
但當我"編輯檢視表"會出現

我GOOGLE了一些訊息,但無法解決。


請問我要改哪裡才能解決我的問題?

搜尋相關Tags的文章: [ 編輯檢視表 錯誤代碼:414 ] ,
本篇文章發表於2018-11-07 14:08
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
1樓
回應

浩瀚星空
捐贈 VP 給 浩瀚星空 檢舉此回應
其實一般來說會出現Requsest-URI Too Long。就是代表了url連結長度太長了。
一般會發生這樣的情況,大多數是發生在用get方式傳送資料時發生的。
一但get處理的容量太大時就會有這樣的錯誤。

要解決問題,你得先確定你碰到的實際問題跟發生該問題的因素為何。
不要一味的只想變動長度或數值來解決。

有時了解了根本問題後,你根本不需要去修改限制值。
你要知道為何會有這樣的限制。都是有其意義的。不要在不了解的情況下去修改這樣的值。

你的情況我推測你可能用了很多個欄位或是欄位值中,可能有很長很長的容量值。
已超過get時可以容許的長度了。跑phpmyadmin就被限制住了。

一般如果有這樣的需求,盡量不要在網頁上做這大長度規模的操作。很危險的。
phpmyadmin雖然很方便沒錯,但相對的它也會受限於http一些規範。
要利用它來做一些比較特規的sql的操作。有時是辦不到的。
還是需要從內部命令中做處理才行。

千萬不要一味的,去破壞原本http的設定限定值。
哪天你的主機發生了「死機」或「資料流失損壞」。你哭都來不及了。
本篇文章回覆於2018-11-08 11:57
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
作者回應

培根
檢舉此回應
我的網址並不會很長
http://192.168.1.240/phpmyadmin/tbl_structure.php?server=1&db=kyoei+precision+co.%2C+ltd&table=%E5%BB%A0%E6%88%BF_%E5%8A%A0%E5%B7%A5%E5%BB%A0_%E6%AA%A2%E8%A6%96%E8%A1%A8&token=0197dec1ec7cac36c3bcd07707a37d7b

這是我 檢視表的編碼


新增 是沒有問題的,但是要修改的時候就進不去了。
但這些都是需要用到的,我在想不要用LEFT JOIN,用 WHERE 不知道會不會比較好
本篇文章回覆於2018-11-08 13:32
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
作者回應

培根
檢舉此回應
雖然目前檢視表還是可用,只是編輯進不去,但是我還是想知道我改哪邊可以解決我的問題

我根據一篇文章,找到了各瀏覽器URL長度限制
https://blog.xuite.net/dizzy03/murmur/543015206-%5B%E8%BD%89%5D+%E5%90%84%E7%80%8F%E8%A6%BD%E5%99%A8URL%E7%9A%84%E9%95%B7%E5%BA%A6%E9%99%90%E5%88%B6



但我使用 Opera瀏覽器 卻還是發生了相同的錯誤
本篇文章回覆於2018-11-09 08:57
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
最有價值解答

浩瀚星空
捐贈 VP 給 浩瀚星空 檢舉此回應
怎麼還在用消極的方式來處理啊。

幸好你有po出來你的檢視碼出來。讓我直接知道你的問題。

你的問題很單純,就是使用了中文名稱欄位。造成了過長問題。

不要以為修改了字元限制就可以達到你要的需求。系統也有所謂的最大容許值。
就如你明明只有500gb的容量。你將設定容量設定到1t。
它就真的會用到1t嘛?想也知道不可能。

再來,為何要叫你放棄中文名稱。請試想看看,一般欄位名稱。了不起5~10個字元。
會用到15個字元以上的,幾乎很少人會這樣子命名了。

依照原本的get了不起最大就是8000。這還得看瀏覽器本身的限制問題
你所找的瀏覽器最大長度190000。那也只是瀏覽器的url長度限制。這又與get方面比較無直接關係。

最後再計算一下你的長度。我就先用基本的8000來計算好了。
一個中文字光欄位名稱,就需要佔用9個字元。
光你最後那段select來看。每一行就用了約18~20個中文字。
使用了12~15行。

也就是說,就單單那段會使用到的欄位名稱。就需要用到 9*20*15 = 2700的字元長度。
沒關係,因為還有5300的長度可以用。

但你用了三段。再加上重復性的應用 2700*3 = 8100。遠遠就已經超過了8000的限制了。
這些還只是單純計算你欄位名稱的字位長度。還沒將一些長度計算進去。

會跑url長度不夠。這是理所當然的事情了。不要想去找可用的瀏覽器所允許的長度問題。
沒錯~~
Opera 的url可用長度很長。但並不代表你的server就可以容許這樣長的資料處理。
你碰到的錯誤訊息是server給你的。並不是瀏覽器給你的。這是你web server本身的限制。

怎麼會想找瀏覽器來解決問題??真是莫明奇妙了。
但為何我說不要再去動原始的限定設定值,為何有這樣的限制是有原因的。

試想一下。一個瀏覽器可以用url發送190k的域名長度給你。這是一件多可怕的事。
只要你允許這樣的限制。人家要癱瘓你的主機是一件多簡單的事啊。get發送也不需要post發送。
光ajax就可以搞死你的機器了。

======================================

上面如果看的不高興,還請見諒。
你的問題要解決的方案只有一種方式。
但這樣的方式是一定你不樂意的方式,我記得你之前也曾經有問過中文欄位名稱的問題才對。
為何我們在一開始就告知干萬不要用中文欄位名稱。這是有其道理的。
你現在就是正在處理「中文欄位名稱」的麻煩。就是因為他們來去造成你的url過長的問題。

這樣你是否已經明白了。

如果你還是認為這不是主要因素。還是想從設定檔來處理。
我可以告訴你怎麼處理,但干萬不要說是我說的。
因為教導一個會主機爆炸的設定,我一定不會教。
ps:這有點矛盾了吧?
本篇文章回覆於2018-11-09 16:29
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
作者回應

培根
檢舉此回應
沒關西,我對這方面確實不適很懂,我是靠實作學習。

我確實有問過中文的問題,但那時候組要是用中文會找不到資料庫,我沒想到用中文會造成今天這樣的問題

我非常謝謝您給我很好的觀念!!
本篇文章回覆於2018-11-11 17:28
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
6樓
作者回應

培根
檢舉此回應
我有想到一個問題,我今天只是串3個資料表,就造成這樣的問題了,哪天我需要串到3個以上
那我用 英文欄位名稱 也是有可能會造成相同的問題不是嗎?
要減少 字元 的用量,除了從 資料表名稱,資料欄位 下手,好像就沒有其他可以下手的地方了
雖然現在不會串到這麼多,但我怕以後會用到阿,所以想請教一下
本篇文章回覆於2018-11-12 09:10
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
7樓
不錯的參考

浩瀚星空
捐贈 VP 給 浩瀚星空 檢舉此回應
基本上,欄位名稱換用英文的。確實也會碰上這樣的問題。
但一般那是規劃設計不好才會碰到這樣的問題。

畢竟,使用中文欄位稱,只是大大的壓縮了你的可用長度。
讓原本幾乎不可能超過的情況,變成很容易超過。
畢竟那長度是會等比級數成長。

而且我上面的說明,只是給你一個觀念跟phpmyadmin運做+url的因素。
實際上並非是你那邊用多長sql命令就會使用到多長的get。
這點沒跟你說清楚倒是很抱歉就是了。

基本上,會叫你不要用中文欄位名稱主要的目的,就是不要去碰「雷」
在不碰「雷」的情況下,就已經有可能會有許許多多的問題了。
自已再多個危險因素在堶情A不是一件很蠢的事嗎?

至於不用中文欄位名稱,是否就一定不會碰上這個問題。
這我只能給你回答,還是有可能會碰到,只是會比較不容易碰到。
本篇文章回覆於2018-11-12 10:47
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
8樓
作者回應

培根
檢舉此回應
原來如此,我了解了。
非常謝謝您!!,給我寶貴的知識
本篇文章回覆於2018-11-12 15:51
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.