Sorguda mysql tabloları alın

0 Cevap php

Ben bir sorguda kullanıyorum tabloları almak için herhangi bir yolu var mı?

Ben kullanıyordum ilk yöntem düzenli ifadeler oldu:

// result[1] = "SELECT"
// result[3] = "All between FROM and WHERE, ex: `users`, ex: `users`, `test`

if($result[1] == "SELECT" && !preg_match('/FROM\s*(.*?,.*?)\s*WHERE/i', $query, $res))
{
    $tables = preg_replace('/`|\'|\s/i', '', $result[3]); // strip ` or ' or spaces
    $tables = explode(",", $tables);
    sort($tables);
}

Ama karmaşık mysql sorguları, bu yüzden kullanılan sonraki yöntem:

EXPLAIN SELECT...

ve sonuç diziden tabloları olsun.

Sorun sayımları ile geliyor, ben biliyorum ki içinde MyISAM DB'ın the number of rows is stored, bir sonraki sorgu yapmak eğer öyleyse:

SELECT COUNT(*) FROM users

Sen sorguda kullanılan tablo alamadım, herhangi bir tablo kullanılır çünkü "uzak optimize Seçin tabloları" olsun.

Yani, there is another method to get tables used in a query? Teşekkürler

0 Cevap