也许我错了,但对我来说它不起作用,
我正在尝试使用mysql_real_escape_string()
这样的$_POST['value'];
功能,
mysql_real_escape_string($_POST['value']);
但它没有用,但如果我试试这个,
$value = $_POST['value'];
mysql_real_escape_string($value);
它完美无缺,有什么建议吗?
编辑:
我的代码是这样的,
$post = array('id', 'name');
$postArray = array();
foreach($post as $pa){
$postArray[$pa] = mysql_real_escape_string($_POST[$pa]);
}
答案 0 :(得分:6)
您是否将mysql_real_escape_string()
的结果分配给任何内容?它不会就地修改变量。
$value = mysql_real_escape_string($_POST['value']);
要回复您的修改,您的foreach
不应该循环$post
,而不是$postArray
吗?
foreach($postArray as $pa){
应该是......
foreach($post as $pa){
第二次修改:请使用此代码告诉我们输出的内容:
var_dump($_POST);
$post = array('id', 'name');
$postArray = array();
foreach($post as $pa){
$postArray[$pa] = mysql_real_escape_string($_POST[$pa]);
}
var_dump($postArray);
最终修改:
好的,你的问题是你的传入的post变量被读作数组,因此你不能直接在那些上调用mysql_real_escape_string()
(因为它是为字符串设计的,而不是数组)。
将您的代码更改为:
$post = array('id', 'name');
$postArray = array();
foreach($post as $pa){
if(is_array($_POST[$pa])) {
$postArray[$pa] = mysql_real_escape_string($_POST[$pa][0]);
} else {
$postArray[$pa] = mysql_real_escape_string($_POST[$pa]);
}
}
事情应该有效。