为什么字符串在MYSQL数据库中最终不可读?

时间:2019-01-21 00:57:18

标签: mysql node.js web3js

我正在使用Node JS创建随机的以太坊账户,我想将它们存储在mysql数据库中(是的,我知道这很糟糕,但这不是重点)。 插入没有错误,但是当我查看插入的数据时,它看起来无法识别。

我尝试将排序规则更改为各种编码,但无济于事。另外,这是:res.setHeader('Content-Type','application / json; charset = utf-8');

代码:

const newAcc = web3.eth.accounts.create();

con.connect(function(err) {
  if (err || !newAcc) throw err;
  console.log("Connected!");

  var sql = 'INSERT INTO eth_accounts (addressEth, privateKeyEth) VALUES 
   ('+newAcc.address+', '+newAcc.privateKey+')';

  con.query(sql, function (err, result, fields) {
  if (err) throw err;
  console.log(result);
  });

  var sql = 'SELECT * FROM eth_accounts';
  con.query(sql, function (err, result, fields) {
    if (err) throw err;
    console.log(result);
  });
 });

到目前为止,我一直在使用PHP,每当一个字符串看起来很奇怪时,我都将 use utf 8 命令放在顶部,这样就可以了。

这是我收到的错误消息:

  

???? J ???? m〜?G?ȓ?L ^作为地址,?] ?? n?A * j?[| ??-hޏ?gx?__>?{?-? |如   键...

1 个答案:

答案 0 :(得分:0)

上面的评论讨论中,解决方案是在字符串周围使用引号:

var sql = "INSERT INTO eth_accounts (addressEth, privateKeyEth) VALUES ('"
          + newAcc.address + "', '" + newAcc.privateKey + "')";