neoparla/dbescaper
数据库包装器,用于正确转义,允许使用参数化值进行有意义的查询
1.0.1
2017-11-25 13:59 UTC
Requires
- php: >=5.3
- ext-mysqli: *
Requires (Dev)
- phpunit/phpunit: ~4.6
This package is not auto-updated.
Last update: 2024-09-28 17:17:51 UTC
README
数据库包装器,用于正确转义,允许使用参数化值进行有意义的查询
入门指南
通过composer
安装
composer require neoparla/dbescaper
第一步:连接
要创建一个实例,只需使用连接数据初始化它。
$db_escaper = DbEscaper::init(
array(
'host' => 'host',
'user' => 'user',
'pass' => 'pass',
'schema' => 'schema',
// 'port' => 3306
)
);
默认情况下,它将通过端口号 3306 进行连接。
基本查询
要运行基本查询,只需使用DbEscaper::query
。
$db_escaper->query('show tables');
语句
为了避免执行不想要的查询(即SQL注入),请使用DbEscaper::prepare()
。
$statement = $db_escaper->prepare($sql, $query_label);
您可以绑定以下类型的数据。
- 双精度浮点数 无转换
- 整数 无转换
- 字符串
- 字段
- 元组
绑定:字符串
它会转义字符串(如引号)并用引号包裹
$value = "string with quotes (') and slashes (\)"; DbStatement->bindParam(':binding', $value, Binding::String); // Real query: 'string with quotes (\') and slashes (\\)'
绑定:字段
它会确保有效的MySQL字段名,并用反引号包裹
$value = "field_name"; DbStatement->bindParam(':binding', $value, Binding::Field); // Real query: `field_name`
绑定:元组
它会确保所有值都是有效的,并在需要时进行转换。
$value = new DbTuple(Binding::PARAM_STRING, array('string 1', 'string 2'), DbTuple::WITH_PARENTHESIS);; DbStatement->bindParam(':binding', $value, Binding::Tuple); // Real query: ( 'string 1', 'string 2' )
DbTuple类
要绑定元组,必须使用DbTuple
类。
绑定:双精度浮点数和绑定:整数
此类绑定不会执行任何转换。它只会检查正确的数据类型。