在的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" ;
該查詢未執行。這是構建查詢的正確方式還是這個代碼有什麼問題?
在的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" ;
該查詢未執行。這是構建查詢的正確方式還是這個代碼有什麼問題?
你需要使用數據庫前綴,並堅持Joomla 2.5編碼標準。前綴不應該有任何問題,只要你的查詢是正確的。
這是它應該如何看:
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query->select('id')
->from('#__content')
->where('state = 1');
$db->setQuery($query);
$results = $db->loadObjectList();
是的,這是一個想法:遵守J2.5標準,保持代碼乾淨,易於維護,儘管我現在還不太熟悉它。謝謝你的幫助! –
現在有很好的Joomla文檔。看看那裏和在Stackoverflow找到很好的例子;) – Lodder
xmb9d_content
是通過用#__content
替換它的表的名稱您試圖在不存在的表上運行查詢(我假設),所以它不會工作。
前綴的問題是什麼?我不明白它是如何引起你的問題的
這是一個Joomla特定的表示法。 '#__'會自動替換爲預定義的表前綴,允許多個安裝使用同一個數據庫,並使用不同的前綴。 – MasterAM
你不能告訴你如何執行SQL查詢,這將是有幫助的,「#__」被替換的Joomla當您使用Joomla的數據庫的方法。 – Craig