Как вставить в таблицу базы данных SQL с помощью QT - PullRequest
0 голосов
/ 26 января 2019

Я пытаюсь вставить в базу данных SQL, используя QT.Я был успешным с другими командами SQL, такими как удаление.Но здесь ничего не добавлено в мою базу данных.Мне интересно, может быть, где-то есть синтаксическая ошибка.

QSqlQuery task;

task.prepare("insert or replace into animals(name, type, breed, gender, age, lifespan, noise, intelligence, adaptability, personality, diet, environment, pastOwners, timeDedication, costDedication, medication, reproductability, appetite, energyLevel, weight, height) values ('" + name + "', '" + type + "','" + breed + "','" + gender + "', " + age + ", " + lifespan + ", " + noise + ", " + intelligence + ", " + adaptability + " ,'" + personality + "', '" + diet + "', '" + environment + "', " + pastOwners + ", " + timeDedication + ", " + costDedication + ", " + medication + ", " + reproductability + ", '" + appetite + "', " + energyLevel + ", " + weight + ", " + height + ");");

task.exec();

1 Ответ

0 голосов
/ 26 января 2019

Для подготовленного запроса вам нужно написать что-то вроде этого:

  QSqlQuery query;
  query.prepare("INSERT INTO person (id, forename, surname) "
              "VALUES (:id, :forename, :surname)");
  query.bindValue(":id", 1001);
  query.bindValue(":forename", "Bart");       
  query.bindValue(":surname", "Simpson");
  query.exec();

Значения привязки помогут избежать внедрения SQL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...