empatisoft / pdo
这个用PDO编写的轻量级数据库类可以轻松满足您的所有需求。
dev-master
2020-05-23 16:45 UTC
Requires
- php: >=5.6.40
- ext-pdo: *
This package is auto-updated.
Last update: 2024-09-18 15:07:20 UTC
README
这个用PDO编写的轻量级数据库类可以轻松满足您的所有需求。
使用Composer安装(终端)
在项目主目录中运行以下命令。
$ composer require empatisoft/pdo:dev-master --prefer-source
使用Composer安装(JSON)
将"require"值添加到您的composer.json文件中,然后运行"composer update"命令。
"empatisoft/pdo": "dev-master"
手动添加到项目中
下载类并将其复制到项目目录中以使用。
示例用法
ini_set('display_errors', 1); ini_set('display_startup_errors', 1); error_reporting(E_ERROR); define('DB_SERVER', 'localhost'); define('DB_USERNAME', 'root'); define('DB_PASSWORD', 'root'); define('DB_NAME', '_cms'); define('DB_PORT', 3306); define('DB_CHARSET', "utf8"); define('DIR', DIRECTORY_SEPARATOR); define('ROOT', $_SERVER['DOCUMENT_ROOT'].DIR); require_once ROOT."vendor".DIR."autoload.php"; $db = new \Empatisoft\EmpatiDB(); $result = $db ->select('parent_id, content_id, published_at, created_at') ->from('contents') ->where('is_published') ->order('created_at') ->limit(15,0) ->params([ ['is_published', '1', PDO::PARAM_INT] ])->get('all'); echo "<pre>"; print_r($result); echo "</pre>"; unset($db, $result);
有关其他示例,请参阅"examples"文件夹。
->get() 方法
在从数据库中提取数据时使用,应作为最后一个参数使用。它接受两个参数。
- 指定是要提取单行还是多行。默认为"all",表示提取多行。除此之外使用的值将提取单行。
- 指定PDO FETCH类型。默认为"PDO::FETCH_OBJ"。
这两个参数都不是必需的。
->lastId() 方法
返回最后添加的记录的第一主键值。
->nextId() 方法
根据指定的条件返回下一记录的第一主键值。可以与"from, join, where, group, order, params"方法一起使用。它接受两个参数。
- 主键列名
- 发送到params方法的键名。默认为"current"。
$result = $db ->from('contents', 'c') ->join('contents_strings', 's', ['c.content_id', 's.content_id']) ->where('c.is_published', 'is_published') ->params([ ['is_published', '1', PDO::PARAM_INT], ['current', '5', PDO::PARAM_INT] ])->nextId('c.content_id'); echo "<pre>"; var_dump($result); echo "</pre>"; unset($db, $result);
->prevId() 方法
根据指定的条件返回上一记录的第一主键值。可以与"from, join, where, group, order, params"方法一起使用。它接受两个参数。
- 主键列名
- 发送到params方法的键名。默认为"current"。
$result = $db ->from('contents', 'c') ->join('contents_strings', 's', ['c.content_id', 's.content_id']) ->where('c.is_published', 'is_published') ->params([ ['is_published', '1', PDO::PARAM_INT], ['current', '5', PDO::PARAM_INT] ])->prevId('c.content_id'); echo "<pre>"; var_dump($result); echo "</pre>"; unset($db, $result);
->total() 方法
根据指定的条件返回总数据条数。可以与"from, join, where, group, params"方法一起使用。它接受一个参数,即要计数的列名。
$result = $db ->from('contents', 'c') ->join('contents_strings', 's', ['c.content_id', 's.content_id']) ->where('c.is_published', 'is_published') ->where('c.parent_id', 'parent_id') ->params([ ['is_published', '1', PDO::PARAM_INT], ['parent_id', '0', PDO::PARAM_INT] ])->total('c.content_id'); echo "<pre>"; var_dump($result); echo "</pre>"; unset($db, $result);
->insert() 方法
用于添加数据。它接受三个参数。
- 表名
- 要添加的数据定义为数组。
- 是否返回添加的数据的主键值。默认为"false"。如果不提供,则返回true/false值。
$result = $db->insert('contents', [ 'is_published' => '1', 'created_by' => '1111', 'published_at' => date('Y-m-d H:s:i') ], true); echo "<pre>"; var_dump($result); echo "</pre>"; unset($db, $result);
->update() 方法
用于修改数据。可以与"where, params"方法一起使用。
它接受两个参数。
- 表名
- 要修改的数据定义为数组。
$result = $db ->where('content_id') ->params([ ['content_id', '13', PDO::PARAM_INT] ]) ->update('contents', [ 'updated_at' => date('Y-m-d H:s:i'), 'updated_by' => 1 ]); echo "<pre>"; var_dump($result); echo "</pre>"; unset($db, $result);
->delete() 方法
用于删除数据。可以与"where, params"方法一起使用。必须提供表名作为参数。
$result = $db ->where('content_id') ->params([ ['content_id', '14', PDO::PARAM_INT] ]) ->delete('contents'); echo "<pre>"; var_dump($result); echo "</pre>"; unset($db, $result);