gpt4 book ai didi

mysql - 'ER_PARSE_ERROR' 因为 ?在使用 MySQL 的 url 参数中

转载 作者:行者123 更新时间:2023-11-29 15:57:43 25 4
gpt4 key购买 nike

使用 Loopback/NodeJs 并尝试创建一个方法来插入多部分表单,在添加包含“?”的 YouTube 链接时出现此错误在形式中任何建议可以避免此错误,因为到目前为止我可以插入不带“?”的链接而且安全性也很差。

这是我迄今为止构建的代码:

cm_comediens_extraits_video.postVideo = function (titre, description, typeExtrait, langue, intention1, intention2, intention3, lienYoutube, options, req, res, file, cb) {
const token = options && options.accessToken;
const userId = token && token.userId;
var ds = app.datasources.mydb;

let newpath = '';
let fileName = '';
const form = new formidable.IncomingForm();
form.parse(req, function (err, fields, files) {
var oldpath = files.file.path;
fileName = files.file.name;
titre = fields.titre;
description = fields.description;
typeExtrait = fields.typeExtrait;
langue = fields.langue;
intention1 = fields.intention1;
intention2 = fields.intention2;
intention3 = fields.intention3;
lienYoutube = fields.lienYoutube;
console.log(lienYoutube)
newpath = 'public/videos/' + fileName;
// console.log(files.file)
fs.copyFile(oldpath, newpath, function (err) {
fs.unlinkSync(oldpath)
if (err) throw err;
});


var sql = "INSERT INTO cm_medias (id_comedien,type_media,intitule,filename,original_filename) VALUES ((SELECT id_comedien FROM cm_comediens WHERE id_utilisateur= '" + userId + "'),'video','"+titre+"','"+'http://localhost:3000/'+fileName+"','"+fileName+"')";
var sql2 = "INSERT INTO cm_comediens_extraits_video (id_media,description,qf_type,qf_langue,qf_interpretation1,qf_interpretation2,qf_interpretation3,lien_youtube) VALUES ((select max(cm_medias.id_media) as id_media from cm_medias inner join cm_comediens on cm_medias.id_comedien=cm_comediens.id_comedien inner join user on cm_comediens.id_utilisateur= user.id where user.id= '" + userId + "'),'" + description + "','" + typeExtrait + "','" + langue + "','" + intention1 + "','" + intention2 + "','" + intention3 + "','"+ lienYoutube +"')";
ds.connector.execute(sql, [titre], function (err, cm_comediens_extraits_videos) {
ds.connector.execute(sql2, [description, typeExtrait, langue, intention1, intention2, intention3, lienYoutube], function (err, cm_comediens_extraits_videos) {
if (err) console.error(err);
cb(err, cm_comediens_extraits_videos);
});
});
});
};

cm_comediens_extraits_video.remoteMethod(
'postVideo', {
http: {verb: 'POST'},
description: 'Add a Video',
accepts: [
{ arg: 'titre', type: 'string' },
{ arg: 'description', type: 'string' },
{ arg: 'typeExtrait', type: 'integer' },
{ arg: 'langue', type: 'integer' },
{ arg: 'intention1', type: 'integer' },
{ arg: 'intention2', type: 'integer' },
{ arg: 'intention3', type: 'integer' },
{ arg: 'lienYoutube', type: 'string' },
{ arg: "options", "type": "object", "http": "optionsFromRequest"},
{ arg: 'req', type: 'object', 'http': {source: 'req'}},
{ arg: 'res', type: 'object', 'http': {source: 'res'}},
{ arg: 'file', type: 'file' }
],
returns: {arg: 'data',type: ['cm_comediens_extraits_video'],root: true}
}
);

这是错误的示例。这 ”?”我认为 YouTube 被认为是下一个参数:

  code: 'ER_PARSE_ERROR',
errno: 1064,
sqlMessage:
'Erreur de syntaxe près de \'://www.youtube.com/watchv=V`vcvcvcvcvcvc`MiSnR9frEg)\' à la ligne 1',
sqlState: '42000',
index: 0,

如有任何帮助,我们将不胜感激。谢谢。

最佳答案

这里有一个错误:'"+titre+"','"+'http://localhost:3000/'简单地删除引号或转义它们: '"+titre+"','"http://localhost:3000/"'

关于mysql - 'ER_PARSE_ERROR' 因为 ?在使用 MySQL 的 url 参数中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56359897/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com