catsand/pdo-database-wrapper

此包已被弃用,不再维护。未建议替代包。

具有快速开发简单语法的PDO包装器 :+1

v1.0 2016-09-02 09:03 UTC

This package is not auto-updated.

Last update: 2020-02-21 16:56:43 UTC


README

简单PDO包装器,具有命名和问号占位符,易于快速开发。试试吧!

要求

  • PHP 5.3或更高版本
  • PDO扩展

安装

下载文件。

  • 您可以直接下载并将它们解压到您的网站目录中。

Composer

  • composer require catsand/pdo-database-wrapper

克隆仓库

  • git clone https://github.com/catsAND/PDO-Database-Wrapper.git

特性

  • 简单语法。
  • 带类型的问号占位符。
  • 命名占位符。

函数

列表

public query($sql, ...value)

public select($sql, ...value)

public selectCell($sql, ...value);
public column($sql, ...value);
public cell($sql, ...value);

public selectRow($sql, ...value);
public fetch($sql, ...value);
public row($sql, ...value);

public selectArray($sql, ...value);

public selectHash($sql, ...value);
public hash($sql, ...value);

public insert($tableName, $valueArray, $columnsArray = array);
public insertIgnore($tableName, $valueArray, $columnsArray = array);
public replace($tableName, $valueArray, $columnsArray = array);

public getLastId();
public lastId();

public getRowCount();

public beginTransaction();
public start();

public executeTransaction();
public finish();
public commit();

public rollBack();
public cancel();

public lock($tableNames);

public unlock();
  • query
public query($sql, ...value)

返回受影响的行数

  • select
public select($sql, ...value)

返回包含结果的数组

  • selectCell
public selectCell($sql, ...value);

返回第一行第一列的值

  • selectRow
public selectRow($sql, ...value);

返回第一行的所有列

  • selectArray
public selectArray($sql, ...value);

返回行中第一列的值

  • selectHash
public selectHash($sql, ...value);

返回行中第一列的值作为键,第二列的值作为值

  • insert, insertIgnore, replace
public insert($tableName, $valueArray, $columnsArray = array);
public insertIgnore($tableName, $valueArray, $columnsArray = array);
public replace($tableName, $valueArray, $columnsArray = array);

返回受影响的行数

列名必须在$valueArray的第一个数组作为键或在$columnsArray数组作为值中。

示例

  $db = new Database\Database('localhost', 'dbname', 'user', 'password');
  $result = $db->select('SELECT COLUMN1, COLUMN2, COLUMN3 FROM `table_name` WHERE COLUMN4 = ?s AND COLUMN5 = ?i OR COLUMN6 = ?', 'column4', 5, 'column6');
 $db->insert('table_name', array(array('COLUMN1' => 123, 'COLUMN2' => 123), array(234, 234), array(345, 345), array(456, 456)));
 $db->insert('table_name', array(123, 123));
 $db->insertIgnore('table_name', array(array(123, 123), array(234, 234), array(345, 345), array(456, 456)), array('COLUMN1', 'COLUMN2'));
 $db->replace('table_name', array(123, 123), array('COLUMN1', 'COLUMN2'));

可用的占位符

? — 自动类型绑定值

select('SELECT * FROM `table_name` WHERE `COLUMN1` = ? OR `COLUMN2` = ?', 'VALUE', 5);
SELECT * FROM `table_name` WHERE `COLUMN1` = 'VALUE' OR `COLUMN2` = 5;

?r — 将原始值绑定到SQL查询而不进行验证

select('SELECT * FROM ?r WHERE `?r` > 1', '`table_name`', 'COLUMN');
SELECT * FROM `table_name` WHERE `COLUMN` > 1;

?i — 将值绑定为整数

select('SELECT * FROM `table_name` WHERE `COLUMN` = ?i', 23);
SELECT * FROM `table_name` WHERE `COLUMN` = 23;

?s — 将值绑定为字符串

select('SELECT * FROM `table_name` WHERE `COLUMN` = ?s', 'string');
SELECT * FROM `table_name` WHERE `COLUMN` = 'string';

?f — 将值绑定为浮点数

select('SELECT * FROM `table_name` WHERE `COLUMN` = ?f OR `COLUMN` = ?f', 3.1415926535, '2.71828');
SELECT * FROM `table_name` WHERE `COLUMN` = '3.1415926535' OR `COLUMN` = '2.71828';

?b — 将值绑定为布尔值

?n — 将值绑定为null

?q — 将值绑定为不带HTML标签的字符串

select('SELECT * FROM `table_name` WHERE `COLUMN` = ?s', 'string');
SELECT * FROM `table_name` WHERE `COLUMN` = 'string';

?a — 将值绑定为整数数组。

select('SELECT * FROM `table_name` WHERE `COLUMN` IN (?a)', array(10, '20', '30', 40.3));
SELECT * FROM `table_name` WHERE `COLUMN` IN (10, 20, 30, 40);

?j — 将值绑定为字符串数组。

select('SELECT * FROM `table_name` WHERE `COLUMN` IN (?j)', array('p', 'd', 'o'));
SELECT * FROM `table_name` WHERE `COLUMN` IN ('p', 'd', 'o');

?h — 将值绑定为键名为列名、值为列值的字符串数组。

select('UPDATE `table_name` SET ?h', array('COLUMN1' => 'One', 'COLUMN2' => 'Two', 'COLUMN3' => 'Three'));
UPDATE `table_name` SET `COLUMN1` = 'One', `COLUMN2` = 'Two', `COLUMN3` = 'Three';

?w — 将值绑定为键名为列名、值为列值、分隔符为AND的字符串数组。

select('SELECT * FROM `table_name` WHERE ?w', array('COLUMN1' => 'Three', 'COLUMN2' => 'Two', 'COLUMN3' => 'One'));
SELECT * FROM `table_name` WHERE `COLUMN1` = 'Three' AND `COLUMN2` = 'Two' AND `COLUMN3` = 'One';

命名占位符

select('SELECT * FROM `table_name` WHERE `COLUMN` = :val OR `COLUMN` :val2', array(':val' => 'VALUE', ':val2' => 'VALUE'));
SELECT * FROM `table_name` WHERE `COLUMN` = 'VALUE' OR `COLUMN2` = 'VALUE';

支持

如果您喜欢这个脚本,请通过star或fork仓库来支持。

如何贡献

始终欢迎

  • 如果您发现了bug或想要改进,请在GitHub上创建问题
  • 为开放的错误/功能问题创建拉取请求

感谢

许可证

本项目遵循MIT许可证 - 详细信息请参阅LICENSE.md文件。