带有/不带有表特定引用的MySQL查询


MySQL query with/without table specific reference

在Joomla 2.5.14中,当我使用PHP创建MySQL查询时,比如:

$query = "SELECT id FROM xmb9d_content WHERE state=1" ;

这一切都很好,但如果我不想对数据库前缀(xmb9d_)进行特定引用,请使用:

$query = "SELECT id FROM #__content WHERE state=1" ;

查询未执行。这是构建查询的正确方法吗?还是这段代码有什么问题?

您需要使用数据库前缀,还需要遵守Joomla 2.5编码标准。只要查询正确,前缀应该不会有任何问题。

它应该是这样的:

$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query->select('id')
 ->from('#__content')
 ->where('state = 1');
$db->setQuery($query);
$results = $db->loadObjectList();

xmb9d_content是表的名称,将其替换为#__content。如果您试图在不存在的表上运行查询(我认为),则它将无法工作。

前缀有什么问题?我不明白它怎么会给你带来问题