为什么在将电子邮件数据发送到我的数据库时出现错误?

Why i'm getting and error while sending email data to my database?

所以我的问题是我收到了这个错误:Uncaught Error: SQLITE_ERROR: near "@gmail": syntax error 当我在数据库中插入或更新时。

我正在使用 sqlite3 和 electron。这是我的代码:

function addPatient(){
  var req = 'INSERT INTO patient(nom, prenom, age, tel, mail, sexe, paiement) VALUES('+li_nom.value+','+li_prenom.value+','+li_age.value+','+li_tel.value+','+li_mail.value+','+li_sexe.value+','+li_paiement.value+')';
  db.run(req);
  event.preventDefault();
  console.log("done");
}

PS: 我正在从表单值中获取数据。

如果您需要更多信息,请随时询问。

感谢您的帮助:)

您正在通过字符串连接创建 SQL 查询,这使其容易受到 SQL 注入和其他格式错误查询的攻击。

当数据库接收到查询时,您的查询基本上看起来像这样:

INSERT INTO patient(nom, prenom, age, tel, mail, sexe, paiement) VALUES(name,prename,25,555555555,example@gmail.com,male,500)

这里的问题:

  1. 您的查询中需要引用字符串值
  2. @ 符号用于变量(当不是真实字符串的一部分或未被引用时)

您需要使用参数化查询。这将解决这两个问题 保护您免受几乎任何 SQL 注入。您在查询中创建占位符,然后通过库以编程方式填充它们。