"SQLSTATE[HY093] was not definedArray: comment corriger?"

Résolu/Fermé
modemo2018 Messages postés 231 Date d'inscription vendredi 15 novembre 2019 Statut Membre Dernière intervention 13 octobre 2022 - Modifié le 25 août 2022 à 06:47
modemo2018 Messages postés 231 Date d'inscription vendredi 15 novembre 2019 Statut Membre Dernière intervention 13 octobre 2022 - 29 août 2022 à 15:16

Bonjour

Depuis des jours je suis bloqué au niveau de l'insertion dans la table "Tempo", je reçois cette erreur sans cesse:

Erreur lors de l'enregistrement en BDD ! SQLSTATE[HY093]: Invalid parameter number: parameter was not definedArray ( [:id] => 1 [:reçois] => BNB(Bep-2) [:donne] => Bitcoin(BTC) [:date] => jeudi 25 août 2022 )

Voici la partie du code concerné:

	<?php include("connexion.php");

$donnees = !empty ( $_SESSION['id'] ) ? $_SESSION['id'] : NULL;	
$recois = !empty ( $_POST['reçois'] ) ? $_POST['reçois'] : NULL;
$donne = !empty ( $_POST['donne'] ) ?$_POST['donne'] : NULL;
	
		
			
setlocale(LC_TIME, 'fr_FR');
date_default_timezone_set('Europe/Paris');
$date = utf8_encode(strftime('%A %d %B %Y'));	
$mois = utf8_encode(strftime('%B'));	
	
									
if(!empty ( $_POST['reçois'] )) {
try {	
    $sql = 'INSERT INTO tempo(id,reçois,donne,date) VALUES(:id,:reçois,:donne,:date)';
	  
	  
$datas = array(':id'=>$donnees,':reçois'=>$recois,':donne'=> $donne,':date'=>$date); 
	  
    try {
      $req =$bdd->prepare($sql);
      if ( $req->execute ($datas) ) {
       
      } else {
        echo "<br> Erreur lors de l'enregistrement... <br>";
        print_r ( $datas );
        exit;
      }
    } catch ( Exception $e ) {
      // en cas d'erreur :
      echo "<br> Erreur lors de l'enregistrement en BDD ! " . $e->getMessage ();
      print_r ( $datas );
      exit;
    }	
  } catch ( Exception $e ) {
    // en cas d'erreur :
    echo " Erreur ! " . $e->getMessage ();
    print_r ( $datas );
    exit;
  }	
header('Location:achat-vente1.php');		
//exit;
}?>	

Voici la capture de la table "tempo":

Ce type d'erreur est signalé lorsqu'il ya une variable de plus dans le code d'Insertion, ou une variable qui n'est pas definie, lorsque je parcours mon code, je ne vois pas cette variable de plus, j'ai 4 case de ma BDD pour 4 variable

( [:id] => 1

[:reçois] => Francs CFA(XAF)

[:donne] => Ethereum(ETH)

[:date] => jeudi 25 août 2022 )

Quelqu'un peut-il m'aider a y voir plus clair SVP ?

Cordialement

1 réponse

jordane45 Messages postés 37857 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 4 décembre 2023 4 610
25 août 2022 à 07:53

Bonjour

Déjà.. ta question concerne le php et non le mysql à proprement parler 

Je déplace donc (encore .) ta question dans le bon forum.

Ensuite..une date dans mysql se Stocke dans un champ de type DATE et doit être au format Y-m-d.

Er enfin.. on n'utilise jamais de caractères spéciaux dans le nom d'un champ d'une table.. ni dans le nom d'une variable. Retire donc cette cédille...


.
Cordialement,
Jordane

0
modemo2018 Messages postés 231 Date d'inscription vendredi 15 novembre 2019 Statut Membre Dernière intervention 13 octobre 2022
25 août 2022 à 10:46
Merci pour lacorrection,je m'y applique puis je confirme
0
modemo2018 Messages postés 231 Date d'inscription vendredi 15 novembre 2019 Statut Membre Dernière intervention 13 octobre 2022
Modifié le 29 août 2022 à 15:17

J'ai modifié et ça marché, merci beaucoup

0