我創建Joomla3組件,我需要在安裝過程中創建一些虛擬內容,我知道我可以使用sql文件來填充表,但是這主要適用於自定義創建的表,我的組件。問題出現在我想向#__content表添加內容時,'別名'列不被認爲是唯一的,並且如果有人嘗試多次安裝組件,則可能會出現重複條目。 我想知道什麼是插入記錄到#__content表中的最佳方式,而不必擔心重複條目等附帶損害。 謝謝大家!爲Joomla3組件創建虛擬內容
0
A
回答
1
解決方案1: 您可以使用INSERT IGNORE
,以便多次安裝擴展時不會擔心重複條目。
解決方案2: 在Joomla中有一個組件可以提供的腳本文件。
因此,當擴展安裝/更新/卸載時,joomla會觸發或調用擴展腳本文件中提供的某些預定義函數,如安裝,更新,預檢,postflight等。
您可以在擴展腳本添加install method
和執行這種方法這個SQL文件,以便這不會對擴展的更新情況被稱爲
解決方案3: 您可以在數據庫中該保持一個單獨的表任務,並且當您執行此虛擬內容創建時,您可以在數據庫中標記此內容,並且您還可以在啓動虛擬內容創建之前檢查此步驟是否已完成,以便有人多次安裝此擴展時,此檢查將阻止相同的任務一次又一次執行。
相關問題
- 1. 創建虛擬/假冒的URL文件內容
- 2. 如何創建虛假/「虛擬」文件?
- 3. 創建「虛擬」ScrollableControl?
- 4. 誰在Linux中創建虛擬內存?
- 5. 如何創建虛擬(內存)SD卡?
- 6. 創建具有虛擬內容通過AngularJS
- 7. 2D數組 - 創建虛擬生物? (C++)
- 8. 爲Android模擬器創建虛擬硬件,內核,qemu以生成OpenGL圖形
- 9. 爲Azure虛擬機創建HTTPS端點
- 10. 爲python創建虛擬環境
- 11. EF不爲虛擬屬性創建表
- 12. 虛擬關鍵字內部組件
- 13. 從ASP.NET創建虛擬文件夾
- 14. 如何創建虛擬文件?
- 15. 創建一個大的虛擬文件
- 16. 外殼擴展 - 虛擬文件創建
- 17. 如何創建虛擬可變文件?
- 18. 虛擬目錄創建
- 19. 創建Facebook虛擬用戶
- 20. Javascript虛擬網頁創建
- 21. 創建 - Azure虛擬機Windows
- 22. yii2項目創建虛擬
- 23. Proxmox:從虛擬機或容器創建VZ容器
- 24. 虛擬文件系統內存塊創建
- 25. C++/Win32在虛擬內存中創建一個文件
- 26. REST API創建虛擬機部署:如何使用AD DC創建虛擬機?
- 27. 爲組件創建可更換容器
- 28. 創建虛擬機並將虛擬機關聯到現有的虛擬網絡
- 29. Firemonkey:爲tGrid或替代網格/列表組件創建樣式(虛擬)
- 30. 同步虛擬機的內容
解決方案1.恐怕這不起作用,因爲檢查重複項的唯一列是主鍵'id',並且我在沒有此字段的情況下插入新記錄(有自動增量,所以會自動創建)。由於「別名」字段不受UNIQUE限制,因此不會爲IGNORE指令創建任何錯誤消息,最終它將使用相同的數據創建額外的記錄。 我想我會用類似於解決方案3的東西,我需要檢查,如果這個數據導入過程已經執行,然後決定做什麼。 感謝您的幫助! – ArturoO 2014-12-07 18:41:56
插入忽略將只與唯一列一起工作,因此如果表中沒有唯一比此解決方案獨立的列不適用於您。 很高興幫助:) – Nick 2014-12-08 04:20:22