天天看點

phpMyAdmin 中 sql-parser 元件的使用

作者介紹:陳苗 騰訊雲工程師

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-&gt;list</code>,文法分析結果<code>$query-statements</code>,以及錯誤資訊等。

其中<code>$query-statements</code>的結構如下:

輸出結果:

除以上兩種語句之外,sql-parser還支援解析存儲過程等幾乎所有MySQL文法,不再一一舉例。下面是其SQL構造器的用法舉例。

組裝select語句:

組裝觸發器語句:

多條語句一起加工處理:

以上是sql-parser元件一些基本的用法示例,phpMyAdmin的sql-parser元件功能比較豐富和完備,本文限了篇幅不能詳盡,有興趣的讀者可以通過閱讀源碼來了解更多進階的用法。

更多資料庫文章,請關注騰訊雲資料庫公衆号: QcloudCDB