mvcbox / sql-query
此包已被废弃,不再维护。未建议替代包。
查询构建器
dev-master / 0.1.x-dev
2016-07-15 06:12 UTC
Requires
- php: >=5.3.0
This package is not auto-updated.
Last update: 2018-07-03 08:43:52 UTC
README
SqlQuery - 简单的查询构造器。要求的PHP版本:5.3+
注意!描述不完整,将逐步补充。
安装
- 下载库的最新版本: https://github.com/mvcbox/sql-query/archive/master.zip
- 将存档内容解压到您的项目目录。
- 打开文件 connection.config.php 并指定您的连接数据。对于MySQL,需要指定:username、password、host、dbname。在其他情况下,通常可以不做更改。
- 在您需要与数据库交互的脚本中,"引入"文件 function.qb.php
require_once 'Путь к файлу function.qb.php';
现在您可以使用 qb() 函数了。库已准备好使用。
插入
向表中添加一个记录
qb()->table('table_name')->insert(array( 'column1' => 'value1', 'column2' => 'value2', 'column3' => 'value3' ));
向表中添加多个记录
qb()->table('table_name')->insert(array( array( 'column1' => 'value1', 'column2' => 'value2', 'column3' => 'value3' ), array( 'column1' => 'value4', 'column2' => 'value5', 'column3' => 'value6' ), array( 'column1' => 'value7', 'column2' => 'value8', 'column3' => 'value9' ) ), true);
更新
为所有记录设置 column 字段的新值
qb()->table('table_name')->update(array( 'column' => 'New value' ));
更新 id 等于 123 的记录的 column 字段的值
qb()->table('table_name')->where(array( 'id' => 123 ))->update(array( 'column' => 'New value' ));
更新 id 为 123、456 和 789 的记录的 column 字段的值
qb()->table('table_name')->where(array( 'id' => array(123, 456, 789) ))->update(array( 'column' => 'New value' ));
更新除 id 为 777 的记录外所有记录的 column 字段的值
qb()->table('table_name')->where(array( array('id', '<>', 777) ))->update(array( 'column' => 'New value' ));
删除
删除表中的所有记录
qb()->table('table_name')->delete();
删除具有特定 id 的记录
qb()->table('table_name')->where(array('id' => 123))->delete();
截断
清空表
qb()->table('table_name')->truncate();
选择
获取所有表 'table_name' 的记录
$result = qb()->table('table_name')->all();
获取表 table_name 的第一条记录
$result = qb()->table('table_name')->one();
获取 $limit 条记录,跳过前 $offset 条记录,对于表 table_name。limit 和 offset 可以单独使用
$result = qb()->table('table_name')->limit($limit)->offset($offset)->all();
条件查询。获取所有表 table_name 的记录,其中 email 字段等于 email@site.com
$result = qb()->table('table_name')->where(array( 'email' => 'email@site.com' ))->all();
获取所有表 table_name 的记录,其中 email 字段等于 email1@site.com 或 email2@site.com 或 email3@site.com
$result = qb()->table('table_name')->where(array( 'email' => array( 'email1@site.com', 'email2@site.com', 'email3@site.com' ) ))->all();
获取所有表 table_name 的记录,其中 username 等于 testuser,email 等于 email@site.com,role 等于 1、2 或 3,且 status 不等于 0
$result = qb()->table('table_name')->where(array( 'username' => 'testuser', 'email' => 'email@site.com', 'role' => array(1, 2, 3), array('status', '<>', 0) ))->all();
选择记录的仅限于字段 id 和 username
$result = qb()->table('table_name')->select(array('id', 'username'))->all();
选择记录的仅限于字段 id 和 username。对于 username 使用别名 login
$result = qb()->table('table_name')->select(array('id', 'login' => 'username'))->all();
获取表 'table_name' 的所有记录。对于表 'table_name' 设置别名为 't1'
$result = qb()->table(array('t1' => 'table_name'))->all();
INNER JOIN
$result = qb()->table(array('t1' => 'table_name_1'))->iJoin( array('t2' => 'table_name_2'), 'field_name_2', 'field_name_1' )->all();
或
$result = qb()->table(array('t1' => 'table_name_1'))->iJoin( array('t2' => 'table_name_2'), 't2.field_name_2', 't1.field_name_1' )->all();
INNER JOIN - 多个条件
$result = qb()->table(array('t1' => 'table_name_1'))->iJoin( array('t2' => 'table_name_2'), array( 'field_name_2_1' => 'field_name_1_1', 'field_name_2_2' => 'field_name_1_2' ) )->all();
或
$result = qb()->table(array('t1' => 'table_name_1'))->iJoin( array('t2' => 'table_name_2'), array( 't2.field_name_2_1' => 't1.field_name_1_1', 't2.field_name_2_2' => 't1.field_name_1_2' ) )->all();
或
$result = qb()->table(array('t1' => 'table_name_1'))->iJoin( array('t2' => 'table_name_2'), array( array('field_name_2_1', 'field_name_1_1'), array('field_name_2_2', 'field_name_1_2') ) )->all();
或
$result = qb()->table(array('t1' => 'table_name_1'))->iJoin( array('t2' => 'table_name_2'), array( array('t2.field_name_2_1', 't1.field_name_1_1'), array('t2.field_name_2_2', 't1.field_name_1_2') ) )->all();