Я создал функцию для печати подготовленной-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 он отлично работает.
Есть идеи, почему?