chloe463/milchkuh

PDO 的包装类(特性)。

v1.2.2 2017-02-06 05:13 UTC

README

Build Status

概要

这是一个 PDO 的包装类(特性)。

您可以使用简单的 API 访问 MySQL 数据库。

安装

$ composer require chloe463/milchkuh

使用

<?php

use chloe463\Milchkuh\Milchkuh;
use chloe463\Milchkuh\Exception;

class AwesomeClass
{
    use Milchkuh;

    public function __construct()
    {
        $db_info = [
            // These are essential keys
            'host'       => 'localhost',
            'port'       => 3306,
            'user'       => '',
            'pass'       => '',
            'db_name'    => 'db',

            // table_name is optional
            'table_name' => 'table'
        ];
        $this->init($db_info);
    }

    public function doSomething()
    {
        // SELECT
        $records = [];
        try {
            $records = $this->select($query, $bind_param);
        } catch (Exception $e) {
            // Handle exception
        }

        // INSERT
        $last_insert_id = null;
        try {
            $last_insert_id = $this->insert($query, $bind_param);
        } catch (Exception $e) {
            // Handle exception
        }

        // UPDATE
        $row_count = null;
        try {
            $row_count = $this->update($query, $bind_param);
        } catch (Exception $e) {
            // Handle exception
        }

        // DELETE
        $row_count = null;
        try {
            $row_count = $this->delete($query, $bind_param);
        } catch (Exception $e) {
            // Handle exception
        }

        // SLEEP
        $this->nap(3);

        // There are some transaction APIs
        try {
            $this->begin();

            // Execute query

            $this->commit();
        } catch (Exception $e) {
            $this->rollBack();
        }
    }
}

其他功能

  • QueryBuilder 帮助您构建 SQL
$qb = new QueryBuilder();
$qb->append('SELECT * FROM db.table')
   ->append(' WHERE column1 = :column1')
   ->append(' AND column2 = :column2', isset($values['column2']));

$query = $qb->getQuery();
// If $values['column2'] is set
// SELECT * FROM db.table WHERE column1 = :column1 AND column2 = :column2
//
// If $values['column2'] is NOT set
// SELECT * FROM db.table WHERE column1 = :column1
  • Logger 记录查询
    • 要启用 logger,只需将日志文件路径作为第二个参数传递给 chloe463\Milchkuh\Milchkuh::init
    // Query logs are going to /path/to/log_file
    $this->init($connection_info, '/path/to/log_file');