我是靠谱客的博主 眼睛大人生,最近开发中收集的这篇文章主要介绍php多个参数绑定,多次使用绑定参数,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

我创建了两个函数来通过重命名重复使用的术语来解决该问题。一种用于重命名SQL,另一种用于重命名绑定。

/**

* Changes double bindings to seperate ones appended with numbers in bindings array

* example: :term will become :term_1, :term_2, .. when used multiple times.

*

* @param string $pstrSql

* @param array $paBindings

* @return array

*/

private function prepareParamtersForMultipleBindings($pstrSql, array $paBindings = array())

{

foreach($paBindings as $lstrBinding => $lmValue)

{

// $lnTermCount= substr_count($pstrSql, ':'.$lstrBinding);

preg_match_all("/:".$lstrBinding."b/", $pstrSql, $laMatches);

$lnTermCount= (isset($laMatches[0])) ? count($laMatches[0]) : 0;

if($lnTermCount > 1)

{

for($lnIndex = 1; $lnIndex <= $lnTermCount; $lnIndex++)

{

$paBindings[$lstrBinding.'_'.$lnIndex] = $lmValue;

}

unset($paBindings[$lstrBinding]);

}

}

return $paBindings;

}

/**

* Changes double bindings to seperate ones appended with numbers in SQL string

* example: :term will become :term_1, :term_2, .. when used multiple times.

*

* @param string $pstrSql

* @param array $paBindings

* @return string

*/

private function prepareSqlForMultipleBindings($pstrSql, array $paBindings = array())

{

foreach($paBindings as $lstrBinding => $lmValue)

{

// $lnTermCount= substr_count($pstrSql, ':'.$lstrBinding);

preg_match_all("/:".$lstrBinding."b/", $pstrSql, $laMatches);

$lnTermCount= (isset($laMatches[0])) ? count($laMatches[0]) : 0;

if($lnTermCount > 1)

{

$lnCount= 0;

$pstrSql= preg_replace_callback('(:'.$lstrBinding.'b)', function($paMatches) use (&$lnCount) {

$lnCount++;

return sprintf("%s_%d", $paMatches[0], $lnCount);

} , $pstrSql, $lnLimit = -1, $lnCount);

}

}

return $pstrSql;

}

用法示例:

$lstrSqlQuery= $this->prepareSqlForMultipleBindings($pstrSqlQuery, $paParameters);

$laParameters= $this->prepareParamtersForMultipleBindings($pstrSqlQuery, $paParameters);

$this->prepare($lstrSqlQuery)->execute($laParameters);

有关变量命名的说明:

p:参数,l:函数

str:字符串中的局部,n:数字,a:数组,m:混合

最后

以上就是眼睛大人生为你收集整理的php多个参数绑定,多次使用绑定参数的全部内容,希望文章能够帮你解决php多个参数绑定,多次使用绑定参数所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(57)

评论列表共有 0 条评论

立即
投稿
返回
顶部