php - इसमें जोड़-घटाव उम्मीद के मुताबिक काम नहीं करता है




string concatenation (2)

ऑपरेटर की पूर्वता के कारण ऐसा हो रहा है। के साथ प्रयास करें -

$sql .= '(' 
           . ((int)$data['event_id']) . ', ' 
           . ($key + 1) . ', ' 
           . ((int)$val['file_id']) . ', "' 
           . addslashes($val['url']) . 
         '"), '; 

यहाँ मेरा PHP कोड SQL क्वेरी के साथ है, लेकिन आउटपुट अपेक्षित नहीं है:

$sql = 'INSERT INTO `event_footers` (`event_id`, `order`, `file_id`, `url`) VALUES ';
foreach($all_footers as $key => $val){
    $sql .= '('.(int)$data['event_id'].', '.$key + 1 .', '.(int)$val['file_id'].', "'.addslashes($val['url']).'"), ';
}

$sql = rtrim($sql, ', ');
var_dump($sql);
exit;

और मुझे इस तरह sql क्वेरी मिलेगी:

`INSERT INTO `event_footers` (`event_id`, `order`, `file_id`, `url`) VALUES 1, 2135, "http://11.lt"), 1, 2136, "http://22.lt"), 1, 2140, "http://44.lt")`

पहला कहां है ( VALUES के बाद)


+ और . एक ही ऑपरेटर की मिसाल है , लेकिन छोड़ दिया है सहयोगी। पहली संगति के बाद का मतलब:

'(' . (int)$data['event_id']

स्ट्रिंग आपकी कुंजी के साथ जुड़ गई, जैसे

"($data['event_id']" + $key

तो स्ट्रिंग उस संख्यात्मक संदर्भ में पूर्णांक में परिवर्तित हो जाती है और गायब हो जाती है । इस उपयोग को हल करने के लिए अपने जोड़ के आसपास कोष्ठक () उपयोग करें।





addition