Um zu erfahren, wie Sie das Problem „Der als Definierer angegebene Benutzer (‘xyz’@’localhost’) existiert nicht“ in MySQL beheben. Es kann ein beliebiger Wert anstelle von ‘xyz’ sein.
Dieser Fehler ist aufgetreten, weil Sie verschiedene Benutzer in Definer definiert haben und andere Konten in MySQL verwenden.
Beim Erstellen von Triggern sollten Sie also „root@localhost“ im Definer verwenden. Führen Sie die folgenden Schritte aus, um diesen Fehler zu beheben:
Schritt 1: Öffne phpMyAdmin
Schritt 2: Wählen Sie Ihre Datenbank und Tabelle aus
Schritt 3: Klicken Sie auf “Auslöser” Tab oben auf der Seite
Schritt 4: Klicken Sie auf “Bearbeiten“, um Auslöser zu bearbeiten.
Schritt 5: Ändern Sie den Definer von xyz@localhost in root@localhost
Erfahren Sie, wie Sie geänderte Dateien auswählen, die mit GitAhead auf dem Server bereitgestellt werden sollen. Im Allgemeinen werden durch Klicken auf die Schaltfläche "Alle auswählen" alle ausgewählten geänderten Dateien und die Schaltfläche "Alle auswählen" automatisch deaktiviert. Bei einigen Dateien wird jedoch keine Auswahl getroffen, und wenn Sie versuchen, die Auswahl manuell vorzunehmen, können Sie dies nicht tun. Außerdem werden diese Dateien als "teilweise inszeniert" angezeigt. Sie können im folgenden Screenshot sehen:
Um dieses Problem zu beheben, müssen Sie die folgenden Schritte ausführen:
Schritt 1: Klicken Sie mit der rechten Maustaste auf die gesamte Datei und klicken Sie auf "Nicht festgelegte ausführbare Datei" (siehe Abbildung unten):
Schritt 2: Klicken Sie nun auf die Schaltfläche "Alles inszenieren" und es werden alle Dateien inszeniert. Jetzt können Sie erfolgreich einen Commit auf dem Server durchführen.
Bei der Suche nach der falschen Adresse im HubBox-Popup wird keine Fehlermeldung angezeigt. Wenn an der Konsole geprüft, erhalten Sie eine Fehlermeldung wie "_messageErrorTemplate ist keine Funktion“.
Lösung
Der Fehler: "_messageErrorTemplate ist keine Funktion"kommt, weil diese Funktion in der HubBox – Bibliothek nicht als Funktion deklariert ist.
Um dieses Problem zu beheben, müssen Sie einige Änderungen in der HubBox-Bibliothek vornehmen:
Sie müssen die folgenden zwei Dateien ändern:
1. \ HubBox \ Java \ src \ main \ resources \ static \ index.html 2. \ HubBox \ Java \ out \ production \ resources \ static \ index.html Suchen Sie in diesen Dateien den folgenden Code:
var _messageErrorTemplate = Moustache.render (_messageError || ""); var _messageWarning = $ (selectors.messages.warning) .html (); var _messageWarningTemplate = Moustache.render (_messageWarning || "");
und ersetze dies mit dem folgenden Code:
var _messageErrorTemplate = function () {return Moustache.render (_messageError || ""); }; var _messageWarning = $ (selectors.messages.warning) .html (); var _messageWarningTemplate = function () {return Moustache.render (_messageWarning || ""); };
Durch die Angabe '_messageErrorTemplate'Und'_messageWarningTemplateAls Funktion erhalten Sie nun eine Fehlermeldung bei der Suche nach einer falschen Adresse im HubBox-Popup.
Ziel: Erfahren Sie, wie Sie das Cookie mit JavaScript erstellen und lesen. Cookie ist ein kleines Datenelement, das von der Website auf dem Benutzergerät gespeichert wird. Es ist hilfreich, Daten zu speichern, um den Benutzer zu identifizieren oder den Benutzer zu verfolgen. Wenn der Benutzer die Website erneut besucht, können gespeicherte Daten leicht gelesen werden.
Schritt 1: Setzen des Cookies auf dem Benutzergerät
Mit der Funktion createCookie () können Sie das Cookie einfach erstellen, indem Sie den Namen, den Wert (die Daten, die Sie speichern möchten) und das Ablaufdatum übergeben.
Sie können das Cookie mithilfe der folgenden Funktion einfach lesen, indem Sie den Namen des Cookies eingeben.
Funktion readCookie (name) {var nameEQ = name + '='; // Lesen des Cookies var ca = document.cookie.split (';'); // Verarbeitung, um den Inhalt für (var i = 0; i <ca. Länge; i ++) zu erhalten {var c = ca [i]; while (c.charAt (0) == '') {c = cSubstring (1, c.Länge); } if (c.indexOf (nameEQ) == 0) {// Rückgabe des tatsächlichen Inhalts return c.substring (nameEQ.length, c.length); }} return null; }
Beispiel: Beispiel zum Speichern des Benutzernamens im Cookie.
if (cookies == 'yes') {jQuery ('document'). ready (function () {// reding cookie var cook = readCookie ('YourWebsite'); if (cook! = 'true') {// aufrufen um das Cookie zu erstellen, wenn es nicht gefunden wird createCookie ('YourWebsite', 'user_name = akash', 30);}}); }
Sie können das gespeicherte Cookie in der Konsole des Browsers sehen:
Abhängigkeit: Sie müssen die jquery min js-Datei einschließen, um das Beispiel auszuführen. Hierfür können Sie die folgende Codezeile verwenden.
Ziel: Erfahren Sie, wie Sie denselben Namen der Klasse in PHP mit Namespace verwenden können. Im Allgemeinen können nicht zwei oder mehr Klassen mit demselben Namen verwendet werden. Es wird ein Fehler ausgegeben: "Klasse kann nicht erneut deklariert werden" Wie nachfolgend dargestellt-
Um dies zu handhaben, können wir den Namespace verwenden, wie im folgenden Beispiel gezeigt: 1. Definieren Sie den Namespace Demo1 mit der Klasse Student in der Datei Demo1 / Student.php
<? php Namespace Demo1; class Student {// Der gesamte Code für diese Klasse ist hier var $ a = 10; }?>
2. Definieren des Namensraums Demo2 with Student class (gleichnamige Klasse) in der Demo2 / Student.php
<? php Namespace Demo2; class Student {// Der gesamte Code für diese Klasse ist hier var $ a = 20; }?>
3. Jetzt können wir in der Beispieldatei index.php die beiden Klassen fehlerfrei verwenden:
<? php // einschließlich beider Studentenklassen erfordern "Demo1 / Student.php"; Benötige "Demo2 / Student.php"; // Eine Instanz von Demo1 \ Student () erstellen $ Student1 = new Demo1 \ Student (); // Verwendung der First-Class-Funktionalität echo $ Student1-> a. '<br>'; // eine weitere Instanz von Demo2 \ Student () erstellen $ Student2 = new Demo2 \ Student (); // Verwenden der Funktionalität der zweiten Klasse echo $ Student2-> a;
Ausgabebildschirm:
10 20
Beide Klassen haben unterschiedliche Funktionen und wir können beide Klassen problemlos in einer einzigen Datei verwenden.
Hinweis: Wir können den Code mit der Funktion use () von PHP einfacher machen:
benutze Demo1 \ Student als Student1; $ Student1 = new Student1 (); echo $ Student1-> a. '<br>'; benutze Demo2 \ Student als Student2; $ Student2 = new Student2 (); echo $ Student2-> a;
Ziel: Erfahren Sie, wie Sie jede Instanz einer Klasse verwenden können, ohne die Klassendatei einzuschließen. Wenn wir die Instanz einer Klasse verwenden möchten, müssen wir zuerst die Klassendatei durch eine der 4-Funktionen einschließen:
einschließen
include_once
erfordern
einmalig benötigt
Wie unten,
// inklusive alle Klassen erfordern "classes / Testing1.php"; erfordern "classes / Testing2.php"; // benutze jetzt die Funktionalität der Klasse $ testing1 = new Testing1; echo $ testing1-> a; $ testing2 = new Testing2; echo $ testing2-> a;
Wenn es jedoch viele Klassen gibt, die wir verwenden möchten, müssen wir alle Dateien einschließen, um die Instanz der Klasse erstellen zu können. Angenommen, es gibt Hunderte von Klassen, dann müssen wir alle einbeziehen und es wird viel Zeit und Raum in Anspruch nehmen. Um dies zu überwinden, können wir den folgenden Code verwenden:
Funktion auto_loader ($ class) {$ file = "classes / {$ class} .php"; // Pfad aller Klassen // Hiermit wird geprüft, ob die Datei existiert if (is_file ($ file)) {// Wenn die Datei existiert, enthält sie die Datei include $ file; }} // Um auto_loader () zu registrieren, um diese Funktion nacheinander aufzurufen, wenn eine neue Klasse als spl_autoload_register ("auto_loader") deklariert wird; // benutze jetzt die Funktionalität der Klasse $ testing1 = new Testing1; echo $ testing1-> a; $ testing2 = new Testing2; echo $ testing2-> a;
Unter Verwendung des obigen Codes wird die erforderliche Klasse automatisch eingeschlossen, während die Klasse verwendet wird. Andere Klassen, die nicht erforderlich sind, werden nicht berücksichtigt. Dateistruktur:
Problemstellung: In der Antwort der Authentifizierungs-API der HubBox ist ein Fehler aufgetreten. "HubBox-API-Fehler: Ungültiger Antwortcode”
Lösung:? If you are facing issue as shown below while you are checking Authentication API, it may be because of Authentication API is verifying SSL certificate for connection.
Zu diesem Zweck können Sie die SSL-Überprüfung in der CURL-Anforderung deaktivieren, indem Sie die folgenden Zeilen hinzufügen.
Nehmen Sie in der Funktion refreshToken () unter HubBox / PHP / HubBox / Authentication.php die folgenden Änderungen an der Curl-Anforderung der Authentifizierungs-API vor:
Wenn dies das Problem war, müssen Sie diese Zeilen in allen APIs von HubBox-APIs zum Erstellen von Paketen, Abbrechen von Paketen, Hinzufügen von Verfolgungs- und Sammelpunkten wie unten beschrieben hinzufügen.
Paket-API erstellen: Nehmen Sie in der Funktion sendOrder () unter HubBox / PHP / HubBox / Parcel.php die folgenden Änderungen an der Curl-Anforderung der Create Parcel API vor:
Paket-API abbrechen: Nehmen Sie in der Funktion cancelOrder () unter HubBox / PHP / HubBox / Parcel.php die folgenden Änderungen an der Curl-Anforderung der Cancel Parcel-API vor:
Tracking-API hinzufügen: Nehmen Sie in der Funktion addTracking () unter HubBox / PHP / HubBox / Parcel.php die folgenden Änderungen an der Curl-Anforderung der Add Tracking-API vor:
Collectpoint API: Nehmen Sie in der Funktion getCollectPoint () unter HubBox / PHP / HubBox / CollectPoints.php die folgenden Änderungen an der Curl-Anforderung der Collectpoint-API vor:
Problemstellung:? Wrong product data coming in the response of Create Parcel API of HubBox Sandbox account.
Lösung: Wenn dieses Problem im HubBox-Sandbox-Konto auftritt (siehe unten), können Sie es im Sandbox-Konto ignorieren, da es im Produktionskonto von HubBox problemlos funktioniert. Gesendete Produktdaten in der Anfrage der Create Parcel API:
Die Sendung wird im gesendeten Zeitstempel nicht registriert und es wird auch kein Fehler in der Antwort gemeldet.
Lösung:
Wir haben ein Ticket für dasselbe ausgestellt und sie haben geantwortet, dass dieses Problem aufgetreten ist, weil der E-Mail-Parameter des Empfängers nicht in der Versand-API gesendet wurde https://api.myparcel.com/shipments
Laut der Spring Omni-Dokumentation ist diese E-Mail ein optionaler Parameter:
Also haben wir diesbezüglich erneut ein Ticket für Spring Omni gesammelt und sie haben geantwortet: Die Sendung kann nicht erstellt werden, da die E-Mail-Adresse des Empfängers nicht ausgefüllt ist. Das Schema zeigt dies zwar als optional an, Spring benötigt jedoch die E-Mail-Adresse, damit die Netzbetreiber Benachrichtigungen an den Empfänger senden können (sofern sie diesen Service anbieten)
Die Empfänger-E-Mail ist in Spring Omni ein erforderlicher Parameter und muss in der Versand-API gesendet werden. Weitere verwandte Blogs finden Sie hier: