2014-10-20 9 views
-6

오랜 시간 문제가 있습니다.SQLite Syntax 오류 코드 (1)

나는 동적으로 다음과 같은 오류를 throw하는 안드로이드 SQLite 데이터베이스에 삽입 쿼리를 생성하고 있습니다.

 android.database.sqlite.SQLiteException: near "(": syntax error (code 1): , while compiling: 
      INSERT INTO 'contacts' (id, name, phone_number, email, fax, job, company, website, address, 
      mobile) VALUES(98,'Vijay Bachani','022 - 61608080','','','TRAVEL CONSULTANT','RIYA TRAVEL &  
     TOURS (I) PVT. LTD.','WWW.RIYA.TRAVEL','237 Gulab Building, P.D Mello Road, Mumbai, 400001',''), 
    (99,'Taha Udaipurwala','022 - 61608080','[email protected]','','JR. CONSULTANT','RIYA TRAVEL & TOURS 
    (I) PVT. LTD.','WWW.RIYA.TRAVEL','237 Gulab Building, P.D Mello Road, Mumbai, 400001',''),(100,'Salman Lakdawala','022 - 61608080','[email protected]','','JUNIOR CONSULTANT','RIYA TRAVEL & TOURS (I) PVT. LTD.','WWW.RIYA.TRAVEL','237 Gulab Building, P.D Mello Road, Mumbai, 400001','9768683322'),(101,'Vipul Kharat','022 - 61608080','[email protected]','','JR. CONSULTANT','RIYA TRAVEL & TOURS (I) PVT. LTD.','WWW.RIYA.TRAVEL','237 Gulab Building, P.D Mello Road, Mumbai, 400001','9768215903'),(102,'Abdul Rafiq Siddique','022 - 61608080','[email protected]','','JR. CONSULTANT','RIYA TRAVEL & TOURS (I) PVT. LTD.','WWW.RIYA.TRAVEL','237 Gulab Building, P.D Mello Road, Mumbai, 400001','9820327417'),(103,'Suryaji More','022 - 61608080','','','OFFICE ASSISTANT','RIYA TRAVEL & TOURS (I) PVT. LTD.','WWW.RIYA.TRAVEL','237 Gulab Building, P.D Mello Road, Mumbai, 400001',''),(104,'Wayne Joseph','022 - 61608080','','','SR. CONSULTANT','RIYA TRAVEL & TOURS (I) PVT. LTD.','WWW.RIYA.TRAVEL','237 Gulab Building, P.D Mello Road, Mumbai, 400001',''),(105,'GEORGE THOMAS','022 - 67772300','[email protected]','','GENERAL MANAGER','RIYA TRAVEL & TOURS (I) PVT. LTD.','WWW.RIYA.TRAVEL','M/1, Leela Business Park, Andheri Kurla road, Andheri (East), Mumbai - 400059','9820128819'),(106,'K P RAMKUMAR','022 - 67772300','[email protected]','','MANAGER','RIYA TRAVEL & TOURS (I) PVT. LTD.','WWW.RIYA.TRAVEL','M/1, Leela Business Park, Andheri Kurla road, Andheri (East), Mumbai - 400059','9619481065'),(107,'SANDESH CHAVAN','022 - 29258611','[email protected]','','ASST. MANAGER','RIYA TRAVEL & TOURS (I) PVT. LTD.','WWW.RIYA.TRAVEL','Atlanta Arcade, Ground Floor, Marol Church Road, Opp. The Leela, Andheri (E), Mumbai - 400 059','9619246722'),(108,'SUBRAMANIAN M S','022 - 61608080','[email protected]','','ASST. MANAGER','RIYA TRAVEL & TOURS (I) PVT. LTD.','WWW.RIYA.TRAVEL','237 Gulab Building, P.D Mello Road, Mumbai, 400001',''),(109,'JOVITA R. GONSALVES','022 - 29258611','[email protected]a.travel','','TEAM LEADER','RIYA TRAVEL & TOURS (I) 
PVT. LTD.','WWW.RIYA.TRAVEL','Atlanta Arcade, Ground Floor, Marol Church Road, Opp. The Leela, Andheri (E), Mumbai - 400 059','9881847272'),(110,'SALIM JAMADAR','022 - 
67772300','[email protected]','','SR. CONSULTANT','RIYA TRAVEL & TOURS (I) PVT. LTD.','WWW.RIYA.TRAVEL','M/1, Leela Business Park, Andheri Kurla road, Andheri (East), Mumbai - 400059','9820593817'),(111,'ROHAN SURVE','022 - 67772300','[email protected]','','ASST. MANAGER','RIYA TRAVEL & TOURS (I) PVT. LTD.','WWW.RIYA.TRAVEL','M/1, Leela Business Park, Andheri Kurla road, Andheri (East), Mumbai - 400059','8898211973'),(112,'NITHIN K','022 - 61608080','[email protected]','','ASST. MANAGER','RIYA TRAVEL & TOURS (I) PVT. LTD.','WWW.RIYA.TRAVEL','237 Gulab Building, P.D Mello Road, Mumbai, 400001',''),(113,'MANOJ TAMBE','022 - 61608080','[email protected]','','SR. OFFICER','RIYA TRAVEL & TOURS (I) PVT. LTD.','WWW.RIYA.TRAVEL','237 Gulab Building, P.D Mello Road, Mumbai, 400001',''),(114,'SUBASH N.L','022 - 29258611','[email protected]','','MANAGER','RIYA TRAVEL & TOURS (I) PVT. LTD.','WWW.RIYA.TRAVEL','Atlanta Arcade, Ground Floor, Marol Church Road, Opp. The Leela, Andheri (E), Mumbai - 400 059','9819517027'),(115,'DAVID M','022 - 29258611','[email protected]','','OFFICER','RIYA TRAVEL & TOURS (I) PVT. LTD.','WWW.RIYA.TRAVEL','Atlanta Arcade, Grou 

자바 코드 : 도움

+0

쿼리를 만들 때 어딘가에 공백을 추가하는 것을 잊었을 것입니다. 이 쿼리를 수행하는 코드를 게시 할 수 있습니까? – hrskrs

+0

자바 코드 – Amy

+0

을 추가하여 안드로이드에 데이터 폴더 안에 생성 된 sqlite 파일을 첨부 할 수 있습니까? –

답변

0

당신은 하나 INSERT으로 여러 행을 삽입하려는 경우

for (int i=0; i<flag; i++) { 

        JSONObject item = contactsdetails.getJSONObject(k); 
        int id = Integer.parseInt(item.getString("ID")); 
        String name = item.getString("Name"); 
        String phone = item.getString("Telephone"); 
        String email = item.getString("Email"); 
        String fax = item.getString("Fax"); 
        String company = item.getString("Company"); 
        String address = item.getString("Address"); 
        String job= item.getString("Job"); 
        String web = item.getString("Web"); 
        String mobile = item.getString("Mobile"); 

        //sqlString += "INSERT INTO '"+TABLE_CONTACTS+"' ("+KEY_ID+", "+KEY_NAME+", "+KEY_PH_NO+", "+KEY_EMAIL+", "+KEY_FAX+", "+KEY_JOB+", "+KEY_COMPANY+", "+KEY_WEBSITE+", "+KEY_ADDRESS+", "+KEY_MOBILE+") VALUES ("+id+",'"+name+"','"+phone+"','"+email+"','"+fax+"','"+job+"','"+company+"','"+web+"','"+address+"','"+mobile+"');"; 
        sqlString += "("+id+",'"+name+"','"+phone+"','"+email+"','"+fax+"','"+job+"','"+company+"','"+web+"','"+address+"','"+mobile+"'),"; 
        k++; 
       } 

정말 감사드립니다. 그것은 할 수 없습니다. 각 행에 하나의 INSERT이 필요합니다.

INSERT INTO 'contacts' (id, name, phone_number, email, fax, job, company, website, address, mobile) VALUES (98,'Vijay Bachani','022 - 61608080','','','TRAVEL CONSULTANT','RIYA TRAVEL & TOURS (I) PVT. LTD.','WWW.RIYA.TRAVEL','237 Gulab Building, P.D Mello Road, Mumbai, 400001','') 
INSERT INTO 'contacts' (id, name, phone_number, email, fax, job, company, website, address, mobile) VALUES (99,'Taha Udaipurwala','022 - 61608080','[email protected]','','JR. CONSULTANT','RIYA TRAVEL & TOURS (I) PVT. LTD.','WWW.RIYA.TRAVEL','237 Gulab Building, P.D Mello Road, Mumbai, 400001','') 

는 등등 ... 필요 INSERT 이들 각각은뿐만 아니라 하나 하나를 실행하고.

+0

두 번째 루프 반복에서 오류가 발생했습니다. 첫 번째 반복에서 한 통화에 500 개의 행을 삽입했습니다. – Amy

+0

죄송합니다. 내가 틀렸다고 생각합니다. SQL INSERT 구문은이를 허용하지 않습니다. – m0skit0

+2

@ m0skit0 : 실제로 유효한 구문 인 것으로 보입니다. http://sqlite.org/lang_insert.html – CommonsWare

1

문자열 연결을 제거하십시오. 위치 자리 표시 자로 ?을 사용하십시오. 이것은 무시하는 아포스트로피와 따옴표를 처리 할뿐만 아니라 SQL 주입 공격으로부터 사용자를 보호하는 데 도움이됩니다.

관련 문제