NodeJS / MySQL 查询数据中的引号 url
NodeJS / MySQL quotes in query data url
大家好,我有一个关于 javascript 中 simple/double 引号的快速问题,使用 NodeJS 和 MySQL 数据库..这是我的代码
app.get('/AddCollection', function (req, res) {
var queryData = url.parse(req.url , true).query;
connection.query("INSERT IGNORE INTO collections VALUES ('" +queryData.nom+ "' ,'" +queryData.categorie+ "','" +queryData.description+ "','" + queryData.urlimage+"')", function (err, result) {
if (err) throw err;
res.json("Vous avez ajouté "+queryData.categorie+"et"+queryData.description+"et"+queryData.objet+"a la table");
}
);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react-dom.min.js"></script>
删除查询:
app.get('/DeleteCollection', function (req, res) {
var queryData = url.parse(req.url , true).query;
connection.query("DELETE FROM `collections` WHERE `collections`.`nom` ='"+queryData.nom+"'", function (err, result) {
if (err) throw err;
res.json("Vous avez ajouté supprimé la collection"+ queryData.nom);
}
);
});
问题是我已经在调用中使用了单引号和双引号。
例如,如果 queryData.nom 或 queryData.categorie 等于 the heroes' places
那么代码将无法工作,因为它会混淆简单的引号。
我该如何解决?
参数化您的查询
connection.query("INSERT IGNORE INTO collections VALUES (?, ?, ?, ?)", [queryData.nom, queryData.categorie, queryData.description, queryData.urlimage], function (err, result) {
if (err) throw err;
res.json("Vous avez ajouté "+queryData.categorie+"et"+queryData.description+"et"+queryData.objet+"a la table");
}
);
大家好,我有一个关于 javascript 中 simple/double 引号的快速问题,使用 NodeJS 和 MySQL 数据库..这是我的代码
app.get('/AddCollection', function (req, res) {
var queryData = url.parse(req.url , true).query;
connection.query("INSERT IGNORE INTO collections VALUES ('" +queryData.nom+ "' ,'" +queryData.categorie+ "','" +queryData.description+ "','" + queryData.urlimage+"')", function (err, result) {
if (err) throw err;
res.json("Vous avez ajouté "+queryData.categorie+"et"+queryData.description+"et"+queryData.objet+"a la table");
}
);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react-dom.min.js"></script>
删除查询:
app.get('/DeleteCollection', function (req, res) {
var queryData = url.parse(req.url , true).query;
connection.query("DELETE FROM `collections` WHERE `collections`.`nom` ='"+queryData.nom+"'", function (err, result) {
if (err) throw err;
res.json("Vous avez ajouté supprimé la collection"+ queryData.nom);
}
);
});
问题是我已经在调用中使用了单引号和双引号。
例如,如果 queryData.nom 或 queryData.categorie 等于 the heroes' places
那么代码将无法工作,因为它会混淆简单的引号。
我该如何解决?
参数化您的查询
connection.query("INSERT IGNORE INTO collections VALUES (?, ?, ?, ?)", [queryData.nom, queryData.categorie, queryData.description, queryData.urlimage], function (err, result) {
if (err) throw err;
res.json("Vous avez ajouté "+queryData.categorie+"et"+queryData.description+"et"+queryData.objet+"a la table");
}
);