谁能帮我解决这个问题?
我使用Blender 2.74和Python 3.4与MySQL的正确连接器。(顺便说一下,我只是一个使用Blender和Python的初学者。)
我想做一个登录UI,并将输入的名称保存到数据库中,但我的代码似乎有点偏离或错误。当我尝试运行代码时,它没有保存变量中的值,但是当我尝试在python IDE (PyCharm)中运行它时,它工作了。
代码如下:
import sys
sys.path.append('C:Python34Libsite-packages')
sys.path.append('C:Python34DLLs')
import mysql.connector
import bge
bge.render.showMouse(1)
cont = bge.logic.getCurrentController()
own = cont.owner
sensor = cont.sensors ["enter"]
pname = own.get("prpText")
enter = cont.sensors ["enter"]
numpadenter = cont.sensors ["numpadenter"]
if enter.positive or numpadenter.positive:
db = mysql.connector.connect(user='root', password='', host='localhost', database='dbname')
cursor = db.cursor()
cursor.execute("INSERT INTO tblname VALUE(%s", (pname))
#this are the other codes that i have tried so far:
#add_player = ("INSERT INTO storymode " "(PlayerName) " "VALUES (%s)")
#data_player = (pname)
#cursor.execute(add_player, data_player)
#cursor.execute("INSERT INTO storymode" "(PlayerName)" "VALUES (%(pname)s)")
db.commit()
db.close()
错误是:
mysql.connector.errors。ProgrammingError: 1064(42000):你的SQL语法有一个错误;查看mysql服务器版本对应的手册,了解在第1行'%s'附近使用的正确语法。
谁能告诉我这里需要做什么?我需要一些附加组件来工作吗?看起来你在sql INSERT语句中缺少一个右括号和一个'S' ?
INSERT INTO tblname VALUE (%s
必须是
INSERT INTO tblname VALUES (%s)