uk / db
UniKado 数据库 DB 库。
0.1.2
2016-07-03 15:06 UTC
Requires
- php: >=7.0
- uk/core.errors: ^0.1.1
Requires (Dev)
- phpunit/phpunit: 5.0.*
This package is not auto-updated.
Last update: 2024-09-23 11:46:23 UTC
README
UniKado 数据库 DB 库
用法
use UK\DB\Connection; try { // Open the PGSQL connection (for example) $conn = Connection::CreatePgSQL( '127.0.0.1', 'my_database', 'db_user', 'db_password', 'UTF8', 5432 ); // Fetch all records with an foo value > 0 $records = $conn->fetchAll( 'SELECT foo, bar, baz from my_table WHERE foo > ?', [ 0 ] ); // Output the returned records print_r( $records ); } catch ( \Exception $ex ) { echo $ex; exit; }
版本历史
0.1.2
修复第一个问题 #1
这为 \UK\DB\Connection 添加了 2 个新方法
- \UK\DB\Connection::getParseQueryVarsAlways() : bool
- \UK\DB\Connection::setParseQueryVarsAlways( bool $value )
这些方法允许您设置或获取一个标志,声明是否始终执行用于定义 Query-Vars 的 SQL 查询字符串的解析。否则,只有在定义了 Query-Vars 时才会进行解析。
0.1.1
介绍 Query-Vars。(预准备语句)
Query-Vars 是键值对,用于将一些关联字符串值替换 SQL 查询字符串中的占位符。
它类似于常规的已知预准备语句,但可用于预准备语句无法工作的查询部分。例如,用于动态表名部分或其他内容…
占位符格式限制
SQL 查询字符串中的占位符必须
- 以一个开大括号开始,后跟美元符号
{$,并以闭大括号}结束 - 由占位符名称和默认值两部分组成,由等号
=分隔
如果没有通过 PHP 代码定义 Query-Var,则默认值已经使用。
如果没有使用默认值,则等号是必需的,但如果没有声明替换值,则抛出异常!
{$PlaceholderName=DefaultValue}
或者 2 个不带默认值的变体
{$PlaceholderName=}
{$PlaceholderName}
值格式限制
- Query-Vars 的值必须是字符串(非 null 或其他内容)
- 它不应包含两个连续的连字符
-- - 接受的字符是:
A-Za-z0-9 \t?_:.<=>-
例如
如果您想使用以下 SQL
SELECT foo, bar FROM my_table WHERE foo > ? ORDER BY foo ASC
但顺序方向部分应该是动态的,您可以使用
SELECT foo, bar FROM my_table WHERE foo > ? ORDER BY foo {$ORDER_DIRECTION=ASC}
调用此 SQL 命令的示例
$records = $connectionInstance->fetchAll( // The SQL query string 'SELECT foo, bar FROM my_table WHERE foo > ? ORDER BY foo {$ORDER_DIRECTION=ASC}', // Prepared statement parameters [ 0 ], \PDO::FETCH_ASSOC // The query vars [ 'ORDER_DIRECTION' => 'DESC' ] );
v0.1
这是初始的第一个提交。