PHP mysql_real_escape_string丢失值

时间:2011-11-22 03:09:00

标签: php sql code-injection

我有一个表单,用户可以使用复选框同时修改多个字段。我使用过mysql_real_escape_string($ _ POST [' doby']);完美之前,但由于某种原因,在这种情况下,当我尝试将其存储在变量中时,它会丢失值。这是我回复价值的代码:

 if(isset($_POST['edit_patient_insurance'])){

for($i=0;$i<=$_POST['n'];$i++)
{
    if($_POST['insurance'.$i]==1)
    {   

    $insurance_num = mysql_real_escape_string($_POST[insurance_num.$i]); 
    $relation = mysql_real_escape_string($_POST[relation.$i]); 
    $insured_cmp = mysql_real_escape_string($_POST[insured_cmp.$i]); 
    $insured_nm = mysql_real_escape_string($_POST['insured_nm'.$i]); 

//more POSTS here
    $insured_ssn = mysql_real_escape_string($_POST['ssn1']).mysql_real_escape_string($_POST['ssn2']).mysql_real_escape_string($_POST['ssn3']);

    $date = mktime(0,0,0, $dobm, $dobd, $doby);
    $idob=date('Y-m-d', $date);

//Try to get the mysql_real_ecape_string version
    echo $i;
    echo $insurance_num;
    echo $insured_nm;
 //Verify it's sending the correct information
    echo $_POST[insurance_num.$i];
    echo $_POST[insured_nm.$i];

    }   
}

}

所以,当我尝试这个时,$ insurance_num和$ insured_nm的echo不会返回任何值。但返回$ _POST值。我不明白发生了什么。

1 个答案:

答案 0 :(得分:0)

mysql_real_escape_string需要连接到mysql服务器。请确保您已创建连接。检查错误日志。