dongnius85154 2016-10-18 21:48
浏览 24
已采纳

使用PHP为SQL数据库准备HTML表单输入

I'm currently testing a html form which sends the data through php to the sql database. The problem I'm facing is special characters break the form and don't update the database. I haven't tested all the special characters but mainly ` and ' are the culprits. I've tried mysql_escape_string, preg_replace and add_slashes with no success. What am I missing?

$description = preg_replace('/[^A-Za-z0-9\ %&$=+*?()!.-]/', ' ', $_POST['description']);
$description = preg_replace("/[
]/"," ",$description);

// Items Insert
foreach ($item as $index=>$value) {
$sqlItems .= "
    INSERT INTO quote_items (quote_id, item, description, amount, gst)
    VALUES ('$last_id', '$item[$index]', '$description[$index]', '$amount[$index]', '$gst[$index]');
";
}

Thanks in advance!

  • 写回答

2条回答 默认 最新

  • duanbairan4235 2016-10-18 22:46
    关注

    you can try this (a little dirty) but it should allow those 2 characters to be saved

    $sqlItems .= '
        INSERT INTO `quote_items` (quote_id, item, description, amount, gst)
        VALUES ("'.$last_id.'", "'.$item[$index].'", "'.$description[$index].'", "'.$amount[$index].'", "'.$gst[$index].'");
    ';
    

    EDIT: sorry had the quotes reversed

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?