Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 从钛Appcelerator db列获取值_Sql_Titanium Mobile - Fatal编程技术网

Sql 从钛Appcelerator db列获取值

Sql 从钛Appcelerator db列获取值,sql,titanium-mobile,Sql,Titanium Mobile,我到处找过了,但似乎找不到我到底想做什么。它应该相当简单 我有一个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 )'); 我有两个按钮,分别赋值为25和50。每个按钮都有一个“值”键,我在其

我到处找过了,但似乎找不到我到底想做什么。它应该相当简单

我有一个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 )');
我有两个按钮,分别赋值为25和50。每个按钮都有一个“值”键,我在其中分配它们的值。我正在努力完成三件事: 按下按钮时,找到对应值的列。 将此列的值增加1。 检索新值并将其记录在控制台日志中

按下按钮时,我的代码就是这样的:

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

var imagesString = rows.fieldByName(button.value);
Ti.API.debug(imagesString)
这都在单击事件侦听器中,其中变量“owner”作为字符串传入

这是我得到的错误:

message = "Attempted to access unknown result column 25";
我对sql没有太多的经验,所以我不确定我做对了什么,做错了什么。感谢您的帮助


谢谢。

我不太确定到底是什么问题,但以下几点对我有用。注意“?”变量替换语法确保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”插入测试行的:


我想这应该能解决你的问题。如果这对你不起作用,请告诉我。

我可以试试什么吗?嗨,DocDude,谢谢你的回答!我不知道那是什么?对于列名,语法不起作用。我相信我遇到的很多问题都可能是由于这个原因。这个答案似乎对我很有效!
db.execute('insert into playersTable (name, "50", "25") values (?,?,?)', 'foo', 0, 0);