suvarivaza / aura-query-builder-new
AuraQueryBuilderNew
1.1
2020-09-19 13:53 UTC
Requires
- ext-pdo: *
- aura/sqlquery: 3.x-dev
This package is auto-updated.
Last update: 2024-09-28 19:36:33 UTC
README
使用
use Suvarivaza\AQBN\QueryBuilder;
您可以通过使用静态方法 getInstance() 在任何地方获取 QueryBuilder 类的实例。
$db = QueryBuilder::getInstance();
为此,只需在路径 /configs/configDb.php 中创建数据库连接的配置文件(默认使用)或者在你的 index.php 中定义 CONFIG_DB_PATH 常量,如下所示
define('CONFIG_DB_PATH', '/path/configDb.php');
示例配置
$config = [
'driver' => 'mysql', // Db driver
'host' => 'localhost',
'db_name' => 'db_name',
'db_user' => 'db_user',
'db_password' => '',
'charset' => 'utf8', // Optional
'prefix' => '', // Table prefix, optional
'options' => [ // PDO constructor options, optional
PDO::ATTR_TIMEOUT => 5,
PDO::ATTR_EMULATE_PREPARES => false,
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
],
];
或者,您可以将数据库连接配置传递给 getInstance() 方法,示例
$db = QueryBuilder::getInstance($config);
或者,您可以直接创建 QueryBuilder 类的实例,并将 PDO 连接传递给构造函数,如下
$db = new QueryBuilder(PDO $pdo, Aura\SqlQuery\QueryFactory new QueryFactory('mysql'));
或者当然,您也可以使用 PHP DI...
方法
SELECT
$result = $db->select() // empty value equals '*'
->from('posts') // table name
->where('id', '=', 1)
->getAll('obj'); // can by: 'assoc', 'obj', 'both', 'num'. empty value equals 'assoc'
$result = $db->select('id') // column name
->from('posts') // table name
->where('id', '=', 1)
->getOne();
$result = $db->select(['project_id' , 'order_id']) // if you need to get several columns
->from('qcomment_projects_orders')
->where('order_id', '=', 123)
->getValue('project_id'); // if you need to get only one value
INSERT
$db->insert('posts')
->set(['title' => 'post title'])
->execute();
UPDATE
$db->update('posts')
->set(['title' => 'new post title'])
->where('id', '=', 1)
->execute();
DELETE
$db->delete('posts')
->where('id', '=', 1)
->execute();