如何判斷一個table有沒有某欄位??

edited 十一月 -1 in 資料庫
如題,
例如說Member的這個table,
想要知道有沒有Address這個欄位,
應該要怎麼做??


原始討論: http://twpug.net/x/modules/newbb/viewtopic.php?topic_id=5212

評論

  • edited 六月 2010
    這可以取回所有欄位名

    <?php
    define(\"_SQL\",\"mysql\");
    define(\"_SQLhost\",\"localhost\");
    define(\"_SQLadmin\",\"root\");
    define(\"_SQLpass\",\"\");
    define(\"_SQLdbname\",\"\");
    $pdo=new PDO(_SQL.':dbname='._SQLdbname.';host='._SQLhost,_SQLadmin,_SQLpass);
    $sql=\"SELECT * FROM table_name;\";
    $stmt=$pdo->query($sql);
    $cs=$stmt->columnCount();
    $buff=array();
    for($i=0;$i<$cs;$i++)
    {
    $meta=$stmt->getColumnMeta($i);
    array_push($buff,$meta['name']);
    }
    print_r($buff);
    ?>
  • edited 六月 2010
    所以PDO的class有提供下載嗎??
  • edited 六月 2010
    =.= ...
    PHP5.0+ 的話PDO是預設載入的擴展,意思就是正常都一定有
    但是mysql function擴展中其實也有相應的函數可以使用
  • 假設 mysql test db 內有一個 table m,m內有 x,y,z 欄位; 今假若要查 m 的所有欄位是否有 kk 這個欄位 sql 如下:

    select count(b.column_name)
    from information_schema.columns as b
    where b.table_schema='test'
    and b.table_name='m'
    and b.column_name='kk'

    回傳 0 , 就是沒有 kk 欄位
Sign In or Register to comment.