Insert sur plusieurs tables avec une requête préparée sous php PDO
hamd18
Messages postés
7
Date d'inscription
Statut
Membre
Dernière intervention
-
hamd18 Messages postés 7 Date d'inscription Statut Membre Dernière intervention -
hamd18 Messages postés 7 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
je aimerai savoir comment faire une requête préparée insert SQL sur plusieurs tables à partir d'un seul formulaire avec PHP PDO , enfaîte j'ai essayé mais hélas je m'obtiens pas le résultat que je veux , j'ai la table bureau ( idbureau , designation , service_idservice 'est une clé étrangère venant de la table service)
et la table service ( idservice, designation ). je veux maintant à un seul formulaire avec les champs bureau et service , ajouter un bureau et un service avec une requête préparée d'insert ,
et j'ai un message d'erreur comme ceci : (!) Erreur fatale: exception PDO non détectée: SQLSTATE [22007]: format datetime non valide: 1366 Valeur entière incorrecte: 'INFORMATIQUE' pour la colonne `mon_parc`.`bureau`.`service_idservice` à la ligne 1 dans C: \ wamp \ www \ parc_info \ insburserv.php sur la ligne 19
(!) PDOException: SQLSTATE [22007]: Format datetime non valide: 1366 Valeur entière incorrecte: 'INFORMATIQUE' pour la colonne `mon_parc`.`bureau`.`service_idservice` à la ligne 1 dans C: \ wamp \ www \ parc_info \ insburserv. php en ligne 19
j’espère que j'ai pu bien expliqué mon problème , Merci d'avance
je aimerai savoir comment faire une requête préparée insert SQL sur plusieurs tables à partir d'un seul formulaire avec PHP PDO , enfaîte j'ai essayé mais hélas je m'obtiens pas le résultat que je veux , j'ai la table bureau ( idbureau , designation , service_idservice 'est une clé étrangère venant de la table service)
et la table service ( idservice, designation ). je veux maintant à un seul formulaire avec les champs bureau et service , ajouter un bureau et un service avec une requête préparée d'insert ,
// Posted Values $bureau=$_POST['bureau']; $service=$_POST['service']; // Query for Insertion $sql="INSERT INTO bureau (bureau.designation ,bureau.service_idservice ) VALUES(:b,:s)"; //Prepare Query for Execution $query = $DB_con->prepare($sql); // Bind the parameters $query->bindParam(':b',$bureau,PDO::PARAM_STR); $query->bindParam(':s',$service,PDO::PARAM_STR); // Query Execution $query->execute();
et j'ai un message d'erreur comme ceci : (!) Erreur fatale: exception PDO non détectée: SQLSTATE [22007]: format datetime non valide: 1366 Valeur entière incorrecte: 'INFORMATIQUE' pour la colonne `mon_parc`.`bureau`.`service_idservice` à la ligne 1 dans C: \ wamp \ www \ parc_info \ insburserv.php sur la ligne 19
(!) PDOException: SQLSTATE [22007]: Format datetime non valide: 1366 Valeur entière incorrecte: 'INFORMATIQUE' pour la colonne `mon_parc`.`bureau`.`service_idservice` à la ligne 1 dans C: \ wamp \ www \ parc_info \ insburserv. php en ligne 19
j’espère que j'ai pu bien expliqué mon problème , Merci d'avance
A voir également:
- Insert sur plusieurs tables avec une requête préparée sous php PDO
- Touche insert - Guide
- Comment faire une table des matières sur word - Guide
- Easy php - Télécharger - Divers Web & Internet
- Disk boot failure insert system disk and press enter - Guide
- Tables ascii - Guide
1 réponse
Bonjour,
Le message d'erreur retourné concerne la structure de ta table....
Il semble qu'il s'y trouve un champ de type datetime sans valeur par défaut....et vu que dans ta requête tu ne lui donnes aucune valeur pour ce champ.. tu as une erreur.
Et pour le second message... il attend un entier... pas une string !
Donc ton bind_param doit être du type PDO::PARAM_INT
Au passage, vu que tu fais du PDO, appliques les conseils donnés ici :
https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs
Le message d'erreur retourné concerne la structure de ta table....
Il semble qu'il s'y trouve un champ de type datetime sans valeur par défaut....et vu que dans ta requête tu ne lui donnes aucune valeur pour ce champ.. tu as une erreur.
Et pour le second message... il attend un entier... pas une string !
Donc ton bind_param doit être du type PDO::PARAM_INT
Au passage, vu que tu fais du PDO, appliques les conseils donnés ici :
https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs
je n'arrive pas à comprendre dans ma table bureau j'ai pas de champ datetime , rappel j'essaie une tel requête sur une table classique simple j'ai le résultat escompté.
Si c'est une vue.. tu ne pourras pas.
Si c'est une table... alors il ne devrait pas y avoir de souci.
Peux tu nous faire un DUMP de ta bdd ?