adrian0350/simple-pdo-wrapper

正如其名所示,这是一个简单的PDO包装器,旨在简化/简化/美化SQL语法和PDO的使用。

1.3.0 2017-10-19 18:22 UTC

This package is auto-updated.

Last update: 2024-09-25 07:30:47 UTC


README

SimplePDOWrapper的目的是帮助您以更少的代码处理简单的数据库操作,并按照简单的结构编写更整洁的代码。

您可以使用以下功能:

  • 保存
  • 更新
  • 删除(带条件)
  • 删除所有(不带条件)
  • 查找单个
  • 查找所有
  • 设置数据库(动态切换)
  • 通过公共变量@errors进行错误处理

依赖

PHP 版本

由于PHP PDO依赖,此类与PHP 5.0及以上版本兼容。

安装

将此库添加到您的Composer配置。在composer.json中

  "require": {
    "adrian0350/simple-pdo-wrapper": "1.*"
  }

或者

如果您正在使用bash。

$ composer require adrian0350/simple-pdo-wrapper

用法

使用时,只需调用SimplePDOWrapper实例对象的方法。

<?php

require_once dirname(dirname(__FILE__)).'/src/SimplePDOWrapper.php';

$conf = array(
	'database' => 'your_db_name',
	'username' => 'root',
	'password' => 'toor',
	'host' => 'localhost'
);
$SimplePDOWrapper = new SimplePDOWrapper($conf);

选项参数

可以通过以下方式提供选项:

  • 条件
    • >
    • <
    • >=
    • <=
    • !=
    • LIKE
    • 更复杂的子句:(UNIX_TIMESTAMP(calldate) + callduration) >=
  • 限制
  • 字段
  • 排序
// For now conditions only has basic clause.
$options = array(
	'conditions' => array(
			'username' => 'john.doe@email.com'
		),
	'limit' => 10,
	'fields' => array('id', 'username', 'password', 'name'),
	'order' => array('id DESC')
);

保存新条目

// After saving you will receive the last saved entity.
$save = array(
	'id' => 10,
	'username' => 'jaime.ziga@gmail.com',
	'password' => 'Dude, it\'s private…',
	'name' => 'John Doe'
);
$user_saved = $SimplePDOWrapper->save('users', $save);

更新新条目

// When updating it will only return true or false.
$update = array(
	'name' => 'Adrián Zúñiga'
);
$SimplePDOWrapper->update('users', $update, array(
	'conditions' => array(
		'id' => $user_saved['id']
	)
));

findOne & findAll

这些方法总共接收3个参数,实体(表),选项(见上方)和关联(布尔值)以获取关联数组或STDClass对象。

// This findOne will return the one entity array or empty array.
$user = $SimplePDOWrapper->findOne('users', $options, $assoc = true);

// And findAll will return empty array or an array of STDClass objects.
$users = $SimplePDOWrapper->findAll('users', $options, $assoc = false);

delete & deleteAll

delete和deleteAll之间的唯一区别是delete接收带有'conditions'的选项参数。

// Options just needs compliant conditions.
$options = array(
    'conditions' => array(
        'id' => 666
    )
);

// Boolean
$deleted = $this->SimplePDOWrapper->delete('users', $options);

// Boolean
$deleted = $this->SimplePDOWrapper->deleteAll('users');

切换数据库

就像实例化类一样。

// Switch database with setDatabase() method
// and pass credentials in $conf array.
$conf = array(
	'database' => 'another_db',
	'username' => 'root',
	'password' => 'toor',
	'host' => 'localhost'
);

// Will return boolean.
$SimplePDOWrapper->setDatabase($conf);

错误处理

由于它内部设置为处理错误,您可以这样处理它们。

// As I mentioned before update method will return a boolean value.
$updated = $SimplePDOWrapper->update('users', $update, array(
	'conditions' => array(
		'id' => $user_saved['id']
	)
))

// Watching errors
if (!$updated || $SimplePDOWrapper->errors)
{
	var_dump($SimplePDOWrapper->errors['code']);
	var_dump($SimplePDOWrapper->errors['message']);
}