beeflow/sqlquerymanager

SQL查询管理工具

安装量:1,156

依赖项: 0

建议者: 0

安全性: 0

星标: 1

关注者: 2

分支: 0

开放问题: 4

类型:symfony-bundle

1.2.1 2019-06-22 08:24 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();
}`