Bonjour à tous,

J'ai cherché dans la FAQ et ce qui a déjà été posté mais je n'ai rien trouvé qui correspondait à mon problème.

Je m'explique :

j'ai un formulaire sur ma page web sur laquelle l'utilisateur remplit certains champs.
Je transmet en post les infos saisies à mon script php qui va les traiter.
J'affecte ensuite chaque champ à une variable :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
 
if(isset($_POST['checkRecycle']))
			$isRecycle = 1;
		else
			$isRecycle = 0; //checkbox
		$confidentiel1          = $_POST['confidentiel1'];
		$dateMontage          = $_POST['champDateMontage'];
		$codeConteneur       = $_POST['numConteneur'];
		$composant1           = $_POST['composant1']; 
		$composant2           = $_POST['composant2']; 
		$confidentiel2          = $_POST['confidentiel2'];
		$composant3           = $_POST['composant3']; 
		$composant4           = $_POST['composant4']; 
		$composant5           = $_POST['composant5']; 
		$composant6           = $_POST['composant6']; 
		$composant7           = $_POST['composant7']; 
		$commentaire          = $_POST['commentaire'];
		if(isset($_POST['shunt']))
			$shunt     = $_POST['shunt'];
		else
			$shunt     = 0;
 
               $idConteneur = $bdd->prepare('SELECT idConteneur FROM CONTENEUR WHERE codeConteneur = :codeConteneur');
		$idConteneur->execute(array(
									'codeConteneur' => $codeConteneur
									)
								);
 
               $idMessage   = $bdd->prepare('SELECT idMessage   FROM MESSAGE   WHERE   texteMessage = :contenuMessage');
		$idMessage->execute(array(
								  'contenuMessage' => $commentaire
								 )
							);
J'ai ensuite une requête qui met permet d'insérer mes infos dans ma base de données :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
$reqAjoutTabMontage = $bdd->prepare('INSERT INTO MONTAGE(dateMontage, nbShuntMontage, recycleMontage, idConteneur, idMessage) VALUES (:dateMontage, :nbShuntMontage, :recycleMontage, :idConteneur, :idMessage)');
		$reqAjoutTabMontage->execute(array(
											'dateMontage'      => $dateMontage,
											'nbShuntMontage'   => $shunt,
											'recycleMontage'   => $isRecycle,
											'idConteneur'      => $idConteneur,
											'idMessage'        => $idMessage
										  )
									);
Et c'est là qu'apparaît mon problème.

Catchable fatal error: Object of class PDOStatement could not be converted to string in /var/www/Plateforme/includes/functions/function.ajoutMontage.php on line 80
La ligne 80 correspond à ");" j'en déduit donc que l'erreur se situe dans le dernier execute.

J'ai fait un var_dump de mes variables et obtient :

int(1) string(4) "xxxx" string(10) "06/15/2015" string(13) "confidentiel1" string(10) "composant1" string(10) "composant2" string(13) "confidentiel2" string(10) "composant3" string(10) "composant4" string(10) "composant5" string(10) "composant6" string(10) "composant7" string(12) "commentaires" string(1) "4"
object(PDOStatement)#2 (1) { ["queryString"]=> string(70) "SELECT idConteneur FROM CONTENEUR WHERE codeConteneur = :codeConteneur" }
Le problème est donc sur le code conteneur qui est un object.
Je ne sais pas trop comment résoudre ce problème et ne comprend pas le "could not be converted to string" sachant que je cherche un int.

Merci à ceux qui prendront le temps de lire et de répondre !