2013-08-24 46 views
0

在的Joomla 2.5.14,當我創建一個查詢到MySQL使用PHP,如:MySQL查詢有/無表的具體參考

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

這一切工作正常,但如果我不想要一個特定的引用數據庫前綴(xmb9d_)並使用:

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

該查詢未執行。這是構建查詢的正確方式還是這個代碼有什麼問題?

+0

你不能告訴你如何執行SQL查詢,這將是有幫助的,「#__」被替換的Joomla當您使用Joomla的數據庫的方法。 – Craig

回答

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(); 
+0

是的,這是一個想法:遵守J2.5標準,保持代碼乾淨,易於維護,儘管我現在還不太熟悉它。謝謝你的幫助! –

+0

現在有很好的Joomla文檔。看看那裏和在Stackoverflow找到很好的例子;) – Lodder

0

xmb9d_content是通過用#__content替換它的表的名稱您試圖在不存在的表上運行查詢(我假設),所以它不會工作。

前綴的問題是什麼?我不明白它是如何引起你的問題的

+0

這是一個Joomla特定的表示法。 '#__'會自動替換爲預定義的表前綴,允許多個安裝使用同一個數據庫,並使用不同的前綴。 – MasterAM