php获取数据库表的相关信息,

31 篇文章 3 订阅

由于要写接口文档和注释,发现特别麻烦,就想写个脚手架,来自动生成

需要获取表的注释和表的字段类型,字段名,字段注释等

1:获取表注释

show table status like 表名 读取表名和注释

$sql   = sprintf("show table status like '%s'", $table);
$stmt  = $dbh->prepare($sql);
$stmt->execute();
$results = $stmt->fetchAll(PDO::FETCH_ASSOC);
if(!empty($results)) {
    if($results[0]['Name'] == $table){
        $sComment = $results[0]['Comment'];
    }
}

2:字段名,字段类型,注释等

$sql   = sprintf('SHOW FULL COLUMNS FROM %s', $table);
$stmt  = $dbh->prepare($sql);
$stmt->execute();
$results = $stmt->fetchAll(PDO::FETCH_ASSOC);
$fields  = array();
foreach ($results as $row) {
    if (in_array($row['Field'], $filter_columns)) {
        continue;
    }
    $fields[$row['Field']]['fieldName'] = $row['Field'];
    $length = strpos($row['Type'],'(');
    if($length === false) {
        $length = strlen($row['Type']);
    }
    $val_type = substr($row['Type'], 0, $length);
    $fields[$row['Field']]['Type'] = field_format($val_type);
    $fields[$row['Field']]['Comment'] = $row['Comment'];
}

获取数据库的代码可以根据不同的编程语言和数据库类型而有所不同,以下是几个常见的示例: 1. Python获取MySQL数据库: ``` import mysql.connector # 连接数据库 cnx = mysql.connector.connect(user='username', password='password', host='localhost', database='database_name') # 获取名 cursor = cnx.cursor() cursor.execute("SHOW TABLES") # 遍历名 for table_name in cursor: print(table_name) # 关闭连接 cursor.close() cnx.close() ``` 2. Java获取Oracle数据库: ``` import java.sql.*; // 连接数据库 Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl", "username", "password"); // 获取名 DatabaseMetaData metaData = conn.getMetaData(); ResultSet rs = metaData.getTables(null, null, null, new String[] {"TABLE"}); // 遍历名 while (rs.next()) { String tableName = rs.getString("TABLE_NAME"); System.out.println(tableName); } // 关闭连接 rs.close(); conn.close(); ``` 3. PHP获取SQL Server数据库: ``` $serverName = "localhost"; $connectionInfo = array("Database"=>"database_name", "UID"=>"username", "PWD"=>"password"); $conn = sqlsrv_connect($serverName, $connectionInfo); // 获取名 $sql = "SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE = 'BASE TABLE' AND TABLE_CATALOG='database_name'"; $stmt = sqlsrv_query($conn, $sql); // 遍历名 while ($row = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC)) { echo $row['TABLE_NAME'] . "<br />"; } // 关闭连接 sqlsrv_free_stmt($stmt); sqlsrv_close($conn); ``` 以上代码仅供参考,具体的实现方式需要根据不同的环境和需求进行调整。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

fish_study_csdn

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值