IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

NodeJS Discussion :

Connexion Discord.js BDD MSSQL SERVER


Sujet :

NodeJS

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Février 2020
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Février 2020
    Messages : 56
    Points : 27
    Points
    27
    Par défaut Connexion Discord.js BDD MSSQL SERVER
    Bonjour je suis en train de dev un bot discord.

    Je me connect à ma DBB SQL SERVER de cette façon :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
     
    client.on('message', message => {
     
    	if (message.content.startsWith(prefix + 'coin'))
    	{
    		const args = message.content.slice(prefix.length).split(' ');
    		//var str = message.content.substring(10)
     
    		message.channel.send(args[1]);
     
    		const query="SELECT * Users WHERE (NickName = '"+args[1]+"')";
    		config = {
    		    database: "MABDD",
    		  // can keep these option required with latest version of mssql npm package
    		    options: {
    		    	trustServerCertificate: true,
    		    	enableArithAbort: true,
    		      encrypt: true,
    		      rowCollectionOnRequestCompletion: false,
    		    },
    		    parseJSON: true,
    		    password: "mdpPersi",
    		    port: 1433, // if youe database running on difrent port then 1433
    		    server: "161.97.161.365",
    		    user: "sa",
    		  };
     
     
    		sql.on('error', err => {
    		    // ... error handler
    		})
     
    		sql.connect(config).then(pool => {
    		    return pool.request()
    		        .query(query)
    		}).then(result => {
    			console.log(result.recordset)
    		}).catch(err => {
    		    console.log(err)
    		});
    		}
     
     
     
    		})
    Comment je peux récupérer par exemple le pseudo du compte (table Users et colonne "Pseudo")

    Car dans mon exemple je récupère un tableau et je sais pas m'en servir.

    Merci

  2. #2
    Nouveau membre du Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Février 2020
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Février 2020
    Messages : 56
    Points : 27
    Points
    27
    Par défaut
    Comment recuperer dans la table **Users** le pseudo.

    car avec ce code je recupere tous les resultat
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    console.log(result.recordset)
    Comment recuperer le pseudo svp.

  3. #3
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    16 959
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 959
    Points : 44 122
    Points
    44 122
    Par défaut
    Bonjour,
    Car dans mon exemple je récupère un tableau et je sais pas m'en servir.
    Il existe des méthodes pour parcourir les données d'un tableau comme forEach ou simplement avec une boucle for.


    console.log(result.recordset)
    Pourrais tu nous mettre ce que tu récupères avec ce code.


    Comment recuperer le pseudo svp.
    Cela dépend de la structure de ta réponse que tu pourras voir en étendant ton objet dans le console..

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Février 2020
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Février 2020
    Messages : 56
    Points : 27
    Points
    27
    Par défaut
    Bonjour.

    Après avoir re-besoin de ce code je me suis replongé dans la solution de comment récupérer une valeur dans la BDD.

    Alors voila c'est très simple.

    Voici la requete sql (attention j'utilise Sql Server) : j'ai mis un UserName défini mais c'est pas important
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var selectQuery = "SELECT WA.ID, WA.UserName, GC.GiftCode FROM   Webshop_Account AS WA INNER JOIN Webshop_Giftcode AS GC ON WA.UserName = GC.UserName WHERE (WA.UserName = 'witch')";
    Pour la connexion à la BDD :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    const sqlConfig = {
                        password: MSSQLPASSWORD,
                        database: MSSQLDB,
                        stream: false,
                        options: {
                          trustServerCertificate: true,			  
                          enableArithAbort: true,
                          encrypt: true
                        },
                        port: 1433,
                        user: MSSQLUSER,
                        server: MSSQLIP,
                      }
     
                      sql.connect(sqlConfig)
                        .then((pool) => {
     
                        var selectQuery = "SELECT * FROM   Webshop_Account AS WA INNER JOIN Webshop_Giftcode AS GC ON WA.UserName = GC.UserName WHERE (WA.UserName = 'witch')";
     
                        return pool.request().query(selectQuery);
     
                        })
     
    .then((result) => {
                          console.log(result)
                        })
    On check le tableau avec un console.log() et nous renvoie :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    .then((result) => {
    {
      recordsets: [ [ [Object] ] ],
      recordset: [
        {
          ID: 7333,
          UserId: 187785,
          UserName: 'witch',       
          Email: 'witch@gmail.com',
          PassTwo: 'F52FC427BD37D0AE0FB1BCCE273D8174',
          Coin: 0,
          CoinA: 0,
          CoinB: 0,
          IsVip: false,
          TimeVip: 0,
          Expr1: 37839,
          GiftCode: '1lRBtcNUsZ',
          Bit: 0,
          Expr2: 'witch',
          date: null
      ],
      output: {},
      rowsAffected: [ 1 ]
    }
    Comme on constate il y a qu'un resultat.

    Et pour récupérer un champs on fait comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    .then((result) => {
      var user = result.recordset[0];
     
      console.log(user.ID);
      console.log(user.UserName);
      console.log(user.GiftCode);
    })
    Si il y a plusieurs résultats on fait comme sa.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    .then((result) => {
      result.recordset.forEach((user) => {
        console.log(user.ID);
        console.log(user.UserName);
        console.log(user.GiftCode);
      });
    })
    Voila.

    Il me reste deux question, dans ce code ya des failles sql, comment y remedier ?
    Sachant que j'utilise MSSQL dans le js du bot discord.

    Aussi je me conect via une IP pour se connecter à sql server

    Et du coup j'ai un avertissement qui renvoie ça :
    (node:35768) [DEP0123] DeprecationWarning: Setting the TLS ServerName to an IP address is not permitted by RFC 6066. This will
    be ignored in a future version.
    (Use `node --trace-deprecation ...` to show where the warning was created)
    Voila les détails, et si besoin je peux en fournir d'avantage.

    CDTR et merci

  5. #5
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 235
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 235
    Points : 15 532
    Points
    15 532
    Par défaut
    Citation Envoyé par Yu-Chan Voir le message
    Il me reste deux question, dans ce code ya des failles sql, comment y remedier ?
    il y a des explications sur les injections sql dans cette réponse :
    https://securite.developpez.com/faq/...-SQL-Injection

    il y a juste la conclusion de la réponse qui n'est pas à jour puisque aujourd'hui, la plupart des bibliothèques d'utilisation de bdd ont des méthodes de placement des données pour la construction des requêtes.
    vous aurez surement plus d'explication dans la documentation de la bibliothèque que vous utilisez.

Discussions similaires

  1. fichier xml pour établir une connexion avec une BDD SQL Server (JAVA)
    Par Iloyd dans le forum Format d'échange (XML, JSON...)
    Réponses: 1
    Dernier message: 06/03/2020, 21h14
  2. La Connexion Entre Mssql Server Et Sunopsis
    Par leon1588cn dans le forum Alimentation
    Réponses: 3
    Dernier message: 20/02/2009, 16h39
  3. Fermer la connexion à la BDD MSSQL sous Sunopsis
    Par GhisK dans le forum Alimentation
    Réponses: 2
    Dernier message: 05/12/2007, 10h18
  4. [SQL-Server] Connexion Php vers MSSQL Server 2000
    Par Andry dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 19/07/2006, 13h22
  5. Erreur de connexion à une BDD SQL Server 2000 avec BDE
    Par SchpatziBreizh dans le forum Bases de données
    Réponses: 3
    Dernier message: 17/06/2005, 11h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo