Stripslashes无法正常工作

时间:2013-03-23 22:09:09

标签: php stripslashes

我在我的2步表单中使用此代码,这里我在步骤2.php验证表单输入并将其保存在会话中,然后在步骤3.php页面我从会话中获取表单输入。另外我正在向他们提供$ formData数组,因为我需要在最后阶段再次重新运行验证代码。

    $name = $formData["name"] = $string->formatInput($session->getSession("mechanic_buy_name"), 1);
    $garage_name = $formData["garage_name"] = $string->formatInput($session->getSession("mechanic_buy_garage_name"), 1, "None");
    $address = $formData["address"] = $string->formatInput($session->getSession("mechanic_buy_address"), 1);

这里$ string-> formatInput(“STRING GOES HERE”,1)是我的包装函数,它添加了addslashes函数。

让我们假设我进入ASWT的'Tech into garage name

我使用此sql查询将记录保存到数据库

    $sql = "INSERT INTO ". TABLE_MECHANICS ."";
    $sql .= "(name, garage_name, address, town, county, postcode, mobile, landline, fax, email, website, services_other, start_date, duration, expiry_date, datecreated, datemodified) VALUES";
    $sql .= "('$name', '$garage_name', '$address', '$town', '$county', '$postcode', '$mobile', '$landline', '$fax', '$email', '$website', '$services_other', '$start_date', '$duration', '$expiry_date', NOW(), NOW())";
    $query = $mysql->query($sql);

但是当我通过phpmyadmin看到数据库时,我无法在引号前看到任何转义字符

这就是,garage_name在phpmyadmin中显示的内容 ASWT的

虽然应用了addslashes($ string-> formatInput(...))之后它应该像ASWT \'s \'。

请告诉我错误的地方以及为什么addlashes功能不适用。

这种语法是否正确?

$name = $formData["name"] = $string->formatInput($session->getSession("mechanic_buy_name"), 1);

$ name在回显时没有显示转义字符。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

如果您正在使用mysql扩展(您不应该使用),我将使用mysql_real_escape_string而不是addslashes。或者mysqli_real_escape_string如果你使用mysqli扩展名。或者使用准备好的陈述。