例如:
我有这个问题:
SELECT first_name
FROM users
INNER JOIN roles ON roles.id = users.id_roles
WHERE roles.name = 'admin';
我需要一个Array
,其中包含查询中使用的表的名称,如下所示:
['users','roles'];
答案 0 :(得分:3)
我认为使用正则表达式会很困难 - 除非您知道您的查询始终遵循相同的标准。这是使用EXPLAIN的选项。
$tables = [];
$query = "EXPLAIN SELECT first_name FROM users INNER JOIN roles ON roles.id = users.id_rolesWHERE roles.name = 'admin'";
$q = mysqli_query($link, $query);
while($r = mysqli_fetch_assoc($q)) {
$tables[] = $r['table'];
}
print_r(array_unique($tables));