从node.js cloud函数插入google cloud sql

mpgws1up  于 2021-06-17  发布在  Mysql
关注(0)|答案(1)|浏览(505)

我有一个运行mysql第二代的googlecloudsql示例,还有一个node.js cloud函数。
index.js(下面)在运行时产生以下错误。如何从node.js环境执行googlecloud sql数据库插入。据我所知,我的语法是正确的,但我肯定遗漏了什么。 connectionName , dbUser , dbPassword ,和 dbName 由于明显的原因被省略了。
{“code”:“er\u parse\u error”,“errno”:1064,“sqlmessage”:“您的sql语法有错误;查看与mysql服务器版本相对应的手册,以获得使用“insert into entries(guestname,content)”值的正确语法( first guest , I got here! );i'在第1行,“sqlstate”:“42000”,“index”:0,“sql”:“创建表条目(guestname varchar(255),content varchar(255),entryid int not null autoïu increment,primary key(entryid));插入到条目(guestname,content)值中( first guest , I got here! );插入到条目(guestname,content)值中( second guest , Me too! );"}
索引.js

const mysql = require('mysql');

const connectionName = process.env.INSTANCE_CONNECTION_NAME || '';
const dbUser = process.env.SQL_USER || '';
const dbPassword = process.env.SQL_PASSWORD || '';
const dbName = process.env.SQL_NAME || '';

const mysqlConfig = {
  connectionLimit: 1,
  user: dbUser,
  password: dbPassword,
  database: dbName
};

if (process.env.NODE_ENV === 'production') {
  mysqlConfig.socketPath = `/cloudsql/${connectionName}`;
}

let mysqlPool;

exports.populateDatabase = (req, res) => {
  if (!mysqlPool) {
    mysqlPool = mysql.createPool(mysqlConfig);
  }

  mysqlPool.query('CREATE TABLE entries (guestName VARCHAR(255), content VARCHAR(255),' +
                  'entryID INT NOT NULL AUTO_INCREMENT, PRIMARY KEY(entryID));' + 
                  'INSERT INTO entries (guestName, content) values (`first guest`, `I got here!`);' + 
                  'INSERT INTO entries (guestName, content) values (`second guest`, `Me too!`);', (err, results) => {
    if (err) {
      console.error(err);
      res.status(500).send(err);
    } else {
      res.send(JSON.stringify(results));
    }
  });

};
kkih6yb8

kkih6yb81#

您正在向.query()方法调用传递几个语句。默认情况下,不允许使用多个语句。
可以启用多语句查询,但请注意,这会带来潜在的安全风险。

相关问题