Ich habe eine benutzerdefinierte ORDER BY
Klausel für eine Abfrage, dass der Veranstaltungskalender mit dem Filter posts_where
eingerichtet. Es sieht so aus:MySQL-Abfrage erzeugt unterschiedliche Ergebnisse auf verschiedenen Servern
Die Dinge schienen gut, aber der Kunde fügte ein paar Ereignisse, die es geschafft haben, dies durcheinander bringen. Nachdem der Client diese Ereignisse hinzugefügt hat, habe ich eine Kopie der Datenbank gezogen, so dass meine lokale Datenbank mit der Bereitstellung auf exakt übereinstimmt.
Auf meiner lokalen Umgebung, hier ist das Ergebnis:
So Ereignisse, die heute, und dann alle anderen anstehenden Ereignissen in der Reihenfolge des Datums (beginnend mit einem Ereignis, das im August begann, begann dieser Fall). Am Ende dieser Liste befindet sich ein mehrtägiges Ereignis, das gestern begonnen hat und bis November dauert, und es ist das letzte Ereignis auf der Website. Du wirst es im nächsten Screenshot sehen.
Hier ist, was die Staging-Umgebung zeigt:
Der Artikel aus dem unteren Teil der Liste ist nun an der Spitze (unerwünschten).
Warum erhalte ich unterschiedliche Ergebnisse zwischen den beiden Maschinen auf dem gleichen Code-Set und der gleichen Datenbank?
Lokale PHP: 7.1.0 Local MySQL: 5.7.16
Staging PHP: 7.0.2 Staging MySQL: 5.7.18
Wenn ich date_default_timezone_get()
auf sie werfen, sie zeigen beide Ebene 'ol UTC.
Irgendeine Idee, warum ich unterschiedliche Ergebnisse zwischen den beiden bekomme?
EDIT: Das Server-Management-Team des Clients hat mir gesagt, dass der Staging-Server selbst in Ost-Zeit sein kann, trotz PHP ausspucken UTC. Wenn die PHP-Variablen, die in die Abfrage eingehen, und der Inhalt der Datenbank zwischen den beiden Umgebungen identisch sind, wäre das von Bedeutung?
Möchten Sie nicht einfach eine (konsistent) funktionierende Abfrage haben? – Strawberry
Ich habe nicht viel Erfahrung mit MySQL usw. aber es scheint, dass Ihre Testveranstaltung eine gewisse Zeit damit hat, aber die anderen nicht? Auch nicht sicher, warum Sie Ereignisse nicht einfach nach Anfangsdatum bestellen können? – mechalynx
Sicher funktioniert das gut und Ihr Staging-Bereich hat nur ein Test-Event namens "Mehrtage-Test-Event" hinzugefügt, und Ihre Live-Version nicht. –