2013-08-08 6 views
0

mysql 쿼리 결과를 변수에 넣으 려하므로 정의되지 않았는지 확인하고이를 기반으로 작업을 수행 할 수 있습니다.Javascript : 변수의 MYSQL 쿼리

문제는 쿼리가 어떤 이유로 작동하지 않는 것입니다. 여기 내 코드입니다 :이 기능으로 작동하기 때문에

exports.check = function(zmail, password){ 

       var check = client.query('SELECT id FROM passwords WHERE 
              email="'+zmail+'"'); 

       console.log(check); 
       /* 
       if(typeof check == 'undefined'){ 
       console.log("wrong email"); 
       }else{ 
         var savedemail = check[0].id; 
         console.log(savedemail, zmail); 
       } 
       */ 

} 

내가 아는 쿼리하지만 작동합니다 ... 제가 잘못된 방법으로 변수에 퍼팅해야 그림. 아무도 그것을 올바르게하는 방법을 알고 있습니까?

업데이트 ... 나는 그 대답을 시도했지만 효과가 없었습니다. id가 정의되지 않으면 서버가 충돌합니다!

var check = client.query('SELECT id FROM passwords WHERE email="'+zmail+'"', function(err,data){ 

       if(data == null){ 
       console.log("wrong email"); 
       }else{ 
         var savedemail = data[0].id; 
         console.log(savedemail, zmail); 
       } 
       }); 
+1

당신은 Node.js를 MySQL의 모듈을 사용하는 경우, 당신은 콜백을 지정할 필요가 여기에 작동하지 않는 코드입니다. 콜백 내에서 반환 된 세트를 사용할 수 있습니다. https://github.com/felixge/node-mysql –

+0

처음에는 그 일을 시도했지만 문제는 함수가 정의되지 않은 경우 서버가 충돌합니다! 기본적으로 서버는 ID를 취할 수 없다고 말합니다 정의되지 않았고 작동을 멈추는 무언가를 변수가 정의되지 않았는지 여부를 확인할 수 있도록 계속해야합니다. – pj409

+0

위의 코드에서 콜백을 사용하고 있지 않습니다. 콜백 내에서'err','rows' 및'fields' 인수를 사용하면'rows [0]'이 정의되지 않았는지 확인할 수 있습니다. –

답변

1

아마도 당신은 다음과 같이 콜백을 사용할 필요가 :

exports.check = function(zmail, password){ 
    var check = client.query('SELECT id FROM passwords WHERE email="'+zmail+'"', function(err, data){ 
    console.log(data); 
    }); 
} 
+0

고마워, 나는 일할 수있어 !! – pj409