我想为表添加前缀,并且最近编写了一个PHP脚本来提取字符串SQL查询中的所有表。从SQL查询中提取所有表
$sql = 'UPDATE festivals SET desc = "Starts from July"';
preg_match_all('/(from|into|update|table|join) (`?\w+`?)\s/i', $sql, $matches);
它的工作好,但唯一的问题是,它提取July
,因为它没有一个SQL值和实际表名称区分,所以它假定July
将是一个表了。
现在我认为解决方案应该是防止提取包含在单引号或双引号中的内容,但不知道如何做。
你应该真的考虑这个问题:http://stackoverflow.com/questions/281041/regular-expression-to-find-all-table-names-in-a-query。 – nvartolomei
谢谢,但这是另一个问题,因为我想添加一个前缀到表,并不关心空白,别名或等 – Omid
你试过我建议在下面的正则表达式? –