Php PDO语句上的字符串编码问题->;bindParam()?

Php PDO语句上的字符串编码问题->;bindParam()?,php,httpwebrequest,pdo,request,Php,Httpwebrequest,Pdo,Request,我试图从一个$\u请求var中的字符串执行一个简单的SELECT语句,但我的PDO语句似乎不喜欢字符串格式,为什么 我的$\u请求var包含一个类似Hello+World的字符串,因此我需要将+替换为空白,以正确执行选择语句 // the data returned is Hello+World $phrase = str_replace ("+", " ", $_REQUEST["my_data"]); $phrase_select = $connection->prepare ("S

我试图从一个
$\u请求
var中的字符串执行一个简单的
SELECT
语句,但我的PDO语句似乎不喜欢字符串格式,为什么

我的
$\u请求
var包含一个类似
Hello+World
的字符串,因此我需要将
+
替换为空白,以正确执行
选择
语句

// 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

如果我用字符串“
Hello+World
”手动选择
,它可以正常工作,但如果我用
$\u请求[“我的数据”]
执行,它将无法工作,我错了吗?
如果我打印
$\u请求[“我的数据”]
它返回准确的
Hello+World

您不必在绑定参数周围添加“..”,pdo会为您这样做的

谢谢!我需要更多的练习来清楚地理解PDO课程