这更多是用于在将查询发送到服务器之前分析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、username、DATE(join_datetime)作为join_date、(SELECT COUNT(1) FROM foobar WHERE foonum IN (5,4,6) and 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'
)
我已经完成了查询字段的提取,但是我在尝试通过逗号拆分字段时遇到了困难。主要问题在于子查询也可能包含逗号(请参见示例)。