tnapf / pdo
具有附加功能的 PDO 驱动程序
v1.0.1
2023-02-12 21:02 UTC
README
利用魔法使PDO更容易
安装
composer require tnapf/pdo
创建连接
手动操作
$driver = (new Driver) ->withUsername("root") ->withPassword("password") ->withDatabase("database") ->withHost("127.0.0.1") ->withPort(3306) ->withPrefix(Driver::PREFIX_MYSQL) ->connect() ;
您可以使用 Driver::setDsnProp 或 Driver::with{在此处插入dsn属性名} 来设置额外的dsn值
使用数据库预定义的 createDriver 方法
目前我只实现了mysql、postgres和SQLite的特定方法
$driver = Driver::createMySqlDriver("root", "password", "database")->connect(); $driver = Driver::createPostgresSqlDriver("root", "password", "database")->connect(); $driver = Driver::createSQLiteDriver("/path/to/db.sqlite")->connect(); // you can set the host and port in the last two parameters but they default to localhost and the default port of the service
执行查询
$rows = $driver->query("SELECT * FROM table")->fetchAll(PDO::FETCH_ASSOC);
驱动程序将内部存储 PDOStatement 并检测您调用的方法是否存在于 PDOStatement 或 PDO 中,并根据情况在实例上调用它。 幸运的是,这两个类之间没有相同的方法名称
准备语句
$driver->prepare("SELECT * FROM table WHERE column = :column"); $driver->bindValue("column", "value"); $driver->execute(); $rows = $driver->fetchAll(PDO::FETCH_ASSOC);
单例构造函数参数
如果您将单例参数构造为 true,则新实例将被存储为类的静态属性,可以从任何地方通过 get 方法调用。您还可以从 Driver 静态调用 PDO/PDOStatement 方法,它的工作方式类似于 $driver->methodName
(new Driver(true)) ->withUsername("root") ->withPassword("password") ->withDatabase("database") ->withHost("127.0.0.1") ->connect() ; function getRowWhereIdIs(int $id, int $fetch_type = PDO::FETCH_ASSOC): mixed { Driver::prepare("SELECT * FROM table WHERE id = :id"); Driver::bindValue("id", $id); Driver::execute(); return Driver::fetch($fetch_type); } $row = getRowWhereIdIs(20);