Python mysqldb数据

时间:2012-06-13 07:56:05

标签: php python mysql-python

我有一个php表单,可以将这些值保存到数据库中:

  • ID
  • rand(随机生成的字符串)
  • x_val
  • y_val

我使用mysqldb在python程序中从数据库中调用这些值:

import MySQLdb

db = MySQLdb.connect("localhost","root","","test" )

cursor = db.cursor()

sql = "SELECT id,rand,x_val,y_val  FROM  table"
 try:
cursor.execute(sql)
results = cursor.fetchall()
results =  {}
for row in results:
  results[row[1]] = [row[0], row[2], row[3]]
  rand = row[1]
  x_val = row[2]
  y_val = row[3]

except:
 print "Error: unable to fecth data"

db.close()

更新:它给出错误 - >错误:无法记录数据

在这篇文章中(如你所见)我希望rand(即row [1])作为行的标识符。但是,我无法找到如何将其用作标识符的方法,因为在sql变量之后调用了rand = row [1]。在这个例子中,我使用了一个静态的'63kfjf'rand值,这只是为了向你展示工作。有办法吗?

2 个答案:

答案 0 :(得分:1)

从DB中选择数据后,您可以创建一个以“rand”值为键的字典:

这样的事情:

dicResults =  {}
for row in results:
    dicResults[row[1]] = [row[0], row[2], row[3]]

答案 1 :(得分:0)

我认为你是在试图随机选择一行?如果这是正确的,这将有效。

  1. 将rand更改为自动递增的整数。

  2. SELECT MAX(rand)FROM table;确定最高'随机' 值。

  3. 生成0到MAX之间的随机值(rand)

  4. SELECT * FROM table WHERE rand = $ randomGeneratedValue;