sql >> Databáze >  >> RDS >> Mysql

Jak získat hodnotu z dotazu mysql mimo příkaz dotazu?

tl;dr vše se děje při zpětném volání.

Zakopáváte o asynchronní povahu Javascriptu. Do doby vašeho console.log(value); probíhá volání, dotaz není (nezbytně) dokončen. Není tedy možné, aby byl v tu chvíli k dispozici výsledek dotazu.

Mnoho vývojářů používá podobný vzorec s funkcí zpětného volání, která zpracuje další krok, když dorazí výsledek dotazu.

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 objekty usnadňují čtení takových věcí v node.js. Ale jejich vysvětlení je mimo rámec odpovědi Stack Overflow.



  1. Jak funguje funkce STR() v SQL Server (T-SQL)

  2. Vkládání dat do více tabulek pomocí jednoho formuláře

  3. Pomocí NEWSEQUENTIALID() vytvořte na serveru SQL Server zvyšující se identifikátor GUID

  4. Volání uložené funkce nebo procedury nevloží a zachová změny