Blender中的Python编码

Posted

技术标签:

【中文标题】Blender中的Python编码【英文标题】:Python Coding in Blender 【发布时间】:2015-08-14 07:37:04 【问题描述】:

谁能帮我解决这个问题?

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

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

非常感谢您阅读我的帖子以及提供意见的人。

【问题讨论】:

【参考方案1】:

您的 sql INSERT 语句中好像缺少右括号和“S”?

INSERT INTO tblname VALUE (%s

需要

INSERT INTO tblname VALUES (%s)

【讨论】:

我在 %s 之后尝试过,但弹出一个新错误,现在是语法错误 哦,我认为应该是带有“S”的值 我已经尝试过了,但没有任何改变,仍然有错误。 在mysql中保存数据还有其他方法吗? 试试这个:cursor.execute("INSERT INTO tblname VALUES (?)", pname)

以上是关于Blender中的Python编码的主要内容,如果未能解决你的问题,请参考以下文章

浅谈Python中的编码规则

python中的内容编码

Python中的编码

python中的一些编码问题

python3中的编码问题

Python中的Unicode编码和UTF-8编码