2011-11-30 2 views
1

나는 어디에서든지 둘러 보았습니다. 그러나 정확하게하려고하는 것을 찾을 수없는 것 같습니다.티타늄 Appcelerator db 칼럼에서 가치를 얻으십시오

var db = Ti.Database.open('playerInfo.db'); 
db.execute('CREATE TABLE IF NOT EXISTS playersTable (id INTEGER PRIMARY KEY, name TEXT NOT NULL, "50" INTEGER, "25" INTEGER)'); 

I는 각각 두 (25)의 할당 값이 버튼 50있다 : 그것은

는 I는 다음과 같이 셋업 DB 테이블을 가지고 ... 상당히 간단해야한다. 각 버튼에는 값을 할당하는 "값"키가 있습니다. 세 가지를 수행하려고합니다. 버튼을 누르면 해당 값의 열을 찾습니다. 이 열의 값을 1 씩 늘리십시오. 새 값을 검색하고 콘솔에 기록하십시오.

이 내 코드는 버튼을 누를 때 모습입니다 :

var rows = db.execute("SELECT '" + button.value + "' FROM playersTable WHERE name= '" + owner + "'"); 

var imagesString = rows.fieldByName(button.value); 
Ti.API.debug(imagesString) 

이 모든 변수 "소유자"문자열로 전달하는 클릭 이벤트 리스너입니다.

은 내가 오류입니다 :

message = "Attempted to access unknown result column 25"; 

내가 SQL 너무 많은 경험이없는, 그래서 내가 잘하고있어 무엇을 내가 잘못 뭘하는지 모르겠어요. 어떤 도움을 주셔서 감사합니다!

감사합니다.

+0

내가 시도 할 수있는 아이디어가 있습니까? – gjunkie

답변

0

나는 정확하게 그 문제가 무엇인지는 확실하지 않지만, 다음은 나를 위해 일한다. "?" 변수 대체 구문은 값이 MySQL을 제대로 인용되어 있는지 확인합니다 :

button = e.source; 
db = Titanium.Database.open('test'); 
var rows = db.execute("SELECT * FROM playersTable WHERE name= ?", "foo"); 
// Theoretically this should be returning a single row. For other results, 
// we would loop through the result set using result.next, but here just check if 
// we got a valid row. 
if (rows.isValidRow()) { 
    var imagesString = rows.fieldByName(button.value); 
    var id = rows.fieldByName('id'); 
    imagesString = imagesString + 1; 
    Ti.API.info("id = " + id + " val = " + imagesString); 
    // The ? substitution syntax doesn't work for column names, so we 
    // still need to stick the button value into the query string. 
    db.execute('UPDATE playersTable set "' + button.value +'"= ? where id = ?', imagesString, id); 
} 
else 
{ 
    Ti.API.info("Row not found."); 
} 
db.close(); 

당신이 행을 찾을 수 없습니다 오류가 발생하면, 그것은 당신의 데이터가 처음에 제대로 삽입 점점되지 가능합니다. 다음은 플레이어 "foo"에 대한 테스트 행을 삽입 한 방법입니다.

db.execute('insert into playersTable (name, "50", "25") values (?,?,?)', 'foo', 0, 0); 

이 문제가 해결되어야한다고 생각합니다. 이것이 당신을 위해 작동하지 않으면 알려주십시오.

+0

안녕하세요. DocDude, 멋진 답변 주셔서 감사합니다! 그걸 몰랐어? 구문이 열 이름에 대해 작동하지 않았습니다. 내가 겪었던 많은 문제들이 그로 인한 것일 수 있습니다. 이 대답은 나를 위해 잘 작동하는 것 같습니다! – gjunkie

관련 문제