如何修复 Qt 中 INSERT 查询的语法错误?

How to fix synthax error with INSERT Query on Qt?

我正在尝试制作一个应用程序,用户可以在其中访问数据库并将行添加到同一数据库中。 问题是我有一个 sql 查询语法错误,尽管我相信我写对了:

void FenPrincipale::boutonAjouter(){

requete.bindValue(":Nom",ajout_nom->text());
requete.bindValue(":Catégorie",liste_categories->currentText());
requete.bindValue(":Commentaires",ajout_description->toPlainText());;

qDebug() << liste_categories->currentText();
qDebug() << ajout_description->toPlainText();
qDebug() << ajout_nom->text();

requete.exec("INSERT INTO objets (Nom, Catégorie, Commentaires, Image)"
                " VALUES (:Nom, :Catégorie, :Commentaires, test )");

if(requete.exec()) {
   qDebug() << "Ok - requete";
    // Boucle qui permet de parcourir les enregistrements renvoyés par la requête
  while(requete.next()) {


            }//fin du while
}//fin du if

      else {
           qDebug() << "Echec de la requête : " << requete.lastError();
           }

}

我有这个错误:

QSqlError("1064", "QMYSQL: Unable to execute query", "You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ':Nom, :Catégorie, :Commentaires, test )' at line 1")

我在网上到处搜索,但我找不到解决办法,我没有看到我在哪里犯了一个语法错误...

你能帮我解决这个问题吗? 谢谢!

您需要准备查询,然后向其中添加值

由于您的口音似乎有问题,请将其放在反引号中,或者将其完全删除。

manual

requete.prepare("INSERT INTO objets (Nom, `Catégorie`, Commentaires, Image)"
                " VALUES (:Nom, :Catégorie, :Commentaires, test )");
requete.bindValue(":Nom",ajout_nom->text());
requete.bindValue(":Catégorie",liste_categories->currentText());
requete.bindValue(":Commentaires",ajout_description->toPlainText());
requete.exec