Erreur Insertion MySql



  • 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:

    alt text

    Merci !



  • 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.


Log in to reply