【发布时间】:2021-11-08 21:44:52
【问题描述】:
mysql.connector.errors.ProgrammingError: 1049 (42000): Unknown database 'prototype.db'
每次运行 python database.py 时都会出现此错误,这是文件的名称,Prototype.db 是数据库文件的名称。 有什么帮助吗?
这是 database.py 文件的代码
import mysql.connector
#to create a database instance
MyDB = mysql.connector.connect(
host = "Localhost",
database = "Prototype.db",
user = "root",
password = ""
)
#a cursor is an object we use to interact with the database
MyCursor = MyDB.cursor()
MyCursor.execute("CREATE TABLE IF NOT EXISTS Images (id INTEGER(45) NOT NULL AUTO_INCREMENT PRIMARY KEY, Photo BLOB NOT NULL")
#to select the file to upload
def InsertBlob(FilePath):
with open(FilePath, "rb") as File:
BinaryData = File.read()
SQLStatement = "INSERT INTO Images (Photo) VALUES (%s)"
MyCursor.execute(SQLStatement, (BinaryData, ) )
MyDB.commit()
def RetrieveBlob(ID):
SQLStatement2 = "SELECT * FROM Images WHERE id = {0}"
MyCursor.execute(SQLStatement2.format(str(ID)))
MyResult = MyCursor.fetchone()[1]
StoreFilePath = "IMG/img{0}.jpg".format(str(ID))
print(MyResult)
with open(StoreFilePath, "wb") as File:
File.write(MyResult)
File.close()
#a menu to help us input data
print("1. Insert Image\n2. Read Image")
MenuInput = input()
if int(MenuInput) ==1:
UserFilePath = input("Enter File Path:")
InsertBlob(UserFilePath)
elif int(MenuInput) ==2:
UserIDChoice = input("Enter ID:")
RetrieveBlob(UserIDChoice)
【问题讨论】:
-
MySQL 不会在外部将数据库表示为文件。尝试省略“.db”。