谁对PhoneGap存储有所了解

时间:2012-11-02 10:11:47

标签: javascript ajax sqlite cordova

我正在尝试开发一个Android应用程序,这个脚本将在我的手机上复制一个数据库表,但在执行后他会在下面显示这个错误

//---------------Copier-------------------------    

 $.ajax({
         type: "POST",
         url: "http://10.0.2.2:1998/bYzance_web_service/get_all_PhrasesTypes.asmx/Get_all_PrasesTypes",
         contentType: "application/json; charset=utf-8",
         dataType: "json",
         async : false,
         success: function (data)
          {
             alert("success: function (data)");

             var result = $.parseJSON(data.d); 

             alert(result[0].Phrase);

             for (i = 0; i < result.length; i++) 
             {                 
                 tx.executeSql("INSERT INTO PhrasesTypes (idPhrase,idPhraseES,idRubrique,idTypeTravauxAffichage,Phrase,AidePhrase,AvertissementPhrase,OrdrePhrase,QuotationParDefaut,Published)"
+  " VALUES ('"+result[i].IdPhrase+"',' "+result[i].IdPhraseES+" ',' "+result[i].IdRubrique+" ',' "+result[i].IdTypeTravauxAffichage+" ','"+mysql_real_escape_string(result[i].Phrase)+"',' "+result[i].AidePhrase+" ',' "+result[i].AvertissementPhrase+" ','"+result[i].OrdrePhrase+"','"+result[i].QuotationParDefaut+"','"+result[i].Published+" ')");
       console.log(i);
    }

         },
         error: function (e)
          {
            alert("URL du web service:  "+serviceURL+"get_all_PhrasesTypes.asmx/Get_all_PrasesTypes");

         }

     });//fin Ajax
  

sqlite返回:错误代码= 1,msg接近“accunedifined”:语法   错误

4 个答案:

答案 0 :(得分:1)

看起来该声明无效。你只需添加字符串,甚至使用函数mysql_real_escape_string,这是一个PHP函数,除非你在Javascript中定义它。如果这些字符串中的任何一个包含无效字符,尤其是',则您的语句将变为无效。

最好的办法是找到一种查看生成的SQL的方法。您可能会立即发现错误,但如果没有,您可以在此处发布生成的SQL,以便我们查看。

答案 1 :(得分:0)

您可能希望console.log获取result数组值。我认为你有可能某些值包含一个使字符串SQL无效的引号。在结果中查找'accunedifined

答案 2 :(得分:0)

将PHP代码复制到JavaScript后删除mysql_real_escape_string

答案 3 :(得分:0)

在你mysql_real_escape_string中,添加一些逻辑来复制单引号:

// Note: replaceAll doesn't work, you need to implement it
str = str.replaceAll("'","''");

一些replaceAll想法: Replace all strings in dom element