https://stackoverflow.com/a/24990944/80353 पर दिए गए उत्तर का उपयोग करना , मैं प्रश्न में दिए गए कोड नमूने का उपयोग करके इसे फिर से लिखना चाहता हूं।
निम्नलिखित रिकॉर्डों को ऊपर उठाने के लिए
Felicia, 27
Timmy, 71
इस तालिका में
+----+----------+-----+
| id | username | age |
+----+----------+-----+
| 1 | admin | 33 |
| 2 | Timmy | 17 |
| 3 | Sally | 23 |
+----+----------+-----+
इसे
. के रूप में लिखने का सबसे अच्छा तरीका है$newUsers = [
[
'username' => 'Felicia',
'age' => 27,
],
[
'username' => 'Timmy',
'age' => 71,
],
];
$columns = array_keys($newUsers[0]);
$upsertQuery = $this->Users->query();
$upsertQuery->insert($columns);
// need to run clause('values') AFTER insert()
$upsertQuery->clause('values')->values($newUsers);
$upsertQuery->epilog('ON DUPLICATE KEY UPDATE `username`=VALUES(`username`), `age`=VALUES(`age`)')
->execute();
इसे
जांचें epilog
. के बारे में विवरण के लिए बाहर
यह जांचें लिखने के तरीके के बारे में विवरण के लिए एकल क्वेरी में एकाधिक रिकॉर्ड सम्मिलित करें