Создайте базу данных MySQL в Python, используя оператор% s - PullRequest
1 голос
/ 23 июня 2019

Попытка создать базу данных, имя которой задается с помощью оператора% s.

import mysql.connector, MySQLdb
db_name='SomeString'

#create connection to mysql
mydb=mysql.connector.connect(host="localhost",user="root")

#init cursor
mycursor=mydb.cursor()

#create database
mycursor.execute("CREATE DATABASE (%s)", (db_name))

Это сообщение об ошибке:

mysql.connector.errors.ProgrammingError: 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(%s)' at line 1

1 Ответ

0 голосов
/ 23 июня 2019

Я думаю, вы намереваетесь вставить значение db_name вместо %s, как заполнитель в C.Это не работает, как вы узнали.Вместо этого вы могли бы сделать что-то вроде:

create_statement = "CREATE DATABASE {:s}".format(db_name)
mycursor.execute(create_statement)

Делая это таким образом, вы сможете использовать технику в более сложных ситуациях, когда после значения, которое вы пытаетесь подставить, возникает больше SQL.

...