Je n'arrive pas a trouver mon problème

Résolu/Fermé
Youn_3451 Messages postés 39 Date d'inscription lundi 19 octobre 2020 Statut Membre Dernière intervention 6 avril 2021 - 19 oct. 2020 à 19:06
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 - 23 oct. 2020 à 08:28
Bonjour je réalise un site web pour mon entreprise et je rencontre un problème qui m'énerve énormément.

l'erreur est :

Fatal error: Uncaught Error: Call to undefined method PDO::insert() in /home/u243663731/domains/nidev-educatio.xyz/public_html/html/ltr/app-devis-add.php:54 Stack trace: #0 {main} thrown in /home/u243663731/domains/nidev-educatio.xyz/public_html/html/ltr/app-devis-add.php on line 54

et voici mon code , si vous avez une autre manière de faire la requête je suis preneur.
Aidez-moi je suis a bout^^


<!--PHP-->
<?php

    session_start();
    
    $servername = 'u243663731_******';
        $username = 'u243663731_*****';
        $password = '**********';
            
            try{
                $bdd = new PDO('mysql:host=localhost;dbname=u243663731_coqpix', $username, $password);
            }catch(PDOException $e)
            {
                print "Erreur:". $e->getMessage();
                die;
            }
    
    if(isset($_SESSION['id'])){
        header('Location: index.php');
        exit;
    }
    
    if(!empty($_POST)){
        extract($_POST);
        $valide = true;
    }
    
    if(isset($_POST['insert'])){
        
        $numerosdevis = htmlentities(trim($numerosdevis));
        $date = htmlentities(trim($date));
        $dateecheance = htmlentities(trim($dateecheance));
        $nomproduit = htmlentities(trim($nomproduit));
        $devispour = htmlentities(trim($devispour));
        $adresse = htmlentities(trim($adresse));
        $email = htmlentities(strtolower($email));
        $departement = htmlentities(trim($departement));
        $article = htmlentities(trim($article));
        $referencearticle = htmlentities(trim($referencearticle));
        $cout = htmlentities(trim($cout));
        $quantite = htmlentities(trim($quantite));
        $remise = htmlentities(trim($remise));
        $tax1 = htmlentities(trim($tax1));
        $tax2 = htmlentities(trim($tax2));
        $modalite = htmlentities(trim($modalite));
        $note = htmlentities(trim($note));
        
    }
    
    if($valide = true){
        
        $date_creation_devis = ('Y-m-d H:i:s');
        
        $bdd->insert('INSERT INTO utilisateur (numerosdevis, date, dateecheance, nomproduit, devispour, adresse, email, departement, article, referencearticle, cout, quantite , remise, tax1, tax2, mondalite, note) VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)',
            array($numerosdevis, $date, $dateecheance, $nomproduit, $devispour, $adresse, $email, $departement, $article, $referencearticle, $cout, $quantite , $remise, $tax1, $tax2, $mondalite, $note));
            header('Location: index.php');
            exit;
    }

    
?>
<!--PHP-->

1 réponse

jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650
19 oct. 2020 à 19:18
Bonjour,

Tout simplement ... il n'existe pas de methode "insert"
$bdd->insert(


D'ailleurs, pour que ton code soit propre, je t'invite à utiliser les requêtes préparées et à activer l'affichage des erreurs PDO au niveau de ta connexion.
Pour ça, je t'invite à appliquer ce qui est indiqué ici :
https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs

Et pour aller un peu plus loin
https://www.commentcamarche.net/faq/27489-pdo-une-autre-facon-d-acceder-a-vos-bases-de-donnees

.

0
Youn_3451 Messages postés 39 Date d'inscription lundi 19 octobre 2020 Statut Membre Dernière intervention 6 avril 2021
20 oct. 2020 à 10:32
Bonjour, j'ai modifier la requête et j'ai mit en place comme demander les lignes concernant les erreurs,

Mais le problème maintenant dit ca :

Erreur : SQLSTATE[HY000] [1045] Access denied for user 'u243663731_admin'@'localhost' (using password: YES)

alors que username, le name de la base donnée , et le password son juste et j'en suit sur a 100%



Mon nouveaux code :
1- Connexiondb

<?php 
    try 
    {
        $bdd = new PDO("mysql:host=localhost;dbname=u243663731_coqpix;charset=utf8", 'u243663731_admin', 'Coqpix123');
    }
    catch(Exception $e)
    {
        die('Erreur : '.$e->getMessage());
    }
?>


et la requête

<?php
    
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);



    require_once 'php/connexiondb.php';
    
    if(isset($_POST['numerosdevis']) && isset($_POST['date']) && isset($_POST['dateecheance']) && isset($_POST['nomproduit']) && isset($_POST['devispour']) && isset($_POST['adresse']) && isset($_POST['email'])
     && isset($_POST['departement']) && isset($_POST['article']) && isset($_POST['referencearticle']) && isset($_POST['cout']) && isset($_POST['quantite']) && isset($_POST['remise']) && isset($_POST['tax1']) && isset($_POST['tax2'])
      && isset($_POST['modalite']) && isset($_POST['note']))
    {
        $numerosdevis = htmlspecialchars($_POST['numerosdevis']);
        $date = htmlspecialchars($_POST['date']);
        $dateecheance = htmlspecialchars($_POST['dateecheance']);
        $nomproduit = htmlspecialchars($_POST['nomproduit']);
        $devispour = htmlspecialchars($_POST['devispour']);
        $adresse = htmlspecialchars($_POST['adresse']);
        $email = htmlspecialchars($_POST['email']);
        $departement = htmlspecialchars($_POST['departement']);
        $article = htmlspecialchars($_POST['article']);
        $referencearticle = htmlspecialchars($_POST['referencearticle']);
        $cout = htmlspecialchars($_POST['cout']);
        $quantite = htmlspecialchars($_POST['quantite']);
        $remise = htmlspecialchars($_POST['remise']);
        $tax1 = htmlspecialchars($_POST['tax1']);
        $tax2 = htmlspecialchars($_POST['tax2']);
        $modalite = htmlspecialchars($_POST['modalite']);
        $note = htmlspecialchars($_POST['note']);
        
        $one = 1;

        if($one == 1){ 

                            $insert = $bdd->prepare('INSERT INTO devis(numerosdevis, date, dateecheance, nomproduit, devispour, adresse, email, departement, article, referencearticle, cout, quantite, remise, tax1, tax2, modalite, note) VALUES(:numerosdevis, :date, :dateecheance, :nomproduit, :devispour, :adresse , :email, :departement, : article, :referencearticle, :cout , :quantite, :remise, :tax1, :tax2, :modalite, :note)');
                            $insert->execute(array(
                                'numerosdevis' => $numerosdevis,
                                'date' => $date,
                                'dateecheance' => $dateecheance,
                                'nomproduit' => $nomproduit,
                                'devispour' => $devispour,
                                'adresse' => $adresse,
                                'email' => $email,
                                'departement' => $departement,
                                'article' => $article,
                                'referencearticle' => $referencearticle,
                                'cout' => $cout,
                                'quantite' => $quantite,
                                'remise' => $remise,
                                'tax1' => $tax1,
                                'tax2' => $tax2,
                                'modalite' => $modalite,
                                'note' => $note
                            ));

                            header('Location:inscription.php?reg_err=success');
        }else header('Location: inscription.php?reg_err=already');
    }
    
?>
0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650 > Youn_3451 Messages postés 39 Date d'inscription lundi 19 octobre 2020 Statut Membre Dernière intervention 6 avril 2021
23 oct. 2020 à 08:28
Déjà, tu n'as pas appliqué ce qui est indiqué dans le lien que je t'ai donné :
https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs

Ensuite, vu le message d'erreur c'est soit que tu as un souci avec les identifiants de ta bdd.... soit le souci se situe au niveau du serveur (et là, faut voir avec ton hébergeur)
0