搅拌机Python MySQL
有人能帮我解决这个问题吗 我正在使用Blender2.74和Python3.4,并使用正确的MySQL连接器。顺便说一下,我只是一个使用Blender和Python的初学者。我想要的是建立一个登录界面,并将输入的名称保存到数据库中,但我的代码似乎有点不正确或完全错误。当我运行代码时,它没有将值保存在变量中,但是当我尝试在python IDE中运行它时,它起到了作用 代码如下:搅拌机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')
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。这是什么意思?