sql >> Database teknologi >  >> RDS >> Mysql

Hvordan får man en værdi fra mysql-forespørgsel uden for forespørgselssætningen?

tl;dr alt sker i et tilbagekald.

Du falder over Javascripts asynkrone natur. Når din console.log(value); opkaldet kører, er forespørgslen ikke (nødvendigvis) afsluttet. Så resultatet af forespørgslen er ikke tilgængeligt på det tidspunkt.

Mange udviklere bruger et mønster som dette med en tilbagekaldsfunktion til at håndtere det næste trin, når forespørgselsresultatet ankommer.

function quo (success){
    value = connection.query(
       'SELECT role from `roles` where `id` = 1' , 
       function (error, results, fields) {
           if (error) throw error;
           console.log('The role is: ', results[0].role);
           success (results[0].role);
       });
}

quo (function (role) {
   console.log(role);
   /* do something useful with the role that came back from the query */
});

Promise objekter gør denne slags ting nemmere at læse i node.js. Men at forklare dem er under alle omstændigheder uden for rækkevidden af ​​et Stack Overflow-svar.



  1. php og mysql kopiere post fra en tabel til en anden

  2. Hvordan opretter man forbindelse til MySQL på Amazon EC2 fra Windows?

  3. inkonsistent indrykning med Python efter split

  4. En oversigt over jobplanlægningsværktøjer til PostgreSQL