从sql字符串中获取表名

Ale*_*lex 1 php regex string

table_name从以下字符串中获得的最有效方法是什么?我只能想到的substr()只是长度table_name可能并不总是一样

SELECT * FROM `table_name` WHERE `id` = '1'
Run Code Online (Sandbox Code Playgroud)

Cag*_*y79 5

我想这就是你想要的:

<?php
$query = "SELECT * FROM `table_name` WHERE `id` = '1'";
$pattern = "/SELECT \* FROM `(.*?)`/";
preg_match($pattern, $query, $matches);
print_r($matches);
?>
Run Code Online (Sandbox Code Playgroud)

然后从$ matches数组中选择正确的数组元素以获取表名.在这种情况下,这将是$matches[1]