esol / db
Requires
- php: >=5.5.0
- esol/sy_tools: *
- psr/link: ~1.0@dev
- symfony/http-foundation: *
- symfony/yaml: *
Requires (Dev)
- phpunit/phpunit: ^5.7.27
README
这个库允许查询POSTGRESQL或MYSQL数据库
- 从SELECT查询中检索数组
- 执行INSERT、UPDATE、DELETE或其他不需要返回的SQL指令
安装
通过Composer安装
composer require esol/db
在Esol/Db composer.json中,在post-package-install和post-package-update事件中添加脚本"Esol\Db\EsolDbConfigFile::initEsolDbConfigFile"。
"scripts": {
"post-package-install": [
"Esol\\Db\\EsolDbConfigFile::initEsolDbConfigFile"
],
"post-package-update": [
"Esol\\Db\\EsolDbConfigFile::initEsolDbConfigFile"
]
}
在php.ini中要激活的PHP扩展
Esol/Db使用mysqli和/或pgsql扩展
对于MySQL
Linux
extension=mysqli
Windows
extension=php_mysqli.dll
对于PostgreSQL
Linux
extension=pgsql
Windows
extension=php_pgsql.dll
配置
在{project_dir}/config/packages/prod/esolDb.yml文件中可以找到指向要操作的数据库的参数
配置以YAML格式书写,形式如下
parameters:
pgsqlTest:
driver: pgsql
host: db4free.net
port: '5432'
name: esoldb
user: esoldb
password: 4GwpEudP47s5qGD
##V3.4.30 识别项目根目录下的.env文件,每个环境变量的名称必须为esolDb_数据库名称_参数名称,例如
esolDb_pgsqlTestDb_driver=pgsql
esolDb_pgsqlTestDb_host=db4free.net
esolDb_pgsqlTestDb_port='5432'
esolDb_pgsqlTestDb_name=esoldb
esolDb_pgsqlTestDb_user=esoldb
esolDb_pgsqlTestDb_password=4GwpEudP47s5qGD
查询文件
在./Resources/sql/目录中放置要执行的sql文件。
基本用法
SELECT
$esolDb = new \Esol\Db\EsolDb("mysql_test", "./Resources/sql/select.sql");
$arrayData = $esolDb->getArrayData();
INSERT、UPDATE、DELETE
$esolDb = new \Esol\Db\EsolDb("mysql_test", "./Resources/sql/insert.sql");
$esolDb->execute();
在SQL指令中传递参数
ESOL/DB将替换SQL中的所有{}中的指令
可以使用以下方式传递参数
- 使用Symfony\Component\HttpFoundation\Request
$request = new Request();
$request->query->set("ORDER_BY", "name");
$esolDb = new \Esol\Db\EsolDb("mysql_test", "./Resources/sql/select.sql");
$esolDb->setASqlrVars($request);
$arrayData = $esolDb->getArrayData();
或直接将Request传递给getArrayData
$arrayData = $esolDb->getArrayData($request);
- 使用键表
$array = array(
"value1" => "BMOPQ",
"value2" => "JRYOM"
);
$esolDb = new \Esol\Db\EsolDb("mysql_test", "./Resources/sql/select.sql");
$esolDb->setASqlrVars($array); $arrayData = $esolDb->getArrayData();
OU directement en passant le tableau en paramètre de getArrayData
$arrayData = $esolDb->getArrayData($array);
- En utilisant la fonction publique setASqlrVars passant paramètre par paramètre
$esolDb = new \Esol\Db\EsolDb("mysql_test", "./Resources/sql/select.sql"); $esolDb->setASqlrVars('numPo', $rowData['id_po']); $arrayData = $esolDb->getArrayData();
### récupérer la requète SQL au format String
$esolDb = new \Esol\Db\EsolDb("mysql_test", "./Resources/sql/select.sql");
$sqlr = $esolDb->getSqlr();
## Third Party Packages
Esol/SyTools
## About
### Submitting bugs and feature requests
Cedric DELAMARRE - <cdelamarre@e-solutions.tm.fr>
### Author
Cedric DELAMARRE - <cdelamarre@e-solutions.tm.fr>
### License
### Acknowledgements