gpt4 book ai didi

php - 将 SQL 查询的 SELECT 子句解析为 PHP 数组

转载 作者:可可西里 更新时间:2023-11-01 07:50:21 25 4
gpt4 key购买 nike

这更多是为了在 将查询发送到服务器之前用 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'
)

我已经尽可能地提取查询的字段部分,但我仍然坚持尝试用逗号分解字段。主要问题在于子查询中也可能包含逗号(参见示例)。

最佳答案

对于将来遇到这个问题的任何人,已经有人不厌其烦地写了一个 SQL parser in PHP .

目前支持SELECT、INSERT、UPDATE、DELETE、REPLACE语句。

关于php - 将 SQL 查询的 SELECT 子句解析为 PHP 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4968690/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com