簡體   English   中英

錯誤:ER_BAD_FIELD_ERROR:節點js中“字段列表”中的未知列“asd123”

[英]Error: ER_BAD_FIELD_ERROR: Unknown column 'asd123' in 'field list' in node js

我在嘗試更新phpmyadmin中的表時收到此錯誤

有誰能告訴我什么是錯的

這是表

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();

這是我的spUpdateSocketID,帶有'//'作為分隔符

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//

如果我嘗試像這樣在phpmyadmin中調用該過程

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

它工作,但如果我嘗試從node.js調用它它給我這樣的錯誤錯誤:ER_BAD_FIELD_ERROR:'字段列表'中的未知列'asd123',請幫助

嘗試以下查詢,變量'+userID+''+socketID+'被修改為"'+userID+'""'+socketID+'"

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

試試這個:

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並嘗試運行它:

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//

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM