我在我的 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) 是我的包装函数,它添加了addlashes函数。
假设我在车库名称中输入 ASWT 的技术
我使用这个 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 中显示的内容
而在应用了 addlashes ($string->formatInput(...)) 之后,它应该类似于 ASWT\'s\'。
请告诉我我错在哪里以及为什么不应用 addlashes 功能。
这个语法正确吗?
$name = $formData["name"] = $string->formatInput($session->getSession("mechanic_buy_name"), 1);
当我回显它时,$name 没有显示转义字符。
非常感谢任何帮助。