Str_replace avec tableau php

Fermé
skflers61 Messages postés 43 Date d'inscription jeudi 15 novembre 2007 Statut Membre Dernière intervention 21 novembre 2014 - 26 mai 2014 à 08:05
Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 - 26 mai 2014 à 11:31
Bonjour,

j'ai un petit soucis avec un tableau en php.

Dans mon tableau, j'ai des valeurs dans lesquelles il y a des & et je voudrais les échapper en mettant un \ devant.

Mon tableau est créer après une requête sql.

Je voudrais faire un str_replace sur tous les éléments de mon tableau.

Voici mon code:
$resultats = $this->varSaisie->recupFinaliteParProjet($projet); 	
				
$resultats->setFetchMode(PDO::FETCH_OBJ);

while( $resultat = $resultats->fetch() ){
	$resultat = str_replace("&", "\&", $resultat);
        ...	
}


recupFinaliteParProjet est la fonction qui effectue ma requête sql.



Ceci me renvoie l'erreur:
Catchable fatal error: Object of class stdClass could not be converted to string 


Bon, l'erreur est assez explicite mais je ne sais pas comment corriger ça.



Merci pour vos réponse.
A voir également:

2 réponses

Bonjour

j'ai un petit soucis avec un tableau en php
Justement non ce n'est pas un tableau, c'est bien là le souci.

Pourquoi fais-tu $resultats->setFetchMode(PDO::FETCH_OBJ); alors que tu parles de tableau et que tu dis que le message est explicite ? Tu peux utiliser FETCH_NUM ou FETCH_ASSOC ou encore d'autres variantes, mais surtout pas FETCH_OBJ. Quand tu utilises FETCH_OBJ, tu récupères un objet et non pas un tableau.
0
Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 525
26 mai 2014 à 11:31
Salut,

Essaye comme ceci :
$resultats = $this->varSaisie->recupFinaliteParProjet($projet);
$resultats->setFetchMode(PDO::FETCH_OBJ);

$tableau = array();

while( $resultat = $resultats->fetch() ){
        $tableau[] = str_replace("&", "\&", $resultat->value);
}

var_dump($tableau);


Tu dois remplacer 'value' par le nom du champ sql que tu souhaites récupérer (cf. ta requête).

Bonne journée
0