节点MySQL转义LIKE语句
如何在node-mysql中转义MySQL LIKE语句?
东西沿线
"SELECT * FROM card WHERE name LIKE '%" + connection.escape(req.body.search) + "%'"
结果是
'SELECT * FROM card WHERE name LIKE \'%\'hello\'%\''
这是一个语法错误。 如果我使用替代语法
connection.query("SELECT * FROM card WHERE name LIKE '%?%'", req.body.search, function () {});
导致类似的语法错误。 我也试过了
connection.query("SELECT * FROM card WHERE name LIKE ?", '%' + req.body.search + '%', function () {});
这只是逃避'%'的标志。
不知道为什么它是逃避你的最后一个例子%
,因为这对我来说很好:
// lifted from my code: var value = 'ee20e966289cd7'; connection.query('SELECT * from django_session where session_key like ?', '%' + value + '%', ...) // Result: [ { session_key: '713ee20e966289cd71b936084a1e613e', ... } ]
当我打开驱动程序中的debug:true
(传递debug:true
作为参数到mysql.createConnection
)时,它不会转义百分号:
{ command: 3, sql: 'SELECT * from django_session where session_key like \'%ee20e966289cd7%\'' }
(它确实逃避了单引号,但这只是为了显示目的)
(使用mysql@2.0.0-alpha8
)
我已经成功了类似的东西
"SELECT * FROM card WHERE name LIKE " + connection.escape('%'+req.body.search+'%')
- 如何实现WebRTC录制到Node.js服务器
- web服务器使用nodejs为我的angular度的应用程序
- React Router / Express – 刷新dynamicURL参数
- NodeJS vm.runInThisContext()缺less__filename
- Node.JS不同的asynchronous链怎样才能让共享variables没有问题?
- 我怎样才能parsingJSONstring与新的date(),并得到一个date属性的对象?
- AngularJS – 应用程序内部件的asynchronous加载
- 如何检查一个string是否与node.js中的任何一个正则expression式匹配?
- 如何打破SweetJS卫生局部variables?