gpt4 book ai didi

sql - 用于解析 SQL 参数的正则表达式

转载 作者:行者123 更新时间:2023-12-04 13:35:58 24 4
gpt4 key购买 nike

如果我有一个查询,例如 SELECT * from authors where name = @name_param ,是否有正则表达式来解析参数名称(特别是“name_param”)?

谢谢

最佳答案

这很棘手,因为参数也可能出现在带引号的字符串中。

SELECT * FROM authors WHERE name = @name_param 
AND string = 'don\'t use @name_param';

正则表达式如何知道使用第一个 @name_param但不是第二个?

这是一个可以解决的问题,但是在单个正则表达式中进行操作是不切实际的。我不得不在 Zend_Db 中处理这个问题,我所做的是首先去除所有带引号的字符串和分隔标识符,然后您可以在其余部分使用正则表达式。

你可以看到代码,因为它是开源的。
查看功能 _stripQuoted()_parseParameters() .

https://github.com/zendframework/zf1/blob/136735e776f520b081cd374012852cb88cef9a88/library/Zend/Db/Statement.php#L200
https://github.com/zendframework/zf1/blob/136735e776f520b081cd374012852cb88cef9a88/library/Zend/Db/Statement.php#L140

关于sql - 用于解析 SQL 参数的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/307929/

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