2010-08-20 11 views
5

Próbuję programowo pobrać komentarz do tabeli MySQL. Pierwsza metoda zasugerował mi było:Jaki jest najbardziej elegancki sposób na uzyskanie komentarza do tablicy MySQL?

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

Ale ten rodzaj obejścia czyni mnie lizać. Natknąłem się na inny sposób:

$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]; 

To trochę lepiej (bez parsowania string), ale nadal sprawia mi nieswojo, bo jestem kopanie w strukturach wewnętrznych, gdzie nie czuję się jak ja należę.

Czy istnieje ładny, prosty sposób na wpisanie komentarza do tabeli w kodzie?

Odpowiedz

3

Schemat informacji nie jest tak naprawdę wewnętrzną strukturą, w której nie należysz. Jest to część standardu ANSI SQL, a jego celem jest zapewnienie legalnego sposobu wysyłania zapytań do metadanych.

Bez wahania zechcę go użyć.

Jedną z wad jest to, że implementacja schematu informacyjnego MySQL ma dość ładny poor performance. Należy więc zachować ostrożność podczas uruchamiania zapytań dotyczących IS w procedurach, które powinny być szybkie.

+0

Fajnie, nie wiedziałem, że to rzeczywiście część normy. Zazwyczaj jednak staram się trzymać z daleka od rzeczy, które wyglądają zbyt "meta", jeśli mogę w tym pomóc ... mają tendencję do wywoływania bólów głowy (takich jak problemy z wydajnością, które łączysz). – zildjohn01

+0

Ponieważ masz napisany kod obu rozwiązań, zachęcam do przetestowania ich i zobaczenia, jaka jest różnica w wydajności i czy ta różnica jest możliwa do zaakceptowania dla twojej aplikacji. –

Powiązane problemy