Über Laravel, das das MySQL-only_full_group_by-Problem löst
Stellen Sie die Methode zur Lösung des MYSQL-Problems only_Full_group_BY vor. Ich hoffe, es wird Freunden, die es brauchen, hilfreich sein! Nach MySQL 5.7 ist only_full_group_by standardmäßig aktiviert, was zu einer strengeren SQL-Erkennung führt, die zur Meldung des folgenden Fehlers führt:
SQLSTATE[42000]: Syntax error or access violation: 1055 Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'edu.t_sounds.id' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by
Es waren viele Umwege erforderlich, um dieses Problem einzeln zu lösen gemäß der online gefundenen MethodeLösung
Überprüfen Sie sql_modeselect @@GLOBAL.sql_mode;SELECT @@SESSION.sql_mode
Überprüfen und ändern Sie zunächst die MySQL-Konfigurationsdatei my.cnf. Es ist peinlich, dass es kein ONLY_FULL_GROUP_BY
[mysqld]sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
, also lasst uns Fahren Sie fort und denken Sie an MySQL l Ja, um zwischen Serverkonfiguration und Clientkonfiguration zu unterscheiden, fügen Sie [Client] Konfiguration hinzu der gleiche Fehler
Nachdem ich erneut gesucht habe, wurde mir plötzlich das Problem der globalen Sitzung klar, d Variablen, eine ist eine globale Konfiguration, also global, die auf die ganze Welt wirkt; Eine Sitzungskonfigurationssitzung, die nur auf die aktuelle Verbindung wirkt
Könnte es sein, dass Laravel sql_mode auf die aktuelle Verbindung gesetzt hat Wenn das Laravel-Programm sql_mode
[client]sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
ausgibt, stellt sich heraus, dass das Programm eingerichtet ist.
Das erste, was mir einfällt, ist, dass die Konfiguration von MySQL immer einen strikten Modus hat Setzen Sie es auf „falsch“. Das Problem wurde reibungslos gelöst. Das kann das Problem lösen, aber im Sinne der Technologie müssen wir herausfinden, was los ist. Ich möchte es nicht direkt auf „falsch“ setzen Suchen Sie im Ordner „vendor/laravel/framework/src/ILLuminate/Database“ nach „strict“ und finden Sie direkt den Kerncode Das erste Urteil besteht darin, direkt festzustellen, ob eine Moduskonfiguration vorliegt. Wenn ja, führen Sie einfach einen
rrree-Test durch und lösen Sie das Problem direkt. Im Sinne der Root-Suche Lesen Sie dann weiter
Wenn strict = true
, wird der fest codierte sql_mode im Programm direkt festgelegt Das Problem ist hier vollständig gelöstDie endgültige Lösung
$result = \DB::select('SELECT @@GLOBAL.sql_mode'); print_r($result);exit; 结果: STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION $result = \DB::select('SELECT @@SESSION.sql_mode'); print_r($result);exit; 结果: ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
- behält strict = true, fügt die Modi-Option hinzu, die Parameter darin sind die zugrunde liegende Konfiguration von Laravel, entfernt aber nur ONLY_FULL_GROUP_BY
Zusammenfassung: Nach vielen Umwegen und Mit viel Zeitaufwand wurde das Problem endlich gelöst und es war nicht nötig, irgendeine Konfiguration von MySQL zu ändern
Das obige ist der detaillierte Inhalt vonÜber Laravel, das das MySQL-only_full_group_by-Problem löst. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen





Methode zum Abholen des Rücksendecode, wenn das Senden von Laravel -E -Mails fehlschlägt. Wenn Sie Laravel zur Entwicklung von Anwendungen verwenden, stellen Sie häufig Situationen auf, in denen Sie Überprüfungscodes senden müssen. Und in Wirklichkeit ...

Laravel -Zeitplan -Aufgabe Ausführen nicht reagierende Fehlerbehebung Bei Verwendung der Zeitplanung von Laravel -Zeitplänen werden viele Entwickler auf dieses Problem stoßen: Zeitplan: Run ...

Die Methode zum Umgang mit Laravels E -Mail -Versagen zum Senden von Verifizierungscode besteht darin, Laravel zu verwenden ...

So implementieren Sie die Tabellenfunktion von benutzerdefiniertem Klicken, um Daten in dcatadmin (laravel-admin) hinzuzufügen, wenn Sie DCAT verwenden ...

Laravel – Dump-Server – Der Laravel-Dump-Server wird mit der Version von Laravel 5.7 geliefert. Die Vorgängerversionen enthalten keinen Dump-Server. Der Dump-Server wird eine Entwicklungsabhängigkeit in der Laravel-/Laravel-Composer-Datei sein.

Die Auswirkungen des Austauschs von Redis -Verbindungen im Laravel -Framework und der Auswahl von Methoden bei Verwendung von Laravel -Framework und Redis können Entwickler auf ein Problem stoßen: Durch Konfiguration ...

Benutzerdefinierte Mieterdatenbankverbindung in Laravel Multi-Tenant-Erweiterungspaket Stanz/Mietverhältnis beim Erstellen von Multi-Mandanten-Anwendungen mit Laravel Multi-Tenant-Erweiterungspaket Stanz/Mietverhältnis, ...

Laravel – Aktions-URL – Laravel 5.7 führt eine neue Funktion namens „Aufrufbare Aktions-URL“ ein. Diese Funktion ähnelt der in Laravel 5.6, die String-in-Action-Methoden akzeptiert. Der Hauptzweck der neuen Syntax, die Laravel 5.7 eingeführt hat, besteht darin, direktl
