我用mysql_real_escape_string来逃避$this->piVars
….de/index.php?搜索类型=5

$searchGenre = mysql_real_escape_string($this->piVars[searchGenre]);
$result = $GLOBALS['TYPO3_DB']->exec_SELECTquery('*', 'item', 'genre = ' . $searchGenre, 'title', '');

print_r($this->piVars[searchGenre]);=字符串“5”。
var_dump($this->piVars[searchGenre]);=字符串(1)“9”
print_r($searchGenre)=空字符串。
var_dump($searchGenre)=bool(假)。
为什么?

最佳答案

这可能是因为您没有打开的mysql连接。您必须先有一个打开的连接才能使mysql_real_escape_string()工作。

mysql_connect('mysql_host', 'mysql_user', 'mysql_password') // open connection..
$searchGenre = mysql_real_escape_string($this->piVars[searchGenre]); // use it

注意:mysql_函数已弃用。将准备好的语句与pdo(或mysqli)一起使用。

09-25 19:55