0

有人可以帮我解决这个问题吗?

我将 Blender 2.74 和 Python 3.4 与 MySQL 的正确连接器一起使用。(顺便说一下,我只是使用 Blender 和 Python 的初学者。)

我想要的是制作一个登录用户界面并将输入的名称保存到数据库中,但我的代码似乎有点不对或错误。当我尝试运行代码时,它没有将值保存在变量中,但是当我尝试在 python IDE (PyCharm) 中运行它时它起作用了。

这是代码:

import sys

sys.path.append('C:\Python34\Lib\site-packages')
sys.path.append('C:\Python34\DLLs')

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' 附近使用正确的语法。

有人可以告诉我在这里需要做什么吗?我需要一些附加组件才能让它工作吗?

非常感谢您阅读我的帖子以及将发表意见的人。

4

1 回答 1

0

看起来您在 sql INSERT 语句中缺少右括号和“S”?

INSERT INTO tblname VALUE (%s

需要是

INSERT INTO tblname VALUES (%s)
于 2015-05-31T22:55:54.000 回答