MySQL Fehler # 2014 - Befehle nicht synchron; Sie können diesen Befehl jetzt nicht ausführen

8

Ich verwende MySQL und definiere eine gespeicherte Prozedur wie folgt:

%Vor%

Wenn ich versuche, diese Prozedur auszuführen, erhalte ich folgende Fehlermeldung:

%Vor%

Was bedeutet das und was mache ich falsch?

    
kid Nguyen 17.01.2012, 07:44
quelle

8 Antworten

9

Von Handbuch

  

C.5.2.14. Befehle, die nicht synchron sind
  Wenn Sie Commands out of sync; you can't run this command now in Ihrem Client-Code erhalten, rufen Sie den Client an   funktioniert in der falschen Reihenfolge.

     

Dies kann zum Beispiel passieren, wenn Sie mysql_use_result() und verwenden   Versuchen Sie, eine neue Abfrage auszuführen, bevor Sie mysql_free_result() aufgerufen haben.   Es kann auch vorkommen, wenn Sie versuchen, zwei Abfragen auszuführen, die Daten zurückgeben   ohne mysql_use_result() oder mysql_store_result() dazwischen aufzurufen.

Dieser Beitrag (aus hier )

  

Ich habe dieses Problem gelöst. Ich benutze MySQL-Fron statt MySQL Query   Browser. Und alles funktioniert gut.

lässt mich glauben, dass es sich nicht um ein Server- oder Datenbankproblem handelt, sondern um ein Problem in dem von Ihnen verwendeten Tool.

    
Marco 17.01.2012 07:50
quelle
4

Ich konnte diesen Fehler mit MySQL und phpmyadmin reproduzieren:

%Vor%

Auf dieser Version von MySQL:

%Vor%

Mit dem folgenden SQL durch das phpmyadmin Abfragefenster laufen:

%Vor%

Ich konnte den Fehler nicht über das mysql-Terminal erhalten, also denke ich, dass es ein Fehler mit phpmyadmin ist.

Es funktioniert gut auf dem Terminal:

%Vor%

Ich denke, der Bug hat etwas damit zu tun, die Midiabfrage der Trennzeichen in phpmyadmin zu ändern.

Workaround: Verlangsamen Sie ihren Cowboy und führen Sie Ihre SQL-Anweisungen nacheinander aus, wenn Sie phpmyadmin verwenden. phpmyadmin ist "single task bob", er kann nur einen Job machen.

    
Eric Leschinski 06.12.2013 23:11
quelle
1

Wenn Sie die gespeicherte Prozedur erstellt haben, haben Sie sie in der Datenbank mydatabase gespeichert, um die Prozedur aufzurufen. Geh zu deiner lokalen DB und:

%Vor%

Dabei ist sp_test() der Name Ihrer Prozedur.

    
chemicaluser 16.09.2012 01:02
quelle
0

Sie haben vergessen, das Schlüsselwort 'Begin' zu verwenden, und während der Kompilierung ist MySQL verwirrt, das sollte funktionieren:

%Vor%     
redmoon7777 17.01.2012 07:52
quelle
0

Ich habe dieses Problem auch mit einer C-API gefunden.

Ich fand die Lösung mit dem letzten Beispiel, das von Begrenzern spricht.

%Vor%

Mein Code führt eine gespeicherte Prozedur aus und testet dann die Rückgabe. Ich benutze korrekt die mysql_free_result ().

Da ich in der Prozedur keine Auswahlklausel "in" hinzugefügt habe, ist dieser Fehler aufgetreten.

Das letzte Beispiel oben ist in demselben Fall.

Ich habe die Auswahl gelöscht und da es in Ordnung ist.

Alex

    
ALM 01.04.2015 15:30
quelle
0

Ich habe gerade den gleichen Fehler von phpMYadmin bekommen, als ich eine Benutzerfunktion aufgerufen habe, an der ich arbeite.

mysql Konsole sagt jedoch:

%Vor%

... was absolut korrekt ist, wurde in der Feldliste falsch geschrieben, daher bezog sich eine Anweisung auf eine undefinierte Variable.

Ich würde schließen müssen, dass

%Vor%

von phpMYadmin ist ein ziemlich unspezifischer Fehler, der in vielen Fällen, wenn nicht in den meisten Fällen, nur das eigentliche Problem verdeckt, und man sollte nicht zu viel Zeit darauf verwenden, einen Sinn daraus zu machen.

    
tlum 09.06.2015 15:03
quelle
0

Sie haben offensichtlich dieses Problem, weil beide Anweisungen gleichzeitig ausgeführt werden. Die einzige Problemumgehung, die ich gefunden habe, ist, die Verbindung nach dem SP zu schließen und die andere Anweisung auf einer neuen auszuführen. Lesen Sie darüber hier .

    
Ayaskant Mishra 21.11.2016 14:37
quelle
0

Das passierte mir, weil eine Funktion innerhalb einer Prozedur einen Wert zurück gab, der keiner Variablen zugewiesen wurde.

Die Lösung war:

%Vor%     
ethis 31.08.2017 20:37
quelle

Tags und Links