这是我的代码:
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>中设置它时它有效。
答案 0 :(得分:0)
我明白了。由于MySQL中的用户定义变量受会话约束,因为一旦会话结束就会被删除,因此在mysql终端中选择变量将返回NULL值是合乎逻辑的。 python脚本从另一个会话启动一个会话和mysql,因此用户定义的值是不同的。
希望这有助于遇到同样麻烦的人。