aura / sqlschema
提供使用PDO从数据库读取表名和表列的设施。
Requires
- php: >=5.3.0
This package is auto-updated.
Last update: 2024-09-11 03:42:46 UTC
README
提供使用PDO连接从数据库读取表名和表列的设施。
前言
安装
此库需要PHP 5.3或更高版本;我们原则上推荐使用最新可用的PHP版本。它没有用户空间依赖。
可以通过Composer安装和自动加载,作为 aura/sqlschema。
或者,下载一个版本 或克隆此存储库,然后要求或包含其 autoload.php 文件。
质量
要运行命令行中的单元测试,请在包根目录下运行 phpunit
。(这需要PHPUnit 作为 phpunit
可用。)
此库试图遵守 PSR-1、PSR-2 和 PSR-4。如果您发现符合性疏忽,请通过拉取请求发送补丁。
社区
要提问、提供反馈或与其他Aura社区进行交流,请加入我们的 Google Group、关注 @auraphp on Twitter 或在Freenode上的 #auraphp 上与我们聊天。
入门
实例化
使用匹配的 PDO 实例实例化特定驱动程序的schema对象
<?php use Aura\SqlSchema\ColumnFactory; use Aura\SqlSchema\MysqlSchema; // for MySQL use Aura\SqlSchema\PgsqlSchema; // for PostgreSQL use Aura\SqlSchema\SqliteSchema; // for Sqlite use Aura\SqlSchema\SqlsrvSchema; // for Microsoft SQL Server use PDO; // a PDO connection $pdo = new PDO(...); // a column definition factory $column_factory = new ColumnFactory(); // the schema discovery object $schema = new MysqlSchema($pdo, $column_factory); ?>
获取表列表
要获取数据库中的表列表,请执行 fetchTableList()
<?php $tables = $schema->fetchTableList(); foreach ($tables as $table) { echo $table . PHP_EOL; } ?>
获取列信息
要获取表中列的信息,请执行 fetchTableCols()
<?php $cols = $schema->fetchTableCols('table_name'); foreach ($cols as $name => $col) { echo "Column $name is of type " . $col->type . " with a size of " . $col->size . PHP_EOL; } ?>
每个列描述是一个具有以下属性的 Column
对象
-
name
: (string) 列名 -
type
: (string) 列数据类型。数据类型与数据库报告的相同。 -
size
: (int) 列大小。 -
scale
: (int) 列的十进制位数,如果有。 -
notnull
: (bool) 列是否标记为NOT NULL
? -
default
: (mixed) 列的默认值。注意,有时这将是null
,如果底层数据库将自动设置时间戳。 -
autoinc
: (bool) 列是否自动递增? -
primary
: (bool) 列是否是主键的一部分?