Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/343.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
Python sqlite3.ERROR:没有这样的列:PY_VAR0_Python_Python 3.x_Sqlite - Fatal编程技术网

Python sqlite3.ERROR:没有这样的列:PY_VAR0

Python sqlite3.ERROR:没有这样的列:PY_VAR0,python,python-3.x,sqlite,Python,Python 3.x,Sqlite,我正在为一个项目编写代码,在使用SQLite3时,我遇到了一个似乎无法修复的错误 我以前查过答案,但似乎SQLite总是将变量作为列标题读取,但在这里,它找不到的列不是我的变量之一,所以我有点迷路了 我试图将变量中的数据插入到SQLite数据库中,虽然起初我得到了一个简单的版本,但现在我尝试将其集成到我的完整代码中,我再次陷入困境 这是一个试用版,在我尝试正确使用它之前,我正在使用它来让整个系统正常工作: c.execute("CREATE TABLE TEST (GIFNAME, TagSty

我正在为一个项目编写代码,在使用SQLite3时,我遇到了一个似乎无法修复的错误

我以前查过答案,但似乎SQLite总是将变量作为列标题读取,但在这里,它找不到的列不是我的变量之一,所以我有点迷路了

我试图将变量中的数据插入到SQLite数据库中,虽然起初我得到了一个简单的版本,但现在我尝试将其集成到我的完整代码中,我再次陷入困境

这是一个试用版,在我尝试正确使用它之前,我正在使用它来让整个系统正常工作:

c.execute("CREATE TABLE TEST (GIFNAME, TagStyle, TagEvent, TagTime)")
def SaveStyle():
    if (GIFName.get() != "") and (TagStyle.get() != ""):
        #print(GIFName.get(), ", ", TagStyle.get(), ", ", TagEvent.get(), ", ", TagTime.get())
        #Saved1=tk.Label(window4, text="Saved!", fg="#ffffff", bg="#D0CEC2")
        #Saved1.grid(row=9, column=1)
        c.execute("INSERT INTO TEST VALUES (%s,%s,%s,%s)" %(GIFName2, TagStyle2, TagEvent2, TagTime2))
        conn.commit()
        c.execute("select * from TEST")
        print(c.fetchall())
我知道代码不是很好,我对编码比较陌生,所以它并不完全完美,我只想修复这一部分,因为它将用于我程序的很多部分

由于原始变量是
tk.StringVar()
,并且sqlite不断返回说它们不受支持,所以使用了它捕获的4个变量

以下是完整的错误消息:

"Exception in Tkinter callback
Traceback (most recent call last):
File "C:\Python33\lib\idlelib\run.py", line 109, in main
seq, request = rpc.request_queue.get(block=True, timeout=0.05)
File "C:\Python33\lib\queue.py", line 175, in get
raise Empty
queue.Empty
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:\Python33\lib\tkinter\__init__.py", line 1475, in __call__
return self.func(*args)
File "N:\PYTHON\Alice Program\trial.py", line 16, in SaveStyle
c.execute("INSERT INTO TEST VALUES (%s,%s,%s,%s)" %(GIFName2, TagStyle2,  TagEvent2, TagTime2))
sqlite3.OperationalError: no such column: PY_VAR0"
(很抱歉,我必须将其格式化为代码,它不允许我将其作为报价发布)

最初我使用的是
而不是
%s
,但它一直说我的变量不受支持,一位朋友正在使用
%s
并使其正常工作,但她不记得自己做了什么,现在她丢失了文件,因此我无法尝试使用它寻求帮助


提前感谢您的帮助,如果我错过了任何信息,请告诉我。

您的INSERT INTO语句的语法不太正确

应该是:

c.execute("INSERT INTO TEST VALUES (?,?,?,?)", (GIFName2, TagStyle2, TagEvent2, TagTime2))

问号(?)是python中sqlite的参数替换符号;使用此选项将确保数据安全插入数据库-请参阅

INSERT INTO语句的语法不太正确

应该是:

c.execute("INSERT INTO TEST VALUES (?,?,?,?)", (GIFName2, TagStyle2, TagEvent2, TagTime2))

问号(?)是python中sqlite的参数替换符号;使用此选项将确保数据安全插入数据库-请参阅

您是否尝试过在该网站上搜索
PY_VAR0
?这类问题经常出现,而且总是出于同样的原因。您是否尝试过在该网站上搜索
PY_VAR0
?这类问题经常出现,而且总是出于同样的原因。这让它保存了一些东西,所以谢谢,但是如果我强制它将变量作为字符串读取,它只会说它们是“Py_Var0”1,2,3,但是如果我不强制它将它们作为字符串读取,它会说它们“可能不受支持”,正如@BryanOakley在他的评论中所建议的那样,看看这样的问题-你可能需要对正在保存的变量调用.get(),以获取它们的值,例如GifName2.get(),而不仅仅是GifName2。是的,我刚刚试过,它现在起作用了,所以谢谢:)这可以保存一些东西,谢谢,但是如果我强迫它把变量读成字符串,它只会说它们是“Py_Var0”1,2,3,但是如果我不强迫它把它们读成字符串,它会说它们“可能不受支持”,就像@BryanOakley在他的评论中建议的那样,看看这样的问题-你可能需要调用.get()来获取你正在保存的变量的值,例如GifName2.get()而不仅仅是GifName2.Yeah,我刚刚尝试过,现在它可以工作了,谢谢:)