我有一個名爲$queries
一個數組,看起來像這樣:如何在多個查詢中進行多個字符串替換?
Array (
[0] => SELECT * FROM StudentRecord WHERE Year = '%YEAR%' AND Session = '%SESSION%' AND StudentID = '%SID%';
[1] => SELECT * FROM Student_ApplicationRecord WHERE ApplicationYear = '%YEAR%' AND Session%SESSION% = 1;
)
我也有一個第二陣列稱爲$variables
,看起來像這樣:
$variables = array('YEAR' => 2016, 'SESSION' => 1, 'SID' => $_SESSION['sid']);
我想用替換$queries
變量正確的值在$variables
。
我已經嘗試了許多解決方案,我已經拿出了迄今爲止最好的是:
foreach ($queries as $query)
foreach($variables as $key=>$value)
$newqueries[] = str_replace("%".$key."%", $value, $query);
然而這僅僅是在每個查詢一次更換一個變量。
即當我這樣做:
foreach ($newqueries as $query)
print ($query);
每個查詢的結果是:
SELECT * FROM StudentRecord
WHERE Year = '%YEAR%' AND Session = '%SESSION%' AND SID = '%SID%';
SELECT * FROM StudentRecord
WHERE Year = '%YEAR%' AND Session = '1' AND SID = '%SID%';
SELECT * FROM StudentRecord
WHERE Year = '%YEAR%' AND Session = '%SESSION%' AND SID = '1234';
我要的是一個最終的陣列$newqueries
,看起來像這樣:
Array (
[0] => SELECT * FROM StudentRecord WHERE Year = '2016' AND Session = '1' AND StudentID = '1234';
[1] => SELECT * FROM Student_ApplicationRecord WHERE ApplicationYear = '2016' AND Session1 = 1;
)
任何人都可以幫我嗎?我很抱歉,如果之前已經問過這個問題,但我還沒有找到任何類似的問題。
爲什麼不使用帶有參數綁定的預處理語句呢? – Shadow