PDO操作
<h1>获取PDO对象</h1>
<p>使用 Init() 方法获取pdo模型的单例,不管在什么地方、多少次使用Init()方法,始终获取的是同一个pdo模型对象</p>
<p><strong>在 init() 的时候可以传入数据库的连接参数,格式同配置文件的 DB 字段</strong></p>
<pre><code> use lib\z\dbc\dbc;
$pdo = dbc::Init(); //默认连接参数
$pdo = dbc::Init($config); //传入连接参数</code></pre>
<h1>类方法</h1>
<p><strong>除了模型提供的方法外,也可以<font color=red>直接使用PDO原生的操作方法</font></strong>
<strong>下面的$sql是准备查询的sql语句,$bind是绑定的参数数组</strong></p>
<pre><code> // $sql 语句和 $bind 数组只是示例
$sql = 'SELECT * FROM `table` WHERE `id` = :id';
$bind = [':id'=>100];
//查询:
$pdo->Prepare($sql); //返回预处理的句柄
$pdo->Query($sql, $mode = \PDO::FETCH_ASSOC, $rows = 0); //返回本次查询的句柄($rows=0), 或数据($rows>0)
$pdo->Exec($sql); //返回本次查询的句柄
$pdo->QueryOne($sql, $bind); //返回一条数据
$pdo->QueryAll($sql, $bind); //返回所有数据
$pdo->QueryColumns($sql, $bind); //返回所有行中的一列
$pdo->QueryColumn($sql, $bind); //返回一行中的一列
$pdo->LastInsertId(); //最后一次插入数据的主键值
$pdo->Stmt(string $sql, array $bind = null); //Stmt实例(对 PDOStatement 的封装)</code></pre>
<h2>其它方法</h2>
<pre><code>$pdo->GetConfig(); //当前数据库连接的配置
$pdo->GetSql(); //最后一次查询的sql语句
$pdo->GetParams(); //最后一次查询的绑定参数
$pdo->Begin(); // 开始事务处理
$pdo->Commit(); // 提交事务
$pdo->Rollback(); // 回滚事务</code></pre>
<h2>Stmt 实例方法</h2>
<pre><code>$stmt = $pdo->Stmt($sql, $bind);
$stmt->Stmt(); // 返回 PDOStatement
$stmt->Batch(array $data, bool $returnKeys = false); // 批量操作
$pdo->Execute(); // 返回执行sql后的 PDOStatement
$pdo->Exec(); // 执行sql并返回结果
$pdo->RowCount(); // 受影响行数
$pdo->LastInsertId(string $name = null); // 最后执行的主键值
// 回调函数 $call ($row, $i) => [$key, $result]
// 将每行数据和行号传入 $call 进行处理; $call 需要返回 [$key 键名, $result 处理完的数据行]
// 最终整理成[$key=>$result, ...]的数据结构
$pdo->Rows(int $fetch = \PDO::FETCH_ASSOC, callable $call = null); // 返回多行数据
$pdo->Row(int $fetch = \PDO::FETCH_ASSOC); // 返回一行数据</code></pre>