3

在 joomla MVC 中,我遇到了这个 SQL 查询。我无法理解#sign 的目的??

INSERT INTO `#__helloworld` (`greeting`) VALUES
    ('Hello World!'),
    ('Good bye World!');
4

3 回答 3

4

它在运行时替换为该安装的前缀。这样,您可以在同一个数据库中运行多个 Joomla 安装,只要它们都有不同的前缀。您可以在全局设置以及 configuration.php 文件中找到安装的前缀。

整个#__零件对于更换正常工作是必要的。所以只是 a#不会按预期工作。

*请注意,这是一个 Joomla 特定的结构,所以不要指望它只适用于 PHP/MySQL。它适用于所有 Joomla 版本,强烈推荐。

于 2013-09-10T05:21:15.933 回答
2

如您所知,joomla 数据库表有一个随机的 4 或 5 个字符的 lentgh 表前缀。这是为了提高安全性。Joomla 是一个开源内容管理系统,因此恶意攻击者知道存在哪些表。您不能更改表名(否则会花费很长时间),因此为表名添加前缀是一个不错的解决方案。

#__表名的一部分被替换为在处理代码时安装 joomla 时定义的表前缀。您还可以在 configuration.php 或管理员面板中查看表前缀

遵循全局配置 -> 服务器 -> 数据库顺序。

于 2013-09-10T05:23:49.357 回答
1

#__ 在执行查询之前替换为表前缀(在配置中定义)

Joomla 和 MySQL

于 2013-09-10T05:28:51.603 回答