Erreur Insertion MySql
Unsolved
French
-
wrote on 27 Mar 2019, 15:42 last edited by
Bonjour, je tente de faire une insertion MySQL pour un projet en cours. Je m'aide d'une vidéo cependant celle-ci ne fonctionne pas, il m'indique données non insérées mais la connexion se fait correctement, une idée ?
Mon code:
#include "mainwindow.h" #include "ui_mainwindow.h" #include <QPixmap> #include <QDebug> MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); QPixmap pix("H:/Travail/Mes Images/Qt/Boss-icon.png"); int w = ui->label_pic->width(); int h = ui->label_pic->height(); ui->label_pic->setPixmap(pix.scaled(w,h,Qt::KeepAspectRatio)); ui->username->setPlaceholderText("Entrer votre nom"); ui->password->setPlaceholderText("Entrer votre mot de passe"); ui->email->setPlaceholderText("Entre ton adresse email"); ui->nom_2->setPlaceholderText("Entrer votre nom"); ui->motdepasse_2->setPlaceholderText("Entrer votre mot de passe"); } MainWindow::~MainWindow() { delete ui; } void MainWindow::on_pushButton_clicked() { // Connexion à ma base de données Mysql database = QSqlDatabase::addDatabase("QSQLITE"); database.setHostName("localhost"); database.setUserName("root"); database.setPassword(""); database.setDatabaseName("psaut2"); if(database.open()) { // Récupérer les données des champs de saisie QString username = ui->username->text(); QString password = ui->password->text(); QString email = ui->email->text(); // Lancer notre requête d'insertion QSqlQuery qry; qry.prepare("INSERT INTO users (username, password, email)" "VALUES (:username, :password, :email)"); qry.bindValue(":username", username); qry.bindValue(":password", password); qry.bindValue(":email", email); if(qry.exec()) { QMessageBox::information(this, "Inséré", "Insertion des données réussi"); }else{ QMessageBox::information(this, "Non Inséré", "Les données ne se sont pas insérées"); } }else { QMessageBox::information(this, "Non connectée", "La base de données n'est pas connectée"); } }
Ma BDD:
Merci !
-
wrote on 23 Apr 2019, 10:35 last edited by
Bonjour,
A mon avis, il ne faut pas faire le database.setDatabaseName, car la requête est effectuée sur la base par défaut et pas sur psaut2.
Ou bien il faut passer database dans le constructeur de qry.