使用 stmt = db:prepare 和 stmt:bind_values 将日期和数字插入表中

问题描述 投票:0回答:1

在 如果通过以下方式创建表

db:exec [[CREATE TABLE IF NOT EXISTS tips_table (id INTEGER PRIMARY KEY,time TIME,date DATE, counter INTEGER)]]

数据如下插入到上表中

local stmt = db:prepare [[INSERT INTO tips_table (time, date, counter) VALUES (?, ?, ?);]]

stmt:bind_values(os.date('%H:%M:%S'), os.date('%y/%m/%d'), counter)

为什么我会收到以下错误

lua: Test.lua:247: attempt to index local 'stmt' (a nil value)

我尝试了不同的变量,并尝试将日期和时间转换为字符串。

我从不同的网站查看了 lsqlite3 语法,并无休止地用 Google 搜索,但我似乎无法正确理解

sqlite lua
1个回答
0
投票

即使在 Lua 中,在调用其方法之前也有必要检查返回的对象是否为 nil。

您的

db:prepare
返回零。假设这是因为您没有提供
id
,这是一个不接受 null 的主键。

© www.soinside.com 2019 - 2024. All rights reserved.