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와 같습니다.