且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

用于查找字符串是否为MySQL SELECT语句的PHP正则表达式

更新时间:2022-02-15 16:34:48

为什么不这样做:

$reg = "/^(s*?)selects*?.*?s*?from([s]|[^;]|(['"].*;.*['"]))*?;s*?$/i";

适用于SQL SELECT查询示例:http://www.phpliveregex.com/p/6nP

它还检查正在运行的唯一SQL查询是否是SELECT查询,因此它应该只验证它们。它通过确保只有一个;(除非That;在字符串中)来实现此目的,因此下面的代码将进行验证。

select * from users where id=1 AND name= 'Pra;bhu';

但这不会。

select * from users where id=1 AND name= 'Prabhu'; drop table;

和正则表达式,该正则表达式不检查字符串中的;,如果它在字符串中,则将失败:

$reg = "/^(s*?)selects*?.*?s*?from([s]|[^;])*?;s*?$/i"