2010-08-20 122 views
5

我想以編程方式檢索MySQL表的評論。建議給我的第一種方法是:什麼是最優雅的方式來檢索MySQL表評論?

$shown = $db->query('show create table ' . TABLE_NAME)->fetch_row(); 
preg_match("/COMMENT='(.*)'/", $shown[0], $m); 
$comment = $m[1]; 

但這種解決方法讓我感到畏縮。我偶然發現了另一種方式:

$result = $db->query("select table_comment from information_schema.tables where table_schema = '" . 
    DATABASE_NAME . "' and table_name = '" TABLE_NAME '\'')->fetch_row(); 
$comment = $result[0]; 

這是好一點(沒有字符串解析),但它仍然讓我不舒服,因爲我挖成內部結構,我不覺得我屬於。

是否有一個很好的,簡單的方法來獲得在代碼中的表評論?

回答

3

信息模式並不是真正的不屬於你的內部結構。它是ANSI SQL標準的一部分,其目的是爲您提供查詢元數據的合法方式。

我會毫不猶豫地使用它。

其中一個缺點是MySQL的信息架構的實現往往具有相當的poor performance。所以要小心在應該快速的例程中運行對IS的查詢。

+0

很酷,我不知道它實際上是標準的一部分。儘管如此,我通常會盡量遠離那些看起來太「元」的東西,如果我能幫助它......他們往往只是讓我頭疼(比如你關聯的性能問題)。 – zildjohn01 2010-08-21 12:35:45

+0

由於您已經爲兩種解決方案編寫了代碼,因此我鼓勵您對它們進行基準測試,看看性能差異是什麼,以及這種差異是否適合您的應用。 – 2010-08-21 16:25:08

相關問題