【问题标题】:Trouble inserting values into mysql server using mysql.connector使用 mysql.connector 将值插入 mysql 服务器时遇到问题
【发布时间】:2018-08-03 03:57:29
【问题描述】:

我在类实现中使用以下函数插入值 username_sipadress_s 等 MYSQL 数据库中的列 usernameipadress 等,但我不断收到以下错误

mysql.connector.errors.ProgrammingError: 1054 (42S22): 未知列 '字段列表'中的'username_s'

混淆是列名与列值的互换

def insert_server(self , username_s , ipadress_s , BLACKLISTED_s , clientid_s):
    self.connect.database = self.m_database

    self.cursor.execute(
        "INSERT INTO server"
        " ( username , ipadress , blacklisted , clientid )"
        "VALUES ( username_s , ip_adress_s , BLACKLISTED_s , clientid_s)")

【问题讨论】:

    标签: python sql mysql-python


    【解决方案1】:

    MySQL 会将 'username_s' 和 VALUES 中的其他名称解释为文字列名称,因为没有格式代码表明它们实际上是变量。您可以查看 MySQL 文档Inserting data using Connector/Python 中的示例。为澄清起见,这里是一个简短的 MWE:

    import sqlalchemy
    
    # insert connection details
    engine = sqlalchemy.create_engine('<YourConnection>')
    
    # insert statement with variable format coding in VALUES
    add_client = (
        'INSERT INTO server'
        ' (username, ipadress, blacklisted, clientid )'
        ' VALUES ( %s, %s, %s, %s)')
    
    # invent some client data
    username_s = 'Mary'
    ipadress_s = '321.45.67.89'
    BLACKLISTED_s = True
    clientid_s = 123456
    client_data = (username_s, ipadress_s, BLACKLISTED_s, clientid_s)
    
    with engine.connect() as cnx:
        cnx.execute(add_client, client_data)
    

    【讨论】:

      猜你喜欢
      • 2017-01-04
      • 2013-02-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-04
      • 2016-11-02
      • 2019-12-16
      • 2012-03-20
      相关资源
      最近更新 更多