作者介紹:陳苗 騰訊雲工程師
phpMyAdmin 是一款基于 Web 端運作的開源資料庫管理工具,支援管理MySQL和 MariaDB 兩種資料庫。 phpMyAdmin 的程式主要使用 php 和 javascript 開發,它的安裝使用都比較簡單而且已有很多相關介紹不再重複,今天要介紹的是源碼中的一個核心元件 sql-parser 。
sql-parser元件的主要用途是對SQL語句進行詞法分析、文法分析,繼而可以實作對SQL語句的解構、加工、替換、再組裝等需求,另外也可以對SQL進行highlight等處理。sql-parser由純PHP語言實作,同時也是整個phpMyAdmin源碼中為數不多的代碼架構比較清晰且符合目前PHP界PSR标準規範的子產品。
需事先安裝好php,git用戶端,以及composer php包管理工具
元件安裝完畢,下面介紹具體的調用
運作結果中<code>$parser</code>變量是一個大對象,裡面存儲有對<code>$query</code>語句的詞法分析結果<code>$query->list</code>,文法分析結果<code>$query-statements</code>,以及錯誤資訊等。
其中<code>$query-statements</code>的結構如下:
輸出結果:
除以上兩種語句之外,sql-parser還支援解析存儲過程等幾乎所有MySQL文法,不再一一舉例。下面是其SQL構造器的用法舉例。
組裝select語句:
組裝觸發器語句:
多條語句一起加工處理:
以上是sql-parser元件一些基本的用法示例,phpMyAdmin的sql-parser元件功能比較豐富和完備,本文限了篇幅不能詳盡,有興趣的讀者可以通過閱讀源碼來了解更多進階的用法。
更多資料庫文章,請關注騰訊雲資料庫公衆号: QcloudCDB