peteraba / foo-pdo
此包已被 废弃 且不再维护。未建议替代包。
Pdo 语句预处理器(例如,简单的 IN () WHERE 子句)
dev-master
2017-04-19 23:20 UTC
Requires (Dev)
- phpunit/phpunit: ^6.1
This package is auto-updated.
Last update: 2021-03-09 14:06:21 UTC
README
Pdo 语句预处理器(例如,简单的 IN () WHERE 子句)
设置
通过 composer 安装库
composer install peteraba/foo-pdo
使用
使用未命名参数
$sql = 'SELECT name, age, salary FROM employee WHERE age > ? AND department_id IN (?)'; $departmentIds = [3, 4, 6]; $minAge = 40; $parameters = [$minAge, $departmentIds]; $preprocessor = (new \Foo\Pdo\Statement\Preprocessor\Factory())->getPreprocessor(); $preprocessor->process($sql, $parameters); // $sql = 'SELECT name, age, salary FROM employee WHERE age > ? department_id IN (?, ?, ?)' // $departmentIds = [40, 3, 4, 6];
使用命名参数
$sql = 'SELECT name, age, salary FROM employee WHERE age > :age AND department_id IN (:departmentIds)'; $departmentIds = [3, 4, 6]; $minAge = 40; $parameters = [$minAge, $departmentIds]; $preprocessor = (new \Foo\Pdo\Statement\Preprocessor\Factory())->getPreprocessor(); $preprocessor->process($sql, $parameters); // $sql = 'SELECT name, age, salary FROM employee WHERE age > :age department_id IN (:departmentIds__expanded0, :departmentIds__expanded1, :departmentIds__expanded2)' // $departmentIds = [ 'age' => 40, 'departmentIds__expanded0' => 3, 'departmentIds__expanded1' => 4, 'departmentIds__expanded2' => 6, ];
注意:当前实现能够处理混合的命名和未命名参数,但未来无法保证这一点,因此您应避免使用此不受支持的功能。