You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用PHP SQL Parser将数组值转换为MySQL查询语句?

将PHP SQL Parser解析后的数组转回MySQL查询语句

嘿,刚好PHP SQL Parser自带了SQL生成器功能,不用你手动拼接数组元素来重建SQL语句,直接用它的PHPSQLCreator类就能轻松搞定!

下面是修改后的完整可运行代码,替换你原来的代码即可:

<?php
require_once dirname(__FILE__) . '/../src/PHPSQLParser.php';
// 别忘了引入生成器类,这是还原SQL的核心
require_once dirname(__FILE__) . '/../src/PHPSQLCreator.php';

$sql = 'SELECT Orders.OrderID, Customers.CustomerName, Orders.OrderDate FROM Orders LEFT JOIN Customers ON Orders.CustomerID=Customers.CustomerID where Customers.CustomerName = "Siddhu"';
// 这里的strtolower可以保留也可以去掉,生成器会匹配你传入的SQL大小写风格
$sql = strtolower($sql);
echo "原SQL:" . $sql . "<br>";

// 解析SQL为数组
$parser = new PHPSQLParser($sql, true);
// 实例化生成器,传入解析后的数组
$creator = new PHPSQLCreator($parser->parsed);
// 生成对应的MySQL查询语句
$generatedSql = $creator->build();

echo "<br>还原后的SQL:" . $generatedSql . "<br>";
echo "<pre>解析后的数组结构:";
print_r($parser->parsed);
echo "</pre>";
?>

关键步骤说明:

  • 必须引入PHPSQLCreator.php文件,它是专门负责从解析数组重建SQL的工具类
  • 实例化PHPSQLCreator时,直接传入解析器生成的$parser->parsed数组即可
  • 调用build()方法就能一键得到还原后的MySQL查询语句

小提示:

  • 如果你之前把SQL转成了小写(像你代码里的strtolower($sql)),生成的SQL也会是小写风格;如果保留原SQL的大小写,生成结果也会对应保留
  • 生成器会自动处理JOIN、WHERE、SELECT字段等所有SQL结构,不用你手动遍历数组拼接,能避免很多语法错误

内容的提问来源于stack exchange,提问作者Siddhu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 11:31:39