I have a mysql query that looks like this $query="SELECT * FROM #__content"
.
What does the #__
at the start of the table name mean?
I have a mysql query that looks like this $query="SELECT * FROM #__content"
.
What does the #__
at the start of the table name mean?
#__
是您的表格的前缀
#__
只是数据库表前缀,并在您的 configuration.php 中定义
如果没有定义,人们将不得不手动将他们的前缀输入到每个需要访问数据库的扩展中,你可以想象这会很烦人。
因此,例如,如果您的数据库表前缀是j25
,那么:
#__content
=j25_content
正如其他人所说,哈希下划线序列“#_”是 Joomla! 的 JDatabase 类用于表名的前缀。(注意只有一个下划线,第二个下划线保留为表名的可读性。)
当您第一次设置 Joomla!您可以选择设置前缀或使用当时随机生成的前缀。您可以在此处阅读有关如何检查前缀的信息。
当您使用 JDatabase 类访问数据库时,它为您提供了一种抽象机制,以便您可以与 Joomla 使用的数据库进行交互,而无需专门为 MySQL、MSSQL 或 PostgreSQL 等编写代码。
当 JDatabase 在执行查询之前准备好查询时,它会使用Joomla! 时设置的前缀替换查询段中的#_
任何出现。from
已安装。例如
// Get the global DB object.
$db = JFactory::getDBO();
// Create a new query object.
$query = $db->getQuery(true);
// Select some fields
$query->select('*');
// Set the from From segment
$query->from('#__myComponents_Table');
稍后当您执行查询时,JDatabase 会将from
SQL 的段从
from #__myComponents_Table
至
from jp25_myComponents_Table
— 如果前缀是jp25
,在执行之前。