PDOStatement-> bindParam üzerinde string kodlama sorunu (?)

1 Cevap php

Neden benim PDO deyimi dize biçimi gibi değil ben bir $_REQUEST var alınan bir dize basit bir SELECT deyimi gerçekleştirmek için çalışıyorum ama görünüyor?

Benim $_REQUEST var Hello+World gibi bir dize içeriyorsa, bu yüzden ben doğru benim SELECT açıklama yapmak whitespaces ile + değiştirmeniz gerekir.

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

Ben bir SELECT elle bir dize ile "Hello+World" yaparsanız, o sorunsuz çalışıyor ama ben bunu yaparsam $_REQUEST["my_data"] o çalışmaz, nerede Yanılıyorsam?
Ben yazdırırsanız $_REQUEST["my_data"] geri dönmek tam Hello+World

1 Cevap

Eğer eklemek zorunda değilsiniz '..' ciltlenmiş param etrafında, PDO sizin için yapacak