簡體   English   中英

通過HTML表單使用PHP更改MySQL表上的ENUM列是一個壞主意嗎?

[英]Is it a bad idea to alter an ENUM column on a MySQL table with PHP via an HTML form?

假設我在表上有一個枚舉列,並且我希望用戶能夠通過使用PHP運行查詢來更改其包含的更多枚舉值的查詢,並通過前端通過HTML表單提交來擴展它包含的值的數量。對於那一欄。

  • 經常運行查詢會改變表結構,這是一個壞主意嗎?
  • 是否存在我看不見的固有安全問題?
  • 如果在用新值更改表之前清理用戶輸入就足夠了嗎?

是的,這是一個壞主意。 如果您需要列表可編輯,則它應該是一個引用表。 除了通常是不好的做法外,它還可能導致表的重新索引,這將對性能產生重大影響,尤其是在較大的表上。

正如Shrapnel上校所說,是的,這是一個壞主意。 除非您制作的應用程序專門用於管理數據庫,否則通常不允許您的應用程序以很少的例外方式以任何方式更改數據庫(因此,請隨時使用臨時表),這是不明智的做法。 在PHP中則是如此。 最直接的影響是,如果您修改了任何枚舉列表值,則使用該舊值的表中所有記錄中的該字段將被刪除。 MySQL手冊的選擇報價...

An ENUM is a string object with a value chosen from a list of permitted values 
that are enumerated explicitly in the column specification 
at table creation time.

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM