2016-07-18 25 views
0

我想通過循環生成「insert into」SQL。通過循環將INSERT追加到SQL中

$orderrecord='INSERT into counter SET'; 

for ($rank=0; $rank<10; $rank++) 
    { if (array_search($names[$rank],_$POST['v'])!==FALSE) 
    { $orderrecord.=" $names[$rank]=1, "; } ;} 

問題是,總會有一個額外的逗號使SQL語法無效。 「插入計數器SET A = 1,B = 1,C = 1」或「插入計數器SET,A = 1,B = 1,C = 1」。如何解決這個問題?

+0

如果$ rank = 0,那麼不要在之前放一個逗號。這是一種方式。 –

+0

$ rank [0]不能附加。只有當它存在於數組中時纔會附加它。所以附加的第一個可能是[1]或[2]等,或者根本沒有。 – user6571534

+0

'implode(',',array_filter($ names,function($ i)use(_ $ POST ['v']){return array_search($ i,_ $ POST ['v'])!== FALSE; }));' – splash58

回答

0
$orderrecord = 'INSERT into counter SET'; 

for ($rank=0; $rank<10; $rank++) { 
    if (array_search($names[$rank], $POST['v']) !== FALSE) { 
     $orderrecord.=" $names[$rank]=1, "; 
    } 
} 

$orderrecord = substr($orderrecord, 0, strlen($orderrecord) - 2);