Php 向查询中的值添加别名
对不起,如果我的问题不太容易理解,我的英语不是很好。我为SQL查询处理所有带引号的字段,我通过函数array_map()完成这项工作,我需要向表的每个字段别名中添加 当我这样做的时候:Php 向查询中的值添加别名,php,Php,对不起,如果我的问题不太容易理解,我的英语不是很好。我为SQL查询处理所有带引号的字段,我通过函数array_map()完成这项工作,我需要向表的每个字段别名中添加 当我这样做的时候: private function fieldClause($fields, $alias) { if(is_array($fields)) { $fields = array_map(function($field) { return" $alias.`$
private function fieldClause($fields, $alias)
{
if(is_array($fields)) {
$fields = array_map(function($field) {
return" $alias.`$field`";
},$fields);
}
$fields = implode(",", $fields);
return $fields;
}
Im获取错误-未定义变量:别名在匿名函数中未定义$alias变量,必须将其作为参数添加到函数中。还要注意backtick运算符[1],尽管我不确定在双引号字符串中如何计算backtick 此版本将为$fields数组中的每个元素输出“$field.$alias”:
function mapAlias ($field, $alias) {
return "$alias.$field";
}
if (is_array($fields)) {
$fields= array_map("mapAlias", $fields, $alias);
}
[1] 如果您想继续使用匿名函数,可以使用
use
private function fieldClause($fields, $alias)
{
if(is_array($fields)) {
$fields = array_map(function($field) use ($alias) {
return" $alias.`$field`";
},$fields);
}
$fields = implode(",", $fields);
return $fields;
}
否则,创建另一个与
array\u map()
一起使用的函数,并传递2个参数。这是因为$alias
不在匿名函数的范围内。可能会回答你的问题。谢谢你的工作!!)