Résolu Erreur PHP que je n'arrive pas à résoudre

Statut
N'est pas ouverte pour d'autres réponses.

lose

Premium
Inscription
8 Septembre 2012
Messages
567
Réactions
155
Points
20 246
RGCoins
65
Hey

j'aurais besoins de l'aide pour une de mes pages (PHP), j'ai une erreur sans cesse que je n'arrive pas à résoudre

L'erreur:
Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY000]: General error: 1366 Incorrect integer value: '' for column 'id' at row 1' in C:\UwAmp\www\commander.php on line 124
( ! ) PDOException: SQLSTATE[HY000]: General error: 1366 Incorrect integer value: '' for column 'id' at row 1 in C:\UwAmp\www\commander.php on line 124



Mon code:
$icommande = $bdd->prepare('INSERT INTO commandes(id, numero_commande, etat, contact, jeu, formule, ip, date_commande, email_psn, mdp_psn, cancel_raison, code_crypter) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)');
$icommande->execute(array($id, $numero_commande, $etat, $contact, $jeu, $formule, $ip, $date_commande, $email_psn, $mdp_psn, $cancel_raison, $retour));


Ma table commandes:


merci à vous! :)
 
Hey

j'aurais besoins de l'aide pour une de mes pages (PHP), j'ai une erreur sans cesse que je n'arrive pas à résoudre

L'erreur:
Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY000]: General error: 1366 Incorrect integer value: '' for column 'id' at row 1' in C:\UwAmp\www\commander.php on line 124
( ! ) PDOException: SQLSTATE[HY000]: General error: 1366 Incorrect integer value: '' for column 'id' at row 1 in C:\UwAmp\www\commander.php on line 124



Mon code:
$icommande = $bdd->prepare('INSERT INTO commandes(id, numero_commande, etat, contact, jeu, formule, ip, date_commande, email_psn, mdp_psn, cancel_raison, code_crypter) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)');
$icommande->execute(array($id, $numero_commande, $etat, $contact, $jeu, $formule, $ip, $date_commande, $email_psn, $mdp_psn, $cancel_raison, $retour));


Ma table commandes:


merci à vous! :noel:

Déjà enlève l'id de ta requête, il est en auto increment dans ta base de donnée x)
 
Vérifie premièrement que la colonne id de la table commandes est en AUTO INCREMENT (A_I) :


EDIT: j'avais pas vu le screen mais c'est bon il est en AUTO INCREMENT ;)

Ensuite tu modifies un peu ton code pour donner quelque chose de plus propre et fonctionnel :

PHP:
$requete = $bdd->prepare("INSERT INTO commandes (id, numero_commande, etat, contact, jeu, formule, ip, date_commande, email_psn, mdp_psn, cancel_raison, code_crypter) VALUES ('', :insert_numero_commande, :insert_etat, :insert_contact, :insert_jeu, :insert_formule, :insert_ip, :insert_date_commande, :insert_email_psn, :insert_mdp_psn, :insert_cancel_raison, :insert_retour)");
$requete->execute(array(
"insert_numero_commande" => $numero_commande,
"insert_etat" => $etat,
"insert_contact" => $contact,
"insert_jeu" => $jeu,
"insert_formule" => $formule,
"insert_ip" => $ip,
"insert_date_commande" => $date_commande,
"insert_email_psn" => $email_psn,
"insert_mdp_psn" => $mdp_psn,
"insert_cancel_raison" => $cancel_raison,
"insert_retour" => $retour
));
$requete->closeCursor();

N'oublie pas que $insert_date_commande doit être inversé car phpmyadmin stocke les datetimes de ce type : Y-m-d H:i:s
Pour ce faire tu peux utiliser la fonction date :
PHP:
$new_date = date("Y-m-d H:i:s", strtotime($date_commande));
echo $new_date;

Si tu veux utiliser le datetime de l'instant T tu peux simplement utiliser NOW() pendant l'insert au lieu d'utiliser une variable.

PHP:
$requete = $bdd->prepare("INSERT INTO commandes (id, numero_commande, etat, contact, jeu, formule, ip, date_commande, email_psn, mdp_psn, cancel_raison, code_crypter) VALUES ('', :insert_numero_commande, :insert_etat, :insert_contact, :insert_jeu, :insert_formule, :insert_ip, NOW(), :insert_email_psn, :insert_mdp_psn, :insert_cancel_raison, :insert_retour)");
$requete->execute(array(
"insert_numero_commande" => $numero_commande,
"insert_etat" => $etat,
"insert_contact" => $contact,
"insert_jeu" => $jeu,
"insert_formule" => $formule,
"insert_ip" => $ip,
"insert_email_psn" => $email_psn,
"insert_mdp_psn" => $mdp_psn,
"insert_cancel_raison" => $cancel_raison,
"insert_retour" => $retour
));
$requete->closeCursor();
 
Dernière édition:
J'ai édité le titre de ta discussion pour que celle-ci soit plus compréhensible.

A l'avenir essaie de faire des titres plus longs et détaillés, plus le titre est long et détaillé, plus tu obtiendras de vues ainsi que des réponses . :tchuss:
 
Bonjour,

Je me permet de bumper cette demande d'aide mais si tu as une erreur pareille c'est que le type de données de la variable $id ne correspond à celui attendu en BDD, vérifie la valeur de cette variable :p

Bonne journée,
Rivals
 
Statut
N'est pas ouverte pour d'autres réponses.
Retour
Haut