Все основания, перепетые другими уже; одно дополнительное примечание:
, Если Вы делаете это:
/**
* This method currently launches the blaardh into the bleeyrg.
*/
void execute() { ... }
Рассматривают изменение его в это:
void launchBlaardhIntoBleeyrg() { ... }
Это может казаться немного очевидным, но во многих случаях возможность легко упустить в Вашем собственном коде.
Наконец имеют в виду, что изменение не всегда требуется; например, поведение метода, как могут ожидать, будет развиваться со временем (отмечайте слово "в настоящее время" в JavaDoc).
А как насчет использования запроса SQL, который выполняет что-то вроде этого:
show tables
Или, если необходимо, указывает базу данных:
show tables from crawler
И, если вы хотите получить только несколько таблиц:
show tables from crawler like 'site%'
Фактически, даже если функция mysql_list_tables ()
существует, на ее странице руководства указано:
Эта функция устарела. это предпочтительно использовать
mysql_query ()
, чтобы выдатьSQL SHOW TABLES [FROM db_name] [LIKE 'pattern']
инструкция вместо этого.
Полагаю, это должно быть вполне нормально с PDO.
И, тестируя с PDO:
$db = new PDO('mysql:dbname=crawler;host=127.0.0.1', 'crawler', 'crawler');
$result = $db->query("show tables");
while ($row = $result->fetch(PDO::FETCH_NUM)) {
var_dump($row[0]);
}
Я получаю такой вывод:
string 'headers' (length=7)
string 'headers_sites' (length=13)
string 'headers_sites_0' (length=15)
...
string 'headers_sites_7' (length=15)
string 'reporting_sites_servers_software' (length=32)
string 'servers' (length=7)
string 'sites' (length=5)
string 'sites_0' (length=7)
...
string 'sites_servers' (length=13)
string 'sites_software' (length=14)
string 'software' (length=8)
Что соответствует таблицам, которые я действительно есть в этой базе данных.
Если вам нужен переносимый способ запроса схемы, вы можете использовать стандарт ANSI INFORMATION_SCHEMA
Если вы хотите сделать это кроссплатформенным способом, посмотрите Zend_Db
Zend Framework , который предоставляет метод listTables ()