這更多用於在PHP發送到服務器之前分析PHP中的查詢。爲什麼要這樣做非常複雜,所以我寧願不去理由。將SQL查詢的SELECT子句解析爲一個PHP數組
在PHP中,我需要將字段選擇存儲到一個php數組中。因此,採取此查詢,例如:
SELECT user_id,username,DATE(join_datetime) as join_date, (SELECT COUNT(1) FROM foobar WHERE foonum IN (5,4,6) and user_id = users.user_id) as myfoo_count
FROM users
WHERE user_id = 123
因此,在這種情況下,我需要存儲「user_ID的,用戶名,DATE(join_datetime)爲join_date(從foobar的SELECT COUNT(1)其中foonum IN(5,4 ,6)和user_id = users.user_id)作爲myfoo_count「放入由逗號(,)分解的數組中。所以,我會得到:
array (
[1] => 'user_id',
[2] => 'username',
[3] => 'DATE(join_datetime) as join_date',
[4] => '(SELECT COUNT(1) FROM foobar WHERE foonum IN (5,4,6) and user_id = users.user_id) as myfoo_count'
)
我已經儘可能提取查詢的領域得到了一部分,但被困在試圖通過逗號爆炸等領域的IM。主要的問題是子查詢中可能有逗號(參見示例)。
感謝您的幫助!
那麼,它與此無關。這是一個需要我解釋原因的小說。它不是糟糕的設計或懶惰,我只是不想讓每個人都對這個項目的不足細節感到厭煩。 – David 2011-02-11 12:33:38
X-Ref:[PHP中的SQL解析器?](http://stackoverflow.com/q/8970499/367456) – hakre 2013-07-09 08:01:13