пытаясь вставить значение в базу данных MySQL - PullRequest
0 голосов
/ 05 октября 2019
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» почему «» в строке 1

кто-нибудь знает почему?

Ответы [ 2 ]

1 голос
/ 05 октября 2019

Похоже, за именем вашего соответствующего столбца следует имя таблицы 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')
0 голосов
/ 06 октября 2019

Вы можете попробовать это также

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()

Попробуйте это

...