Python/MySQL query error: `Unknown column`

后端 未结 2 930
暗喜
暗喜 2021-01-12 19:34

This script is meant to act as a command-line front-end to add records to a locally hosted MySQL database.

I am getting this error:

mysql.connector.err

2条回答
  •  遥遥无期
    2021-01-12 19:55

    The issue is here:

    add_record = "INSERT INTO fruit (name, variety) VALUES (%s, %s)" % (new_fruit, new_fruit_type)
    

    Imagine the query this would produce:

    INSERT INTO fruit (name, variety) VALUES (watermelon, something_else)
    

    Those values aren't values anymore! They look more like column references (Unknown column 'watermelon' in 'field list')

    Instead, you should use prepared statements:

    query = "INSERT INTO fruit (name, variety) VALUES (%s, %s)"
    cursor.execute(query, (new_fruit, new_fruit_type))
    

    This will automatically take care of the parameterization for you, and will prevent SQL Injection

提交回复
热议问题