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

edited 十月 2013 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.