我创建了一个函数,用于打印包含变量的准备好的语句SQL字符串,基于我在这个StackOverflow问题中找到的内容。
这是我的代码:
foreach($params as $idx => $param) {
if ($idx == 0) continue;
$sql = str_replace('?', "'" . $param . "'", $sql, 1);
}
printError($sql);
运行此代码时我得到以下错误: Fatal error: Only variables can be passed by reference
,指的是第3行。然而当我使用下面这行代码时:
$sql = preg_replace('/\?/', "'" . $param . "'", $sql, 1);
第3行就可以正常工作。
有什么想法吗?
$count
参数的实际作用。它是一个“输出”参数,而不是一个“输入”参数。 - Lightness Races in Orbitstr_replace()
没有那个选项。正如你已经注意到的,preg_replace()
有。 - VoteyDisciple