有谁知道如何SELECT WHERE IN在node-mysql中使用?
我已经尝试了下面的代码,但是我收到以下错误消息:
'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 ''(`PHP`,`apache`)'' at line 1'
Run Code Online (Sandbox Code Playgroud)
这是我的代码:
whereIn = '(';
for ( var i in tagArray ) {
if ( i != tagArray.length - 1 ) {
whereIn += "`" + tagArray[i] + "`,";
}else{
whereIn += "`" + tagArray[i] + "`";
}
}
whereIn += ')';
console.log(whereIn);
client.query(
'SELECT tag_id …Run Code Online (Sandbox Code Playgroud) 到目前为止,我使用node-mysql构建了我的应用程序.我只是使用AWS RDS服务建立了一个安全可访问的mysql数据库,并使用mysql命令行客户端成功测试了SSL连接.我有亚马逊的公钥.pem文件.node-mysql似乎没有SSL连接选项的api.
到目前为止,我发现的唯一一个是Node-mysql-libmysqlclient,但是我尝试连接它时遇到错误,关于绑定依赖项为null的事情,所以我不确定我是否应该相信它.建议使用哪个模块/ api?或者,如果你知道我需要在node-mysql中修改什么,我会愿意修改一下,但看起来它正在使用较低级别的套接字连接到MySQL所以我不确定它有多难以获得SSL部分已添加.
在此先感谢您的帮助!
我正在制作节点/快递应用程序,我想使用mysql数据库.但我似乎无法连接到数据库.
我知道我应该使用node-mysql模块(https://github.com/felixge/node-mysql),但我一定做错了.
我对此完全陌生.我是否必须创建数据库然后创建表?有没有办法在别处创建数据库,以便每次重新启动应用程序时都不会删除它?
这是我的代码.有人可以回答上面的问题并告诉我下面我做错了什么吗?谢谢!
var express = require('express'),
routes = require('./routes'),
user = require('./routes/user'),
http = require('http'),
io = require('socket.io'),
path = require('path');
var app = express();
var server = http.createServer(app);
sio = io.listen(server);
app.configure(function(){
app.set('port', process.env.PORT || 3000);
app.set('views', __dirname + '/views');
app.set('view engine', 'jade');
app.use(express.favicon());
app.use(express.logger('dev'));
app.use(express.bodyParser());
app.use(express.methodOverride());
app.use(app.router);
app.use(require('stylus').middleware(__dirname + '/public'));
app.use(express.static(path.join(__dirname, 'public')));
});
app.configure('development', function(){
app.use(express.errorHandler());
});
server.listen(app.get('port'), function(){
console.log("Express server listening on port " + app.get('port'));
});
var mysql = require('mysql');
var …Run Code Online (Sandbox Code Playgroud) 我正在使用node和npm mysql做一些数据库工作.
有没有办法避免使用result[0],如果我知道我只会收到一行?
connection.query({
sql: "SELECT spend FROM `account` WHERE `name` = ? order by date desc limit 1",
values: [market.name]
}, function (error, results, fields) {
market.fee = results[0].age;
resolve(market);
});
Run Code Online (Sandbox Code Playgroud) 我使用node-mysql将记录添加到数据库,但是当要插入的记录是一个对象数组并且我需要将操作作为事务时,我正面临挑战.我通过创建一个测试项目来简化我的问题,以更好地解释我的问题.
假设我必须使用表格users,orders并且要插入的数据看起来像这样
var user = {
name: "Dennis Wanyonyi",
email: "example@email.com"
};
var orders = [{
order_date: new Date(),
price: 14.99
}, {
order_date: new Date(),
price: 39.99
}];
Run Code Online (Sandbox Code Playgroud)
我想先user在数据库中插入一个并使用它insertId来orders为该用户添加每个数据库.我正在使用一个事务,因为如果出现错误,我想回滚整个过程.以下是我尝试使用node-mysql事务插入所有记录的方法.
connection.beginTransaction(function(err) {
if (err) { throw err; }
connection.query('INSERT INTO users SET ?', user, function(err, result) {
if (err) {
return connection.rollback(function() {
throw err;
});
}
for (var i = 0; i < orders.length; i++) …Run Code Online (Sandbox Code Playgroud) 今天是个好日子!我一直想知道nodejs mysql beginTransaction是否在我的池中使用多个连接(如果我的事务中有多个查询),或者它是否仅使用单个连接,直到它被提交?
我试图在节点中的现有连接中更改数据库.连接可能有也可能没有createConnection调用数据库名称.这是代码:
var mysql = require('mysql');
connection = mysql.createConnection( {
host : 'localhost',
user : 'me',
password : 'secret',
port : 3306,
/* database : 'test' // optional */
});
Run Code Online (Sandbox Code Playgroud)
我正在使用node-mysql lib.目前我正在关闭连接并重新连接.
有没有更好的方法呢?类似于mysql_select_dbPHP?
我正在查看 node-mysql 中的一些示例 https://github.com/felixge/node-mysql中的一些示例
我很困惑什么时候使用?和 ?作为构建查询时的占位符。
一个例子在这里;
var userId = 1;
var columns = ['username', 'email'];
var query = connection.query('SELECT ?? FROM ?? WHERE id = ?', [columns, 'users', userId], function(err, results) {
// ...
});
console.log(query.sql); // SELECT `username`, `email` FROM `users` WHERE id = 1
Run Code Online (Sandbox Code Playgroud)
我如何知道何时使用??以及何时使用??
哪个是最快的方法将查询获取到 MYSQL,然后返回到输出:
console.log('查询完成', 结果)"
有没有更好的方法?请解释你的答案!
谢谢!
方法一:
var connection = mysql.createConnection({multipleStatements: true});
connection.query('SELECT ?; SELECT ?', [1, 2], function(err, results) {
if (err) throw err;
console.log('queries done', results);
});
Run Code Online (Sandbox Code Playgroud)
方法二:
const Db = mysql.createPool({
connectionLimit: 7,
dateStrings: true,
multipleStatements: true
});
Db.getConnection(function(err, connection) {
if(err) console.log(err);
connection.query(`
SELECT "1" AS "first";
SELECT "2" AS "second";`, function(err, results) {
connection.release();
if(err) console.log(err);
console.log('queries done', results);
}
);
});
Run Code Online (Sandbox Code Playgroud)
方法三:
const Db = mysql.createPool({
connectionLimit: 7,
dateStrings: true,
multipleStatements: true
});
Db.getConnection(function(err, …Run Code Online (Sandbox Code Playgroud) 我使用nodejs并做出反应。
我经常收到此错误,有时不出现此错误消息,有时也会出现。
错误
返回 SafeBuffer.Buffer.from(json, 'utf8').toString('base64'); 类型错误:无法读取未定义的属性“来自”
我不知道为什么会这样。但据我所知,但是当我重新启动或运行服务器时,它花费的时间太长。这会影响吗?因为我在 mysql 连接上经历了同样的事情。因此我得到一个旧的 connectTimeOut 像这样:
import mysql from 'mysql';
var con = mysql.createConnection({
host:'localhost',
user:'root',
password:'',
database:'hammerst_hammer',
multipleStatements: true,
connectTimeout:30000
});
con.connect((err) =>{
if(err) throw err;
else console.log('MySql connected')
});
export default con;
Run Code Online (Sandbox Code Playgroud)
请帮助我,我不知道哪个错误以及该怎么办
node-mysql ×10
node.js ×10
mysql ×7
javascript ×3
async.js ×1
buffer ×1
express ×1
ssl ×1
transactions ×1