验证MySQL查询的括号

时间:2011-08-11 04:11:10

标签: mysql regex

我让我的用户能够创建自己的MySQL查询。别担心,我正在考虑所有sql注入等。

我想要做的是验证他们在创建查询时使用的括号......

让我们说他们的查询看起来像这样:

$string = '1 AND (2 OR 3) AND (4 AND (5 OR 6)';

看看他们怎么没有在4号之前关闭左括号?有没有我可以运行的正则表达式来验证任何未正确添加的打开或关闭的括号?

我一直在玩和搜索,但我不知道如何使这项工作。

1 个答案:

答案 0 :(得分:0)

谢谢@Jayantha!这是我通过点击链接找到的解决方案:

$string = '1 AND (2 OR 3) AND (4 AND (5 OR 6)';

if (!preg_match("/^((?:[^()]|\((?1)\))*+)$/", $string, $matches))
    echo 'Your parentheses are wrong!';