我将一个if
语句添加到我的数据库抽象层,以挑选出对任意数据库表的任何尝试查询。我的preg_match语法是否有效?
基本上,如果我的应用程序试图创建,读取或销毁数据库表中的数据,称为members
或members_profiles
我想要调用我的if
语句。
if (
preg_match('/INSERT INTO [members|members_profiles]/', $sql) ||
preg_match('/UPDATE [members|members_profiles]/', $sql) ||
preg_match('/DELETE FROM [members|members_profiles]/', $sql))
{
// do if statement stuff here...
}
我不是正则表达式/预浸匹配的主人,但将上述if
语句如果SQL查询相匹配返回true:
INSERT INTO members ...
或INSERT INTO members_profiles ...
UPDATE members ...
或UPDATE members_profiles ...
DELETE FROM members ...
或DELETE FROM members_profiles ...
或者是我的preg-match语法关闭?
这可能要在组的末尾加一个'\ b',并且可以从'\ s *'空间中受益 - 尽管你关于不使用正则表达式的权限当然是有效的。 – 2010-07-14 13:00:28
我没有使用上面的内容来限制数据库访问,但更重要的是,我们正在推出一个新的环境,以便捕获即将被弃用的表的任何引用。这将在一个或两个测试环境中使用,以检查应用程序模型中已更新的所有查询。 – 2010-07-14 13:15:37