2017-06-02 8 views
0

Für einen Discord-Bot habe ich einen Befehl, der das Präfix der Gilde ändert, es funktioniert einwandfrei, da es in meiner Datenbank (MySQL Workbench) aktualisiert wird, aber die Befehle immer noch für ANY ausgelöst werden Wenn Sie ein beliebiges Zeichen vor den Befehl halten, wird es anstelle des in der Datenbank angegebenen Zeichens ausgelöst.SQL Wähle einen Wert aus der Datenbank

Dies ist mein Code, um das Präfix zu überprüfen:

let prefix = "!"; 

connection.query(`SELECT * FROM guilds WHERE guildid = ${message.guild.id}`, (error, commands) => { 
    if (error) throw error; 

    if (commands.length) { //guild exists in database 
    commands.forEach(value => 
     prefix = value.prefix; 
     console.log(value.prefix); // returns correct prefix from database 
    }); 
    } else { 
    prefix = "!"; 
    } 
}); 
+0

nicht das OP bekommen. Veröffentlichen Sie einige visuelle Elemente. – maSTAShuFu

+0

Mögliches Duplikat von [Knoten MySQL: Rückgabe eines Wertes aus einer Spalte] (https://stackoverflow.com/questions/44329942/node-mysql-return-a-value-from-a-column) –

Antwort

0

Es ist ein wenig schwierig versuchen, Ihren Code mit den Pfeil kurzen Hände zu lesen. Ich bin mir ziemlich sicher, dass hier dein Fehler kommt.

prefix = value.prefix; console.log(value.prefix); 

Meinen Sie, den ursprünglichen value.prefix zu protokollieren, bevor Sie ihn neu zuweisen?

Versuchen Sie diesen Code.

commands.forEach(function(value){ console.log(value.prefix); prefix = value.prefix; })

Javascript Docs on .forEach()

Verwandte Themen