这个用PDO编写的轻量级数据库类可以轻松满足您的所有需求。

dev-master 2020-05-23 16:45 UTC

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() 方法

在从数据库中提取数据时使用,应作为最后一个参数使用。它接受两个参数。

  1. 指定是要提取单行还是多行。默认为"all",表示提取多行。除此之外使用的值将提取单行。
  2. 指定PDO FETCH类型。默认为"PDO::FETCH_OBJ"。

这两个参数都不是必需的。

->lastId() 方法

返回最后添加的记录的第一主键值。

->nextId() 方法

根据指定的条件返回下一记录的第一主键值。可以与"from, join, where, group, order, params"方法一起使用。它接受两个参数。

  1. 主键列名
  2. 发送到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"方法一起使用。它接受两个参数。

  1. 主键列名
  2. 发送到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() 方法

用于添加数据。它接受三个参数。

  1. 表名
  2. 要添加的数据定义为数组。
  3. 是否返回添加的数据的主键值。默认为"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"方法一起使用。

它接受两个参数。

  1. 表名
  2. 要修改的数据定义为数组。
$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);