beeflow / sqlquerymanager
SQL查询管理工具
1.2.1
2019-06-22 08:24 UTC
Requires
- php: >=7.1
- symfony/framework-bundle: >=3.4
Requires (Dev)
- phpunit/phpunit: ^8.1
This package is not auto-updated.
Last update: 2024-09-14 19:25:32 UTC
README
一个简单的SQL查询管理器,可以通过设置参数类型来安全地执行查询。
它使用代表基本数据类型的类,如字符串、整数等,以及自己的类,如secureString、email等...
为了更好地保护查询,您可以创建自己的变量类型类,例如密码或电话号码
安装
composer
$ composer require "beeflow/sqlquerymanager:dev-master"
GIT
$ git clone https://github/beeflow/
然后添加到 app/AppKernel.php
public function registerBundles()
{
...
new Beeflow\SQLQueryManager\SQLQueryBundle(),
}
要添加新的Vartype,只需将其插入到您的 services.yml
app.YourVarType:
class: YourBundle\Lib\Vartypes\YourVarType;
tags:
- { name: beeflow.sql_manager.vartype, alias: yourVarTypeAlias }
现在您可以在SQL查询中使用它
SELECT example1 FROM exampleTable WHERE example = {value->yourVarTypeAlias}
示例
SQL查询示例
SELECT example1 FROM exampleTable WHERE example = {value->secureString}
将SQLQueryManager作为Symfony服务使用
在您的控制器中
$sqlManager = $this->get('beeflow.sql_query_manager');
设置默认的SQL文件目录
$slqlManager->setSqlDirectory('sql_directory');
使用查询方法,使用临时不同的SQL文件目录
$slqlManager->sqlExample([
'value' => 'TEST_VALUE',
'value2' => 11,
'vatno' => '1111111111',
'valueArrayWithoutAtype' => array('one', 'two', 'tree')
], 'someTmpDirectory');
使用新方法调用SQL文件的示例
`<?php
use Beeflow\SQLQueryManager\SQLQuery
try {
$query = new SQLQuery();
$query->sqlExample([
'value' => 'TEST_VALUE',
'value2' => 11,
'vatno' => '1111111111',
'valueArrayWithoutAtype' => array('one', 'two', 'tree')
]);
echo $query->getQuery();
} catch (Exception $ex) {
echo $ex->getMessage();
}`
使用正确数据的示例
`<?php
use Beeflow\SQLQueryManager\SQLQuery
try {
$query = new SQLQuery("sqlExample");
$query->value = 'TEST_VALUE';
// if you set a string value it will be set as 0 (zero) because (integer)'ddd' = 0 (zero)
$query->value2 = 11;
// polish vat no algoritm allows to use 1111111111 vat number
// if you want to check an european vat no see:
// http://www.phpclasses.org/package/2280-PHP-Check-if-a-European-VAT-number-is-valid.html
$query->vatno = '1111111111';
$query->valueArrayWithoutAtype = array('one', 'two', 'tree');
$query->valueWithoutParamType = "value Without Param Type";
echo $query->getQuery();
} catch (Exception $ex) {
echo $ex->getMessage();
}`
使用错误数据的示例
`<?php
use Beeflow\SQLQueryManager\SQLQuery
try {
$newQuery = new SQLQuery("sqlExample");
$newQuery->value = 'TEST_VALUE';
$newQuery->value2 = 11;
// incorrect polish vat no
$newQuery->vatno = '1212111211';
$query->valueArrayWithoutAtype = array('one', 'two', 'tree');
$query->valueWithoutParamType = "value Without Param Type";
echo $newQuery->getQuery();
} catch (Exception $ex) {
echo $ex->getMessage();
}`
使用条件值的示例
`<?php
use Beeflow\SQLQueryManager\SQLQuery
try {
$query = new SQLQuery("sqlExample");
$query->value = 'TEST_VALUE';
// if you set a string value it will be set as 0 (zero) because (integer)'ddd' = 0 (zero)
$query->value2 = 11;
$query->vatno = '1111111111';
$query->valueArrayWithoutAtype = array('one', 'two', 'tree');
$query->valueWithoutParamType = "value Without Param Type";
// condition !empty()
$query->notEmptyValue = 1;
echo $query->getQuery();
} catch (Exception $ex) {
echo $ex->getMessage();
}`