2017-12-01 6 views
0

:私はこれはと思うSQLクエリに関係するテーブルのすべての名前を取得する方法は?たとえば

['users','roles']; 
+0

どのようにこれをPHPで行いましたか?あなたのコードを表示してください? –

+0

EXPLAIN [クエリ]を実行し、テーブルの列 –

+0

を解析することができます。しかし、クエリを書く場合、どのようにテーブル名を知りませんか? – JustCarty

答えて

3

SELECT first_name 
FROM users 
    INNER JOIN roles ON roles.id = users.id_roles 
WHERE roles.name = 'admin'; 

私はそのように、クエリで使用するテーブルの名前でArrayが必要になります。

私はこのクエリを持っていますあなたの質問がすべて同じ規格に一貫して従っていることが分かっていない限り、正規表現を使用するのは難しいでしょう。 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)); 
+0

ありがとう、これは私が問題を解決するのを助けた。 –

関連する問題