kisphp/dbal

Kisphp 数据库访问层

0.2.0 2021-10-20 10:53 UTC

This package is auto-updated.

Last update: 2024-09-20 17:43:09 UTC


README

pipeline status coverage report

安装

在终端运行

composer require kisphp/dbal

连接到数据库

<?php

require_once 'path/to/vendor/autoload.php';

use Doctrine\DBAL\Configuration;
use Doctrine\DBAL\DriverManager;
use Kisphp\Db\KisphpDbal;

$config = new Configuration();
$connectionParams = [
    'driver' => 'pdo_mysql', // or pdo_pgsql
    'host' => 'localhost',
    'dbname' => 'test',
    'user' => 'root',
    'password' => '',
    'charset'  => 'utf8',
    'driverOptions' => [
        1002 => 'SET NAMES utf8',
    ]
];

$connection = DriverManager::getConnection($connectionParams, $config);

$db = new KisphpDbal($connection);

数据库插入

$db->insert('table_name', '数据数组');

$db->insert('test_table', [
    'column_1' => 'value_1',
    'column_2' => 'value_2',
]);

// will return last_insert_id

数据库更新

$db->update('table_name', '数据数组', '条件值', '列名(默认=id)');

$db->update('test_table', [
    'column_1' => 'value_1',
    'column_2' => 'value_2',
], [
    'id' => 1
]);

// will return affected_rows

获取单个值

$value = $db->getValue("SELECT column_1 FROM test_table");
// or
$value = $db->getValue("SELECT column_1 FROM test_table WHERE id = :id", [ 'id' => 1 ]);

获取成对数据

$pairs = $db->getPairs("SELECT id, column_1 FROM test_table");

// or

$pairs = $db->getPairs("SELECT id, column_1 FROM test_table WHERE column_2 = :condition", [ 'condition' => 'demo' ]);

/*
will result
$pairs = [
     '1' => 'c1.1',
     '2' => 'c2.1',
     '3' => 'c3.1',
];
*/

获取自定义查询

$query = $db->query("SELECT * FROM test_table");

// or

$query = $db->query("SELECT * FROM test_table WHERE column = :condition", [ 'condition' => 'demo' ]);

while ($item = $query->fetch(\PDO::FETCH_ASSOC)) {
    var_dump($item);
}