首页 » ZenCart » ZenCart分析 » 阅读文章
ZenCart数据库类中特定字符串替换函数bindVars()
在分析zencart源码中会经常看到一些较长的sql语句中出现如:languagesID之类的特定字符,这些字符不是sql的语句字符。需要借助bindVars()函数来实现价值
bindVars()位于includes\classes\db\mysql\query_factory.php第433行,作用:将sql语句中的特定字符替换为有意义的字符,在一些使用较长的sql语句中从而避免出错
参数 | 作用 |
---|---|
$sql | sql语句 |
$bindVarString | 被替换的字符串 |
$bindVarValue | 替换为的字符串 |
$bindVarType | 数据类型 |
$debug | 调试开关 |
数据原型
function bindVars($sql, $bindVarString, $bindVarValue, $bindVarType, $debug = false) { $bindVarTypeArray = explode(':', $bindVarType); $sqlNew = $this->getBindVarValue($bindVarValue, $bindVarType); $sqlNew = str_replace($bindVarString, $sqlNew, $sql); return $sqlNew; }
例如
有的sql语句中会出现这么一段
$sql=...AND cd.language_id = :languagesID ...; $sql = $db->bindVars($sql, ':languagesID', $_SESSION['languages_id'], 'integer');
函数的作用就是将:languagesID替换为$_SESSION['languages_id'],integer整型
声明: 本文由Ezencart原创,转载请保留链接:ZenCart数据库类中特定字符串替换函数bindVars()
评论 共0条 (RSS 2.0) 发表评论