PHP: "... variables can be passed by reference" in str_replace()? -


i created function print prepared-statement-sql-string variables in it, based on found in other stackoverflow question.

here code:

foreach($params $idx => $param) {     if ($idx == 0) continue;     $sql = str_replace('?', "'" . $param . "'", $sql, 1); } printerror($sql); 

when run get: fatal error: variables can passed reference line 3. when use

$sql = preg_replace('/\?/', "'" . $param . "'", $sql, 1);

for line 3 works fine.

any idea why?

the last parameter, count, passed reference. can see in description @ http://us.php.net/str_replace there's & in front of variable.

this means cannot use literal 1 there. you'd have do:

$sql = str_replace('?', "'" . $param . "'", $sql, $count); echo $count; 

you'll have displayed on screen how many instances replaced.


Comments