2010-02-06 10 views
2

J'essaie d'effectuer une simple instruction SELECT à partir d'une chaîne tirée d'un var $_REQUEST mais il semble que mon instruction PDO n'aime pas le format de chaîne, pourquoi?Problème d'encodage de chaîne sur PdoStatement-> bindParam()?

Mon $_REQUEST var contient une chaîne comme Hello+World, donc je dois remplacer + avec faire mes espaces blancs SELECT déclaration correctement.

// the data returned is Hello+World 
$phrase = str_replace ("+", " ", $_REQUEST["my_data"]); 

$phrase_select = $connection->prepare ("SELECT data_field FROM my_table WHERE phrase = ':phrase'"); 
$phrase_select->bindParam (":phrase", $phrase, PDO::PARAM_STR); 
$phrase_select->execute(); 
$data_field = $phrase_select->fetchColumn(); // return nothing 

Si je fais un SELECT manuellement avec une chaîne « Hello+World », il fonctionne sans problème, mais si je le fais avec $_REQUEST["my_data"] ça ne marchera pas, où je me trompe?
Si j'imprimer $_REQUEST["my_data"] le retourner exactement Hello+World

Répondre

2

vous ne devez pas ajouter le « .. » autour de votre borne param, fera que pdo pour vous

+0

merci! Je vais avoir besoin de plus de pratique pour comprendre clairement la classe PDO – vitto