Heim Backend-Entwicklung PHP-Tutorial Lösung zum Einfügen derselben Daten in Thinkphp3.2

Lösung zum Einfügen derselben Daten in Thinkphp3.2

May 22, 2018 pm 03:55 PM
php thinkphp3.2 解决

Der folgende Editor bringt Ihnen einen Artikel, der das Problem des Einfügens derselben Daten in Thinkphp3.2 perfekt löst. Der Herausgeber findet es ziemlich gut, deshalb teile ich es jetzt mit Ihnen und gebe es als Referenz. Folgen wir dem Editor und werfen wir einen Blick darauf.

Problembeschreibung

Beim Einfügen von Daten mit TP3.2 heute, um das Einfügen zu vermeiden gleiche Daten (die sogenannten gleichen Daten haben den gleichen Primärschlüssel oder das gleiche eindeutige Indexfeld), der von mir erstellte Index ist wie unten gezeigt, der Primärschlüsselindex ist ein Feld mit automatischer Inkrementierung, und eine Duplizierung ist nicht möglich , kann der eindeutige Index dupliziert werden, wenn die drei Felder UID, Jahr, Monat und Tag gleich sind, wird der aktuelle Datensatz aktualisiert.

Problemlösung

Als wir zuvor mit einem solchen Problem konfrontiert waren, wissen Sie, MySQL bietet ON DUPLICATE KEY UPDATE oder REPLACE INTO, um dieses Problem zu lösen.

Verwenden Sie ON DUPLICATE KEY UPDATE

Vor dem Einfügen von Daten gibt es nur einen Datensatz in der Tabelle, wie unten gezeigt

Die SQL-Anweisung lautet wie folgt: Wenn beim Einfügen eines Datensatzes dieser mit dem vorhandenen Datensatz in der Tabelle übereinstimmt, wird der neue Datensatz aktualisiert, andernfalls wird der Datensatz eingefügt.

INSERT INTO `work_log` (
`uid`,
`year`,
`mounth`,
`day`,
`status`
) 
VALUES
(1, 2016, 6, 3, 1) 
ON DUPLICATE KEY 
UPDATE 
`status` = 
VALUES
(`status`),
`updated_ts` = NOW();
Nach dem Login kopieren

Verwenden Sie REPLACE INTO

Der Code lautet wie folgt:

Führen Sie zunächst den folgenden Code aus um ein Datenelement einzufügen

REPLACE INTO `work_log` (
`uid`,
`year`,
`mounth`,
`day`,
`status`
) 
VALUES
(1, 2016, 6, 2, 1)
Nach dem Login kopieren

Der Effekt ist wie folgt

Führen Sie den folgenden Code erneut aus, der oben eingefügte Code wird aktualisiert

REPLACE INTO `work_log` (
`uid`,
`year`,
`mounth`,
`day`,
`status`
) 
VALUES
(1, 2016, 6, 2, 5)
Nach dem Login kopieren

Der Effekt ist wie folgt

Der Unterschied zwischen ON DUPLICATE KEY UPDATE und REPLACE INTO

Wenn derselbe Wert erscheint, ON DUPLICATE KEY UPDATE aktualisiert den vorhandenen Datensatz und REPLACE INTO löscht den vorherigen Datensatz und fügt den neuen Datensatz ein.

Lösung in Thinkphp3.2

In Thinkphp3.2 wird das Einfügen auf die gleiche Weise über den dritten Parameter der Funktion add() gehandhabt Datenprobleme.

Die add()-Methode in Model.class.PHP ruft die insert-Methode in Db.class.php auf. In der insert-Methode können wir den folgenden Code sehen:

Wobei $replace zufällig der dritte Parameter in der Add-Methode ist.

Das obige ist der detaillierte Inhalt vonLösung zum Einfügen derselben Daten in Thinkphp3.2. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße Artikel -Tags

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

PHP 8.4 Installations- und Upgrade-Anleitung für Ubuntu und Debian PHP 8.4 Installations- und Upgrade-Anleitung für Ubuntu und Debian Dec 24, 2024 pm 04:42 PM

PHP 8.4 Installations- und Upgrade-Anleitung für Ubuntu und Debian

CakePHP Datum und Uhrzeit CakePHP Datum und Uhrzeit Sep 10, 2024 pm 05:27 PM

CakePHP Datum und Uhrzeit

CakePHP-Datei hochladen CakePHP-Datei hochladen Sep 10, 2024 pm 05:27 PM

CakePHP-Datei hochladen

CakePHP-Projektkonfiguration CakePHP-Projektkonfiguration Sep 10, 2024 pm 05:25 PM

CakePHP-Projektkonfiguration

CakePHP-Routing CakePHP-Routing Sep 10, 2024 pm 05:25 PM

CakePHP-Routing

Besprechen Sie CakePHP Besprechen Sie CakePHP Sep 10, 2024 pm 05:28 PM

Besprechen Sie CakePHP

CakePHP-Kurzanleitung CakePHP-Kurzanleitung Sep 10, 2024 pm 05:27 PM

CakePHP-Kurzanleitung

So richten Sie Visual Studio-Code (VS-Code) für die PHP-Entwicklung ein So richten Sie Visual Studio-Code (VS-Code) für die PHP-Entwicklung ein Dec 20, 2024 am 11:31 AM

So richten Sie Visual Studio-Code (VS-Code) für die PHP-Entwicklung ein

See all articles