简体   繁体   English

如何在Mysql中使用User_input输入表名?

[英]How to input A Table name using User_input in Mysql Using Python?

Enter DATA Into DATABASE 将数据输入数据库

import MySQLdb
import time
import datetime
import calendar
localtime = time.asctime(time.localtime(time.time()))
print "Local current time :", localtime

Open database connection 打开数据库连接

db = MySQLdb.connect("localhost","root","","attendence" )

prepare a cursor object using cursor() method 使用cursor()方法准备一个游标对象

cursor = db.cursor()

Enter subject 输入主题

subject=raw_input("Enter Subject Name:")

Drop table if it already exist using execute() m ethod. 如果已使用execute()方法删除了表,则将其删除。

sql="DROP TABLE IF EXISTS %s"%(subject)
cursor.execute(sql)

Create table as per requirem ent 根据要求创建表

sql1= """CREATE TABLE %s (Sl_No. INT(200),NAME CHAR(20))"""%(subject)
cursor.execute(sql)

disconnect from server 与服务器断开连接

db.close()

Surely,you can do so.But it donot recommend.And your code have some error,such as Sl_No. 当然可以,但是不建议这样做。您的代码有错误,例如Sl_No. is invalid col name. 是无效的列名。 So i change your code a little. 所以我稍微修改一下您的代码。

import MySQLdb
import time
import datetime
import calendar
localtime = time.asctime(time.localtime(time.time()))
print ("Local current time :", localtime)
db = MySQLdb.connect("localhost","root","","attendence" )
cursor = db.cursor()
subject = raw_input("Enter Subject Name:")
cursor.execute("show tables")
dele = "DROP TABLE IF EXISTS {tab}".format(tab=subject)
cre  = """CREATE TABLE {tab} (Sl_No INT(200),NAME CHAR(20))""".format(tab=subject)

def commit(sql):
    cursor.execute(sql)
    db.commit()

if subject.strip() in [tab[0] for tab in cursor.fetchall()]:
    commit(dele)
    commit(cre)
else:
    commit(cre)
db.close()

db = MySQLdb.connect(“ localhost”,“ root”,“ reverend”,“ TESTDB”)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM