【问题标题】:trying to insert a value to the mySQL data base试图向 mySQL 数据库插入一个值
【发布时间】:2019-10-05 20:28:37
【问题描述】:
mycursor = mydb.cursor()


sql = "INSERT INTO questions q VALUES %s"
val = ("why"),
mycursor.execute(sql, val)

mydb.commit()

得到这个错误:

mysql.connector.errors.ProgrammingError: 1064 (42000): 你有一个 SQL 语法错误;检查与您对应的手册 MySQL 服务器版本,用于在 'q VALUES 'why'' 附近使用正确的语法 在第 1 行

有人知道为什么吗?

【问题讨论】:

  • q 可能是列名,我缺少的是 ()
  • @BarbarosÖzhan 这样做了,现在得到了同样的错误,但只是在“为什么”上

标签: python mysql sql-insert


【解决方案1】:

看起来你对应的列名后面跟着表名是q%s应该用括号括起来,并删除("why")之后的逗号(我假设列q是字符串类型):

import mysql.connector
from mysql.connector import Error

def insQuestions(i_q):
try:

    mydb = mysql.connector.connect(host='localhost',
                                         database='mydbname',
                                         user='myschema',
                                         password='mypwd')

    mycursor = mydb.cursor()    

    sql = "INSERT INTO questions(q) VALUES (%s)" 

    val = (i_q)
    mycursor.execute(sql, val)

    mydb.commit()
    print("One record inserted successfully")

except mysql.connector.Error as error:
    print("Failed to insert into the table {}".format(error))


insQuestions('why')

【讨论】:

    【解决方案2】:

    你也可以试试这个

    import mysql.connector
    
    mydb = mysql.connector.connect(
    host="localhost",
         user="yourusername",
         passwd="yourpassword",
         database="mydatabase"
        )
    
        mycursor = mydb.cursor()
    
       sql = "INSERT INTO customers (name, address) VALUES (%s, %s)"
       val = ("John", "Highway 21")
       mycursor.execute(sql, val)
    
       mydb.commit()
    

    试试这个

    【讨论】:

      猜你喜欢
      • 2015-08-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-22
      • 2018-05-23
      • 1970-01-01
      相关资源
      最近更新 更多