Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/382.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL Insert语句在Javascript中不起作用_Javascript_Sql_Json_Html_Web Sql - Fatal编程技术网

SQL Insert语句在Javascript中不起作用

SQL Insert语句在Javascript中不起作用,javascript,sql,json,html,web-sql,Javascript,Sql,Json,Html,Web Sql,我试图使用JSON数组对象myJSONObject使我的WebSQL数据库流行起来,该数组对象称为costcodes 函数在单击时运行,数据库成功创建,但数据未插入数据库。它甚至不会抛出错误,它只是什么都不做 我最初的想法是数据没有正确转义,但我不知道确切的转义位置/方式。所以我被难住了 localDB = null; function initDB() { if (localDB==null) { var sho

我试图使用JSON数组对象myJSONObject使我的WebSQL数据库流行起来,该数组对象称为costcodes

函数在单击时运行,数据库成功创建,但数据未插入数据库。它甚至不会抛出错误,它只是什么都不做

我最初的想法是数据没有正确转义,但我不知道确切的转义位置/方式。所以我被难住了

    localDB = null;

    function initDB()
    {
        if (localDB==null)
        {
            var shortName = 'Costcode';
            var version = '1.0';
            var displayName = 'Costcode';
            var maxSize = 217802; // in bytes
            localDB = window.openDatabase(shortName, version, displayName, maxSize);
        }

    }
            function buildTable()
    {
       var sQuery = 'CREATE TABLE IF NOT EXISTS Costcode ('+
                    'id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,' +
                    'cost_code_no VARCHAR NULL,' +
                    'row_unique_no VARCHAR NULL,' +
                    'cost_class_no VARCHAR NULL,' +
                    'Table_Version VARCHAR DEFAULT "1.0");';
        try
        {
            initDB();
            localDB.transaction(function(transaction)
            {
                transaction.executeSql(sQuery, []);
                console.log('sucess');
            });
        }
        catch (e)
        {
           alert("Error: Unable to create table 'x" + "' " + e + ".");
           return;
       }    
    }


 function exeSQLFast()
    {

                initDB();
                localDB.transaction(function(transaction)
                {
                    for (var x = 0; x <myJSONObject.costcodes.length; x++)
                    {

                        var costcodeno = myJSONObject.costcodes[x].cost_code_no;
                        var rowuniqueid = myJSONObject.costcodes[x].row_unique_id;
                        var costclassno = myJSONObject.costcodes[x].cost_class_no;
                        console.log(costcodeno);
                        console.log(rowuniqueid); 
                        console.log(costclassno);
                    transaction.executeSql('INSERT INTO Costcode (cost_code_no, row_unique_id, cost_class_no) VALUES (? , ? , ?)',
                     [costcodeno,
                     rowuniqueid,
                     costclassno]
                     , function(transaction, results)
                        {
                            console.log(costcodeno);
                            console.log('hooray');
                        }

                    )};
                    }
            )}

</script>
</head>

<body onLoad="buildTable();">
<input type="button" onClick="exeSQLFast();" value='button'>
</body>
</html>
这看起来是个问题,不是吗

问题是我在insert语句中调用了行\唯一\无列行\唯一\ id。现在我觉得自己很愚蠢

但是,如果有人想知道如何正确地填充WebSQL数据库,那么您可以这样做。只是不要输入错误的列名


这我觉得很可怕。这就像一个Sql注入踢我的标志。我还没有做任何事情来保护它,但这并不是我真正关心的主要问题。我很好奇在哪里可以添加安全性,我在这种情况下没有特别的经验。不幸的是,我对WebSQL一无所知,但一般来说,我从不信任客户机。在接近任何类似SQL查询的内容之前,请检查、仔细检查并清理输入。您在客户端构建查询的事实是邀请某人对查询进行创新。在所有其他SQL实例中,我100%同意您的意见。然而,WebSQL需要客户端填充,因为它是基于浏览器的数据库。更不用说,如果有人注入这个存储在客户端的数据库,我也不会那么难过。包含实际信息的数据库无法从该特定脚本中访问。你只会为自己破坏webapp的功能。你能发布完整的代码吗?我试图重现这个错误。
cost_class_no: "    3"
cost_code_no: "      1000"
row_unique_id: 335