【发布时间】:2019-05-03 14:28:49
【问题描述】:
我有一个数组:
$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'
我正在使用 eloquent 的胶囊管理器。
我尝试做这样的事情,但它并没有取代任何东西:
function logger($query, $arr) {
foreach($arr as $a) {
is_numeric($a) ? str_replace("?",$a,$query) : str_replace("?","'".$a."'",$query);
}
return $query;
}
为什么这段代码不起作用?
【问题讨论】:
-
$params是什么? -
@B001ᛦ 错字,已修复。
-
实际的问题应该是“你为什么需要那个”?为什么不用mysql日志?
-
erm,我对 php 了解不多,但字符串不是不可变的。例如,您需要分配参考
-
@B001ᛦ 我不是在寻找替代方案或“你应该这样做或那样做”,我试图理解为什么这段代码不能按原样工作。