在joomla MVC中,我遇到了这个SQL查询。我无法理解#sign的目的?
INSERT INTO `#__helloworld` (`greeting`) VALUES
('Hello World!'),
('Good bye World!');
答案 0 :(得分:4)
运行时,它将替换为该安装的前缀。这样,只要它们都具有不同的前缀,您就可以在同一个数据库中运行多个Joomla安装。您可以在“全局设置”以及configuration.php文件中找到安装的前缀。
整个#__
部分是替换正常工作所必需的。因此,只有#
无法按预期工作。
*请注意,这是一个Joomla特定的构造,所以不要指望这只适用于PHP / MySQL。它适用于所有Joomla版本,强烈推荐。
答案 1 :(得分:2)
如您所知,joomla数据库表有一个随机的4或5个字符的lentgh表前缀。这是为了提高安全性。 Joomla是一个开源内容管理系统,因此恶意攻击者知道存在哪些表。您无法更改表名(或者这需要太长时间),因此为表名添加前缀是一个很好的解决方案。
表名的 #__
部分替换为在处理代码时安装joomla时已定义的表前缀。您还可以在configuration.php或管理员面板中查看表前缀
关注全局配置 - >服务器 - >数据库顺序。
答案 2 :(得分:1)
#__替换为表格前缀(在配置中定义)