Insertion de données dans une base

Petit nouveau ! | 5 Messages

04 janv. 2023, 23:03

Bonjour,
je dois faire un site de vente de vetement pour l'école, donc je ne connais pas encore bien le php et j'ai presque juste suivi le tuto de mon prof
le problème est que lorsque je soumet le formulaire pour ajouter le produit en ligne, les données ne s'ajoute pas a la base

le 1er code est la bas de ma page index qui récupère les données du formulaire et appelle la fonction ajouter()
le 2ème est la fonction ajouter (si vous avez des doutes sur le require('connexion.php') ce n'est pas ça j'ai déjà testé avant)

j'ai refais un autre test directement la où il y a la fonction pour l'appeller manuellement et j'ai obtenu cette erreur :
PDOStatement::execute(): SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens in C:\xampp\htdocs\shop_lucas\config\commandes.php on line 10

Merci d'avance pour l'aide !


<?php
    if(isset($_POST['valider']))
    {
        if(isset($_POST['image']) AND isset($_POST['type']) AND isset($_POST['modele']) AND isset($_POST['desc']) AND isset($_POST['taille']) AND isset($_POST['prix']))
        {
            if(!empty($_POST['image']) AND !empty($_POST['type']) AND !empty($_POST['modele']) AND !empty($_POST['desc']) AND !empty($_POST['taille']) AND !empty($_POST['prix']))
            {
                $image = htmlspecialchars(strip_tags($_POST['image']));
                $type = htmlspecialchars(strip_tags($_POST['type']));
                $modele = htmlspecialchars(strip_tags($_POST['modele']));
                $desc = htmlspecialchars(strip_tags($_POST['desc']));
                $taille = htmlspecialchars(strip_tags($_POST['taille']));
                $prix = htmlspecialchars(strip_tags($_POST['prix']));

                try
                {

                    ajouter($type, $modele, $desc, $taille, $prix, $image);
                    
                }

                catch(Exception $e)
                {
                    $e->getMessage();
                }

            }
        }
    }
    
?
La fonction ajouter :
function ajouter($type_id,$modele, $desc, $taille, $prix, $image)
    {
        if(require("connexion.php"))
        {
            $req = $access->prepare("INSERT INTO produits (type_id, modele, description, taille, prix, image) VALUES ($type_id,'$modele', '$desc', '$taille', $prix, '$image')");

            $req -> execute(array($type_id,$modele, $desc, $taille, $prix, $image));

            $req -> closeCursor();
        }
        else 
        {
            echo 'la connexion n\'est pas possible';
        }
    }

Mammouth du PHP | 2703 Messages

04 janv. 2023, 23:05

PDOStatement::execute(): SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens in C:\xampp\htdocs\shop_lucas\config\commandes.php on line 10
que comprenez-vous de ce message d'erreur ?
quel est l'exemple donné par votre prof ou par la doc ?

Petit nouveau ! | 5 Messages

04 janv. 2023, 23:12

Le message d'erreur m'a l'air de dire que, il n'y a pas le bon nombre de paramètres lorsqu'on execute la ligne 10.
Dans ma table produit de ma base de données j'ai bien 7 attributs dont 1 qui s'auto incrémente, donc je l'ai pas mise a l'execution de la ligne

Mammouth du PHP | 2703 Messages

04 janv. 2023, 23:15

quel est l'exemple donné par votre prof ou par la doc ?

Petit nouveau ! | 5 Messages

04 janv. 2023, 23:18

je ne sais pas si j'ai bien compris la question, mais notre prof nous a donné un code php a completer, tel que les attributs, les commandes pour la base de donnees.
sinon je n'ai pas d'exemple en soit

Mammouth du PHP | 2703 Messages

04 janv. 2023, 23:21

donc sans rien avoir, vous avez imaginé qu'il existait une fonction prepare, une fonction execute ?

Petit nouveau ! | 5 Messages

04 janv. 2023, 23:23

non, j'ai regardé pas mal de vidéo youtube rapidement en essayant de prendre des bout de code des différentes vidéos qui d'après moi allait bien avec ce que je cherchais à faire
et le prof a quand meme donné une base de code a copier/coller
Modifié en dernier par LucasStagnette le 04 janv. 2023, 23:24, modifié 1 fois.

Mammouth du PHP | 2703 Messages

04 janv. 2023, 23:24

quels sont ces bouts de code ?
que dit la doc sur ces 2 fonctions ?

Petit nouveau ! | 5 Messages

04 janv. 2023, 23:27

je me souviens pas exactement des bouts de codes, je viens de m'y remettre après un petit bout de temps
et pour la documentation sur ces fonctions je ne sais pas, je ne suis pas allé voir