2016-01-06 27 views
4

我正在PhpStorm上開發我的Prestashop網站,但我無法解決此問題。我在本地主機上工作,併成功將PhpStorm連接到我的MySQL服務器。如何使用PhpStorm中的前綴來解析SQL表?

現在PhpStorm會拋出類似「無法解析表'$ {_ DB_PREFIX_} cms'」的警告。 Prestashop使用表名作爲前綴,似乎PhpStorm無法使用前綴解析這些表。

是否有解決方法?

下面是從的Prestashop-1.6源代碼爲例:

$sql = 'SELECT c.`id_cms`, cl.`meta_title`, cl.`link_rewrite` 
    FROM `'._DB_PREFIX_.'cms` c 
    INNER JOIN `'._DB_PREFIX_.'cms_shop` cs 
    ON (c.`id_cms` = cs.`id_cms`) 
    INNER JOIN `'._DB_PREFIX_.'cms_lang` cl 
    ON (c.`id_cms` = cl.`id_cms`) 
    WHERE c.`id_cms_category` = '.(int)$id_cms_category.' 
    AND cs.`id_shop` = '.(int)$id_shop.' 
    AND cl.`id_lang` = '.(int)$id_lang. 
    $where_shop.' 
    AND c.`active` = 1 
    ORDER BY `position`'; 

Error in PhpStorm for Mysql tables with prefixes

+1

目前不可能 - 觀看https://youtrack.jetbrains.com/issue/WI-26986(明星/投票/評論)以獲得任何進展的通知。 – LazyOne

+0

謝謝你,我已經爲這個問題投了票,我希望它很快會得到糾正。 –

回答

1

其實是沒有辦法來處理這個問題。但是,您可能會停用對此類警告的檢查。

  1. 打開File>Settings>Editor>Inspections
  2. 展開SQL
  3. 取消選中Unresolved reference
+0

所以我們不能檢查檢查好的表格,列名稱?這有點令人沮喪...感謝這個快速回答。 –

+0

你應該在問題追蹤器上打開一張票。他們真的很有成效。 https://youtrack.jetbrains.com/issues – ByScripts

+0

關閉錯誤不能解決問題。加載正確的模式後,你可以告訴PhpStorm忽略或者聽哪些外部變量可以解決這兩個問題。 – LukeXF

10

之所以這樣是不行的,是因爲你是最有可能只裝一個模式,你需要加載information_schema.*

要做這一點,轉到右上角的數據庫選項卡,然後右鍵單擊並選擇屬性。

現在你將有一個名爲Data Sources and Drivers屏幕,它應該被稱爲General選項卡上打開,單擊名爲Schemas第三個選項卡,並添加information_schema.*所裝載架構的這個名單。

點擊Apply and okay,然後PhpStorm會知道您的數據庫結構,然後智能地與您合作,從而消除所有錯誤。

+0

仍然沒有變化,Phpstorm無法在我的查詢中解析'「._DB_PREFIX _。」'。 –

+0

不適用於我。 – ByScripts