Javascript 如何在jsrestfulapi中使用LIKE-SQL查询?
正在尝试使用JS对mySQL进行搜索查询 工作代码:Javascript 如何在jsrestfulapi中使用LIKE-SQL查询?,javascript,mysql,Javascript,Mysql,正在尝试使用JS对mySQL进行搜索查询 工作代码: searchRestaurants(request, respond){ var term = request.params.id var sql = "SELECT restaurant FROM restaurant_details WHERE restaurant LIKE '%' ? '%'"; db.query(sql, term, function(error, result
searchRestaurants(request, respond){
var term = request.params.id
var sql = "SELECT restaurant FROM restaurant_details WHERE restaurant LIKE '%' ? '%'";
db.query(sql, term, function(error, result){
if(error){
throw error;
}
else{
respond.json(result);
}
});
}
这是我的密码:(旧)
Id是通过url的用户输入接收的
"use strict"
const restaurantdb = require("../models/RestaurantDB");
var restaurantDBObject = new restaurantdb();
function routeRestaurants(app){
app.route("/restaurant")
.get(restaurantDBObject.getAllRestaurants);
app.route("/restaurant/:id")
.get(restaurantDBObject.searchRestaurants)
}
module.exports = {routeRestaurants};
所以,当我尝试去“localhost:8080/restaurant/way”搜索Subway时,它什么也没有返回。只是一个“[]”。
正确的方法是什么?提前谢谢
这里有一个有效的例子
addReview(request, respond) {
var now = new Date();
var reviewObject = new Review(null, request.body.restaurant, request.body.rating, request.body.comment,
request.body.username, now.toString());
var sql = "INSERT INTO reviews (restaurant, rating, comment, username, timestamp) VALUES(?,?,?,?,?)";
var values = [reviewObject.getRestaurant(), reviewObject.getRating(),
reviewObject.getComment(), reviewObject.getUsername(), reviewObject.getTimestamp()];
db.query(sql, values, function (error, result) {
if (error) {
throw error;
}
else {
respond.json(result);
}
});
}
数据库连接
var mysql = require("mysql");
var connection = mysql.createPool({
host:"localhost",
port:"3306",
user:"root",
password:"",
database:"project"
});
module.exports = connection;
您的问题的答案完全取决于您在nodejs中使用的mysql模块。您能在您的问题中提供这些信息吗?
?
中的“%?%”代码>作为文字问号而不是参数占位符处理。您还定义了值
,并且从不使用它。我怀疑您只需要在语法方面更加小心。@Ávelynela我可能正在使用RESTFUL api,但不确定您是否在问这个问题。@ÁlvaroGonzález我添加了一个工作示例,其中?s被values变量替换。这就是我用这句话想要达到的目的。你知道正确的语法吗?谢谢。请注意引用?
不同于'?'
,就像null
不同于'null'
一样,餐厅
不同于'restaurant'
。您的问题的答案完全取决于您在nodejs中使用的mysql模块。您能在您的问题中提供这些信息吗??
中的“%?%”代码>作为文字问号而不是参数占位符处理。您还定义了值
,并且从不使用它。我怀疑您只需要在语法方面更加小心。@Ávelynela我可能正在使用RESTFUL api,但不确定您是否在问这个问题。@ÁlvaroGonzález我添加了一个工作示例,其中?s被values变量替换。这就是我用这句话想要达到的目的。你知道正确的语法吗?谢谢。请注意引用?
不同于“?”
,就像null
不同于“null”
一样,餐厅
不同于餐厅
。
var mysql = require("mysql");
var connection = mysql.createPool({
host:"localhost",
port:"3306",
user:"root",
password:"",
database:"project"
});
module.exports = connection;