代码之家  ›  专栏  ›  技术社区  ›  cikel87

使用raw_input将Python值添加到Mysql

  •  1
  • cikel87  · 技术社区  · 10 年前

    这个代码有什么问题? 我想使用原始输入向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 回复  |  直到 9 年前
        1
  •  3
  •   cdonts    10 年前

    首先,您要替换 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: ")))
    

    希望这有帮助。

        2
  •  0
  •   Abhilash Cherukat    9 年前

    将第二行中的“sql=”更改为“sql+=”,并在所有语句的末尾给出“;”。基本上用下一个查询替换所有查询。不添加到字符串。