这段代码有什么问题? 我想使用原始输入向我的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()
答案 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 + =”并给出“;”在所有陈述结束时。您基本上用下一个查询替换所有查询。不添加到字符串。