Вот в чем дело: Я пытаюсь создать новую базу данных MySQL, импортировав имя базы данных, а затем создав ее.
Вот код:
import mysql.connector as mcon
# DB Connect
stdb = mcon.connect(
host = "localhost",
user = "root",
password = "pass",
database = "trffc_int_data")
cursor = stdb.cursor()
# Creating new DB
NewDB = input(" Enter the Database name : ")
sqlsynt = "CREATE DATABASE IF NOT EXISTS %s"
cursor.execute(sqlsynt,NewDB)
cursor.commit()
print ("New database created!")
Выглядит правильно, но я продолжаю получать сообщение об ошибке «1065 >> У вас есть ошибка в синтаксисе SQL; проверьте руководство, соответствующее версии вашего сервера MySQL, для правильного синтаксиса для использования рядом с '%s'<<"
Он указывает на линию: cursor.execute(sqlsynt,NewDB)
В чем может быть проблема?
Нельзя так привязывать имена объектов (в данном случае — имя базы данных), только значения. Вам придется прибегнуть к форматированию строк. Например.:
newDB = input(" Enter the Database name : ")
sqlsynt = f"CREATE DATABASE IF NOT EXISTS {newDB}"
cursor.execute(sqlsynt,NewDB)