我有一个数组:$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));
}
}
- 2 回答
- 0 关注
- 160 浏览
添加回答
举报
0/150
提交
取消