Python MySQLdb设置用户定义的变量

时间:2014-02-27 15:34:03

标签: python mysql-python

这是我的代码:

if NNlib.neuro(SB, UZ) == 1:
    koncept = 'zid'
else:
    koncept = 'prazan prostor'

sql = "SET @koncept='%s';" % koncept
cursor.execute(sql)
conn.commit()

基本上它的作用是NNlib.neuro为'zid'(英语为'wall')返回1,为'prazan prostor'返回0('空格')。这部分工作得很好,我在使用代码的第二部分在SQL中设置用户定义的变量时遇到了问题。

例如,当我执行koncept ='zid'的代码时,我应该知道@koncept是'zid'但是我得到一个NULL值。

我做错了什么?

编辑:

实际上我无法设置任何用户定义的变量。此代码不起作用:

conn = MySQLdb.connect(host="localhost", user="root", passwd="password", db="istrazivac")
cursor = conn.cursor()

cursor.execute("SET @test = 5")
conn.commit()

当我在mysql中执行SELECT @test时,我得到一个NULL值。但是当我在mysql>中设置它时它有效。

1 个答案:

答案 0 :(得分:0)

我明白了。由于MySQL中的用户定义变量受会话约束,因为一旦会话结束就会被删除,因此在mysql终端中选择变量将返回NULL值是合乎逻辑的。 python脚本从另一个会话启动一个会话和mysql,因此用户定义的值是不同的。

希望这有助于遇到同样麻烦的人。