搅拌机Python MySQL

搅拌机Python MySQL,python,mysql,blender,Python,Mysql,Blender,有人能帮我解决这个问题吗 我正在使用Blender2.74和Python3.4,并使用正确的MySQL连接器。顺便说一下,我只是一个使用Blender和Python的初学者。我想要的是建立一个登录界面,并将输入的名称保存到数据库中,但我的代码似乎有点不正确或完全错误。当我运行代码时,它没有将值保存在变量中,但是当我尝试在python IDE中运行它时,它起到了作用 代码如下: import sys sys.path.append('C:\Python34\Lib\sitepackages')

有人能帮我解决这个问题吗

我正在使用Blender2.74和Python3.4,并使用正确的MySQL连接器。顺便说一下,我只是一个使用Blender和Python的初学者。我想要的是建立一个登录界面,并将输入的名称保存到数据库中,但我的代码似乎有点不正确或完全错误。当我运行代码时,它没有将值保存在变量中,但是当我尝试在python IDE中运行它时,它起到了作用

代码如下:

import sys

sys.path.append('C:\Python34\Lib\sitepackages')
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 ["input"]

#this variable suppose to get the inputted name
pname = ""

db = mysql.connector.connect(user='root', password='', host='localhost',    database='database')

cursor = db.cursor()

add_player = ("INSERT INTO table " "(PlayerName) " "VALUES (%s)")
data_player = (pname)
cursor.execute(add_player, data_player)

#The 2nd one that i tried, and the same error
cursor.execute("INSERT INTO storymode" "(PlayerName)" "VALUES (%(pname)s)")

db.commit() 

db.close()
我的问题是: 为什么在%s附近总是出现语法错误;我是否在代码中遗漏了什么,或者我是否需要一个附加组件来使其正常工作?非常感谢您阅读我的文章,并感谢将发表意见的人。

prime facie

cursor.executeINSERT进入故事模式播放名称值%p名称

应该像

cursor.executeINSERT到一个oog1值%s、%s、188,90 参考:


cursor.executeINSERT到storymode值%s,pname

您似乎没有说明需要替换%s或%pnames以插入到表中的播放器名称

add_player = ("INSERT INTO table " "(PlayerName) " "VALUES (%s)" % ('Nastu'))

or

add_player = ("""INSERT INTO table (PlayerName) VALUES (%s)""" % ('Nastu'))
上面提到的两个都是相同的,其中一个在Python中使用三次引号是多行字符串,否则您使用的是将字符串连接起来

cursor.execute("INSERT INTO storymode" "(PlayerName)" "VALUES (%(pname)s)"  % {'pname' : 'nish'})
请看穿与此相关的参数化查询


我既不知道Python,也不知道Blender的接口,但我很惊讶“pname”在没有倒逗号的情况下还能工作。对不起,我只是Python编程的新手。你说的倒逗号是什么意思?你指的是变量吗?这个->,这就是倒逗号的意思。但是,我的问题是插入数据的代码,似乎我缺少%s附近的某些内容。但我会试试倒逗号,看看它是否能改变我目前的问题。感谢您对此给出您的想法。我尝试在变量“pname”=Name中使用倒逗号,并将Name作为设置值,但出现了一个新错误:SyntaxError:无法分配给literal。这是什么意思?