2013-11-21 1 views
0

WebSQL 데이터베이스에 데이터를 INSERT하는 동적 함수를 생성하려고합니다. Zetakey가 인덱싱 된 DB를 지원하지 않기 때문에 인덱싱 된 DB를 사용할 수 없습니다.WebSQL : SQL 처리 중 오류 : 명령문 문자열의 '?'수가 인수 개수와 일치하지 않습니다.

formatfields = "one, two"; (up to an undefined number) 
formatqm = "?, ?"; 
formatvalues = "123, 456"; (dynamic user entries for x fields) 

누군가가 내가이 formatvalues ​​함께 할 수 있나요 말해 줄 수 :

tx.executeSql("INSERT INTO " + table + "(" + formatfields + ") 
VALUES (" + formatqm + ")", 
      [formatvalues], 
      webdb.onSuccess, 
      webdb.onError); 

무형 문화 유산은 덴 쿼리를 übergebe? 내가 직접 쓸 때 123, 456을 쓸 때.

미리 감사드립니다.

+0

아무도 없습니까? webSQL과 JS에 대해 알고있는 사람은 누구입니까? – number5

+0

array.push가 내 메서드가되었습니다.) – number5

+0

단지 메모를 추가하려면 executeSql()에서 두 번째 인수로 배열을 전달하는 경우 대괄호 ('[]')를 삭제하십시오. 예 :'tx.executeSql (query, formatvalues, webdb.onSuccess, webdb.onError);'. – Tayler

답변

0
/*array.push */ 

formatvalues = new Array; 

formatvalues.push("123"); 

등등!

1

테이블 열 필드를 동적으로 만들거나 변경하는 대신 레코드의 JSON 직렬화를 사용하십시오. 기본적으로 INSERT에 주어진 객체 데이터를 stringify 저장하고 검색시 파싱합니다. 열에 대한 쿼리가 필요한 경우 해당 열만 초기화하십시오. 그것은 IndexedDB와 같습니다.

관련 문제