Erreur ! SQLSTATE[22007]: Invalid datetime format: 1292 Truncated incorrect

Résolu/Fermé
modemo2018 Messages postés 226 Date d'inscription vendredi 15 novembre 2019 Statut Membre Dernière intervention 13 octobre 2022 - 15 août 2020 à 14:48
modemo2018 Messages postés 226 Date d'inscription vendredi 15 novembre 2019 Statut Membre Dernière intervention 13 octobre 2022 - 21 août 2020 à 10:23
Bonjour à tous, j'ai un programme qui envoie une requête pour supprimer des donnée dans la BDD, ce code je l'ai copier à partir d'une autre page qui fonctionne sans problème et j'ai juste changé de paramêtre mais depuis il me renvoit cette erreur

Erreur ! SQLSTATE[22007]: Invalid datetime format: 1292 Truncated incorrect DOUBLE value: '2; 'Array ( [0] => 2; [1] => août )

voici mon code suppression


if ( $choix == 'supprimenote') {
	
	echo $mois; echo $ideleve;
	
	
$sql = 'DELETE FROM note WHERE ideleve = ? AND mois = ?';
$datas = array($ideleve, $mois);
try{
  $req = $bdd->prepare($sql);
  $req->execute($datas);  
} catch ( Exception $e ) {
    // en cas d'erreur :
    echo " Erreur ! " . $e->getMessage ();
    print_r ( $datas );
    exit;
  }	
	try
    {		
 $req12 = $bdd->prepare('SELECT moyene FROM general WHERE id = ?  AND mois = ? AND an = ?');
	
	$req12->execute(array($id,  $mois, $annee ));	
	 }
    catch(Exception $e)
    {
        die('Erreur : '.$e->getMessage());
    }		  
$moyene =  $req12->fetch();		
	
if ( !empty($moyene['moyene'])) {
	
	
$sql = 'DELETE FROM general WHERE id = ? AND mois = ?';
$datas = array($id $mois);
try{
  $req = $bdd->prepare($sql);
  $req->execute($datas);  
} catch ( Exception $e ) {
    // en cas d'erreur :
    echo " Erreur ! " . $e->getMessage ();
    print_r ( $datas );
    exit;
  }		

  }	



Je comprend pas, quelqu'un peut-il me dire ce qui m'échappe dans ce code SVP?

2 réponses

jordane45 Messages postés 38289 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 novembre 2024 4 703
15 août 2020 à 16:08
Bonjour,

Encore une fois.. tu copies/colles du code sans le comprendre !

Encore une fois.. tu postes ta question dans le forum mysql ... alors que je pense que le souci se situe au niveau du code PHP....

Encore une fois ... tu poses ta question sur le forum sans avoir essayé de comprendre le message d'erreur...

Encore une fois... tu poses ta question sur le forum sans avoir essayé de débuguer ton code à l'aide de var_dump / echo de tes variables...

Bref....

Commence par faire des var_dump de tes variables $mois, $annee et montre nous ce que ça te retourne.

Ajoute également des echos dans ton code (dans chaque catch ) ( echo "requete 1 ";... echo "requete 2 "; ... etc.... ) histoire de savoir sur quelle requête il bloque... et en fonction, montre nous la structure (via un DUMP par exemple ) de la table concernée. ( note ? moyenne ou général ?? )

Après.... je suppose, vu le message d'erreur... que ta table utilise un champ DATE ou DATETIME... et que toi, tu essaies de lui envoyer un array contenant les valeurs 2 et août...

2