为了账号安全,请及时绑定邮箱和手机立即绑定

从数组值替换字符串中的某些字符

从数组值替换字符串中的某些字符

PHP
慕工程0101907 2021-05-06 13:20:25
我有一个数组:$arr = [5, "David"];我有一个查询:$query = "SELECT * FROM users WHERE user_id = ? AND user_name = ?";我想创建一个记录器查询,该查询使用这2个查询并手动返回查询。logger($query, $arr); // returns : SELECT * FROM users WHERE user_id = 5 AND user_name = 'David'我正在使用雄辩的胶囊管理器。我试图做这样的事情,但它并不能代替任何东西:function logger($query, $arr) {    foreach($arr as $a) {        is_numeric($a) ? str_replace("?",$a,$query) : str_replace("?","'".$a."'",$query);    }    return $query;}为什么此代码不起作用?
查看完整描述

2 回答

?
绝地无双

TA贡献1946条经验 获得超4个赞

我通过使用str_replace_first并将值辅助为变量来了解如何做到这一点。


        foreach($params as $a) {

            $query = is_numeric($a) ? str_replace_first("?",$a,$query,1) : str_replace_first("?","'".$a."'",$query);

        }

        return $query;

str_replace_first :


function str_replace_first($search_for, $replace_with, $in) {

  $pos = strpos($in, $search_for);

  if($pos === false) {

    return $in;

  } else {

    return substr($in, 0, $pos) . $replace_with . substr($in, $pos + strlen($search_for), strlen($in));

  }

}


查看完整回答
反对 回复 2021-05-28
  • 2 回答
  • 0 关注
  • 160 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信