使用raw_input将Python的值添加到Mysql

时间:2014-08-11 20:47:10

标签: python mysql python-2.7 mysql-python

这段代码有什么问题? 我想使用原始输入向我的Mysql数据库添加值,但我不能这样做。 该程序运行完美,但是当我在mysql中查看数据库时,没有记录任何数据。

import MySQLdb

# Establecemos la conexión con la base de datos
bd = MySQLdb.connect("localhost","wil","1234","caras" )

# Preparamos el cursor que nos va a ayudar a realizar las operaciones con la base de datos
cursor = bd.cursor()

# Preparamos el query SQL para insertar un registro en la BD

sql = "INSERT INTO PERSONAS USUARIO VALUES" + raw_input("USUARIO: ")
sql = "INSERT INTO PERSONAS CONTRASENHA VALUES" + raw_input("CONTRASENHA: ")
sql = "INSERT INTO PERSONAS NOMBRE VALUES raw_input" + raw_input("NOMBRE: ")
sql = "INSERT INTO PERSONAS APELLIDO VALUES raw_input" + raw_input("APELLIDO: ")
sql = "INSERT INTO PERSONAS EDAD VALUES raw_input" + raw_input("EDAD: ")
sql = "INSERT INTO PERSONAS SEXO VALUES raw_input" + raw_input("SEXO: ")
sql = "INSERT INTO PERSONAS SALARIO VALUES raw_input" + raw_input("SALARIO: ")

try:
   # Ejecutamos el comando
   cursor.execute(sql)
   # Efectuamos los cambios en la base de datos
   bd.commit()
except:
   # Si se genero algún error revertamos la operación
   bd.rollback()

# Nos desconectamos de la base de datos 
bd.close()

2 个答案:

答案 0 :(得分:3)

首先,您要替换每个分配中的sql变量内容,因此只会执行最后一个查询。我也猜这是你要做的事情:

cursor.execute("INSERT INTO PERSONAS VALUES (%s, %s, %s, %s, %s, %s, %s)",
               (raw_input("USUARIO: "), raw_input("CONTRASENHA: "),
                raw_input("NOMBRE: "), raw_input("APELLIDO: "),
                raw_input("EDAD: "), raw_input("SEXO: "),
                raw_input("SALARIO: ")))

希望这有帮助。

答案 1 :(得分:0)

从第二行将“sql =”更改为“sql + =”并给出“;”在所有陈述结束时。您基本上用下一个查询替换所有查询。不添加到字符串。