【问题标题】:MySQL on node.js syntax error I can't figure outMySQL on node.js 语法错误我无法弄清楚
【发布时间】:2012-02-17 11:17:28
【问题描述】:

我有这个功能可以在数据库中注册一个新用户:

this.registerUser = function(username,password,name,picture){
client.query('INSERT INTO' + USER +'SET username=?,passsword=?,name=?,picture=?',[username,password,name,picture],
function(err){
if(err){
    throw err;
  }
 });
}

这是用于从另一个模块调用函数的行:

var data = new db.dataBase('root','root');
data.registerUser("a","a","a","a");

这是 MySQL 表:

client.query(
'CREATE TEMPORARY TABLE IF NOT EXISTS '+USER+
'(username VARCHAR(255), '+
'password VARCHAR(255), '+
'name VARCHAR(255), '+
'picture VARCHAR(255), '+
'PRIMARY KEY(username))'
);

出于某种未知原因(对我而言)我收到此错误:

Error: You have an error in your SQL syntax; check the manual that corresponds to your
MySQL server version for the right syntax to use near 
'username='a',password='a',name='a',picture='a'' at line 1

我不知道我在这里做错了什么,请帮忙。

谢谢!

【问题讨论】:

  • USER 的值是多少?您可以打印查询本身吗?
  • @DorShemer USER 是表的名称,我无法打印任何内容,它只会给我错误消息并停止程序
  • USER 的值是多少,您在问题中是否注意空格?因为看起来您的查询将连接为INSERT INTOmytablenameSET username...
  • @Itzik984 请向我们展示 SQL 查询本身
  • @DorShemer 上面写着查询:client.query('INSERT INTO' + USER....还有什么需要的吗?

标签: javascript mysql sql node.js


【解决方案1】:

我认为它的空间问题,:

//add space after INTO and before SET client.query('INSERT INTO ' + USER +' SET username=?,passsword=?,name=?,picture=?',[username,password,name,picture],

希望对你有帮助

【讨论】:

  • 很高兴知道它有效,应该小心该死的空间老兄.. :)
  • @Itzik984 如果您在字符串中构建查询,例如var query = 'SELECT ...'; 你可以使用console.log(query) 来验证它是否是有效的 SQL。
猜你喜欢
  • 1970-01-01
  • 2016-05-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多