-2

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

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

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:我正在从表单值中获取数据。

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

感谢帮助 :)

4

1 回答 1

1

您正在通过字符串连接创建 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 注入的侵害。您在查询中创建占位符,然后通过库以编程方式填充它们。

于 2019-12-07T17:51:57.670 回答