2012-11-21 17 views
6

मैं जब मैं phpmyadmin में तालिका अद्यतन करने के लिए कोशिश कर रहा हूँ यह त्रुटि प्राप्तत्रुटि: ER_BAD_FIELD_ERROR: अज्ञात स्तंभ 'फ़ील्ड सूची' में 'asd123' में नोड js

किसी को भी मुझे बता सकते हैं क्या गलत कृपया

इस तालिका

create table ms_registereduser(userID Varchar(10),socketID Varchar(255)); 

यह मेरा server.js

var http = require("http"); 

var mysql = require('mysql'); 

var connection = mysql.createConnection({ 
    host  : 'localhost', 
    user  : 'root', 
    password : '', 
    database : 'pushnotificationdb' 
}); 

var userID = "1234567890", 
    socketID = "asd123"; 


http.createServer(function(request, response) { 

    response.writeHead(200, {"Content-Type": "text/plain"}); 
    response.write("Hello World"); 

    response.end(); 
}).listen(1111); 

connection.connect(); 

    connection.query('callpushnotificationdb.spUpdateSocketID('+userID+','+socketID+');').on('end',function() 
     { 
      console.log('User '+ userID+' has updated his socketID to '+socketID); 
     }); 

connection.end(); 

है और यह मेरा spUp है dateSocketID साथ '//' परिसीमक के रूप में

DROP PROCEDURE IF EXISTS spUpdateSocketID// 

CREATE PROCEDURE spUpdateSocketID(IN userID Varchar(10) ,IN socketID Varchar(255)) 
BEGIN 
set @userID = userID; 
set @socketID = socketID; 
set @s = CONCAT('UPDATE ms_registereduser SET socketID = @socketID WHERE userID = @userID'); 
PREPARE stmt FROM @s; 
EXECUTE stmt; 
DEALLOCATE PREPARE stmt; 
END// 

यदि मैं यह

call pushnotificationdb.spUpdateSocketID('1234567890','asd123'); 

यह काम करता है की तरह phpmyadmin में प्रक्रिया कॉल करने के लिए प्रयास करते हैं, लेकिन यह दिया अगर मैं इसे Node.js से कॉल करने के लिए कोशिश ER_BAD_FIELD_ERROR: मुझे इस त्रुटि की तरह त्रुटि अज्ञात स्तंभ 'फ़ील्ड सूची' में 'asd123', कृपया मदद

उत्तर

0

इस प्रयास करें:

DROP PROCEDURE IF EXISTS spUpdateSocketID// 

CREATE PROCEDURE spUpdateSocketID(IN _userID VARCHAR(10) ,IN _socketID VARCHAR(255)) 
BEGIN 
UPDATE ms_registereduser SET socketID = _socketID WHERE userID = _userID; 
END// 

के रूप में नीचे mentioed अपने प्रक्रिया फिर से लिख सकते हैं और इसे चलाने के लिए प्रयास करें: " '+ userID +' 'के रूप में और"' संशोधित कर रहे हैं

DROP PROCEDURE IF EXISTS spUpdateSocketID// 

CREATE PROCEDURE spUpdateSocketID(IN userID VARCHAR(10) ,IN socketID VARCHAR(255)) 
BEGIN 
SET @s = CONCAT("UPDATE ms_registereduser SET socketID = '", socketID, "' WHERE userID = '", userID, "'"); 
PREPARE stmt FROM @s; 
EXECUTE stmt; 
DEALLOCATE PREPARE stmt; 
END// 
+0

मैं प्रक्रिया को फिर से लिखने है, लेकिन अभी भी मिल गया वही त्रुटि तालिका नमूना डेटा है कि एक ही userId –

+0

और मैंने आपके नए कोड संस्करण की कोशिश की है, फिर भी वही त्रुटि मिली है –

+0

शामिल मैं पोस्ट बनाने तालिका वाक्य रचना मेरी कोड में उपयोग किया है बनाएँ के साथ अपने प्रश्न अपडेट करें –

3

नीचे दिए गए क्वेरी की कोशिश करें, चर '+ userID +' और '+ socketID +' + socketID + ' ":

connection.query(
    'callpushnotificationdb.spUpdateSocketID("'+userID+'","'+socketID+'");' 
) 
.on('end',function(){ 
    console.log('User '+ userID+' has updated his socketID to '+socketID); 
}); 
संबंधित मुद्दे