转义 Javascript SQL 查询中的特殊字符



我正在尝试使用来自输入的变量发送带有javascript的SQL查询。在此输入中,可以输入 ' 和 " 等字符以及其他字符。

这是我的脚本函数的样子:

function insertJobDesc (r) {
        rowid=r;
        var qty = document.getElementById('Qty' + r).value;
        var desc = document.getElementById('Desc' + r).value;
        desc = desc.replace(/&/g, "&amp;").replace(/>/g, "&gt;").replace(/</g, "&lt;").replace(/"/g, '"&quot;"').replace(/'/g, '"&#039;"');
        sendAsync("editDatabase.php?sql=UPDATE+jobdesc+SET+qty="+qty+",+description='"+desc+"',+rowID="+rowid+"+WHERE+id="+rowid+"+AND+jobID="+jobID);
    }

我想发送的"desc"值的示例是:80-0234-1 6'5" 门所以它是数字、字母和特殊字符的组合。我试图更换它们中的每一个,但没有成功。

有什么想法吗?

Use encodeURIComponent()

function insertJobDesc (r) {
    rowid=r;
    var qty = document.getElementById('Qty' + r).value;
    var desc = encodeURIComponent(document.getElementById('Desc' + r).value);
    sendAsync("editDatabase.php?sql=UPDATE+jobdesc+SET+qty="+qty+",+description='"+desc+"',+rowID="+rowid+"+WHERE+id="+rowid+"+AND+jobID="+jobID);
}

免责声明:永远不要做这样的事情...

最新更新