jinnguyen / puja-db
Puja-Db是一个适配器,允许您的应用程序访问数据库
v1.2.0
2018-04-04 02:39 UTC
Requires
This package is not auto-updated.
Last update: 2024-09-19 17:28:15 UTC
README
Puja\Db是一个适配器,允许您的应用程序访问数据库
安装
composer require jinnguyen/puja-db
使用方法
require_once 'path/to/vendor/autoload.php';
use Puja\Db\Adapter;
use Puja\Db\Table;
// Load db configures
$configures = array(
'write_adapter_name' => '[adapter_name_2]', //Optional. Set adapter_name_2 is WriteAdapter
/**
Namespace to Driver folder, you can change it to your app, if you want create new Driver
Default value: \Puja\Db\Driver\
Currently we have 2 default Drivers: Mysqli, Pdo ( recommend to use Pdo)
*/
'DriverDir' => '\\Puja\\Db\\Driver\\', // Optional
/**
Namespace to Pdo Dns folder, you can change it to your app, if you want create new Dns for Pdo
Default value: \Puja\Db\Driver\Pdo\Dns\
Currently we have 3 default PDO Dns: mysql, sqlite, pgsql
*/
'DnsDir' => '\\Puja\\Db\\Driver\\Pdo\\Dns\\', // Optional
/**
Required
A list of configured adapters.
*/
'adapters' => array(
'[adapter_name_1]' => array(
'host' => '[adapter_name_1_host]',
'username' => '[adapter_name_1_username]',
'password' => '[adapter_name_1_password]',
'dbname' => '[adapter_name_1_dbname]',
'charset' => 'utf8',
'dns' => '[mysql|sqlite|pgsql]',
),
'[adapter_name_2]' => array(
'host' => '[adapter_name_2_host]',
'username' => '[adapter_name_2_username]',
'password' => '[adapter_name_2_password]',
'dbname' => '[adapter_name_2_dbname]',
'charset' => 'utf8',
'dns' => '[mysql|sqlite|pgsql]',
)
)
);
//Load configures to Adapter, just need load 1 time
new Adapter($configures);
创建适配器
// create default adapter
$adapter = Table::getAdapter('default'); // get adapter from $configure[adapters][default]
or $adapter = Table::getAdapter(); // get the first adapter from $configure[adapters]
// create write adapter
$adapter = Table::getAdapter('write'); // get adapter from $configure[adapters][write]
or $adapter = Table::getWriteAdapter() // get adapter from $configure[adapters][*write_adapter_name*]
执行
执行一个SQL语句并返回受影响的行数
$num = $adapter->execute('select * from *table* limit 20');
var_dump($num);
查询
执行一个SQL语句,返回一个结果资源
$result = $adapter->query('select * from *table* limit 20');
print_r($result->fetch());
准备
准备一个要执行的语句并返回一个Statement
$stmt = $adapter->prepare('select * from *table* where id = :id and status = :status limit 20');
$stmt->bindValue(':status', 1);
$stmt->bindValue(':id', 10);
$stmt->execute();
print_r($stmt->fetch());
使用SQL构建器
// Visit https://github.com/jinnguyen/puja-sqlbuilder for more detail
// Build query
$select = $adapter->select()->from('*table*')->where('id = %d', 1)->limit(10);
$result = $adapter->query($select);
print_r($result->fetch());
从表对象
$table = new Table('');
$result = $table->findByCriteria(array('id' => 1));
print_r($result);