我创建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