php array between,php 多维数组转sql

题主是想实现,二维数组拼成一个sql语句吗。换一个思路,传参统一为多维数组。

function arrayToSqlStatement( $arrayData = [] )

{

$_temp_string = '';

foreach ($arrayData as $parameterArray) {

foreach ( $parameterArray as $parameter ) {

if ( is_array( $parameter ) && !empty( $parameter ) ) {

$sqlCondition = $parameter[0];

$sqlValue = $parameter[1];

} else {

$sqlCondition = '=';

$sqlValue = trim( $parameter );

}

//根据符号组合值的样式

if ( $sqlCondition == 'LIKE' ) {

$_temp_string .= ' AND ' . $k . ' LIKE "%' . $sqlValue . '%" ';

} elseif ( $sqlCondition == 'IN' ) {

$_temp_string .= ' AND ' . $k . ' IN(' . $sqlValue . ')';

} elseif ( $sqlCondition == 'BETWEEN' ) {

$_between_value = explode( '|', $sqlValue );

$_temp_string .= ' AND ' . $k . '>="' . $_between_value[0] . '" AND ' . $k . '<="' . $_between_value[1] . '" ';

} else {

$_temp_string .= ' AND ' . $k . $sqlCondition . ' "' . $sqlValue . '" ';

}

}

}

return $_temp_string;

}

//第二种情况,出问题了。

$a=[

[

'bbb'=>'222',

'ccc'=>'333',

'ddd'=>['>=','444'],

'eee'=>['BETWEEN','555|666']

],

[

'bbb'=>'222',

'ccc'=>'333',

'ddd'=>['>=','444'],

'eee'=>['BETWEEN','555|666']

]

];

//第一种情况,已经实现了

$b=

[

[

'bbb'=>'222',

'ccc'=>'333',

'ddd'=>['>=','444'],

'eee'=>['BETWEEN','555|666']

]

];

print_r(arrayToSqlStatement($b));

?>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值