【问题标题】:Is it possible to give user input name to a table that is being created in sql with the help of python interface?是否可以在 python 接口的帮助下为在 sql 中创建的表提供用户输入名称?
【发布时间】:2020-10-31 04:26:55
【问题描述】:

我正在尝试做一个项目,该项目涉及使用用户输入名称创建一个新表,但它不起作用。我希望给定的信息就足够了。

这是我尝试过的:

import mysql.connector as myc

db=myc.connect(host='localhost',database='xyz',user='root',passwd='root')
mc=db.cursor()

name=input("name=")` 

x=("CREATE TABLE %s (S_NO VARCHAR(100),CONSULTATION_REASON VARCHAR(100),CONSULTED_DOCTOR VARCHAR(100),
FEES VARCHAR(100))")` 

mc.execute(x,name)
db.commit

它给出了这个错误:

error:::mysql.connector.errors.ProgrammingError: 1064 (42000): 你的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在 '%s (S_NO VARCHAR(100), CONSULTATION_REASON VARCHAR(100), CONSULTED_DOCTOR VARCHAR(' 在第 1 行:::

附近使用正确的语法

非常感谢任何答案。

【问题讨论】:

    标签: mysql-python


    【解决方案1】:

    试试这个

    import mysql.connector as myc
    db=myc.connect(host='localhost',database='xyz',user='root',passwd='root')
    mc=db.cursor()
    name=input("name=")
    x=("CREATE TABLE "+name+" (S_NO VARCHAR(100),CONSULTATION_REASON 
    VARCHAR(100),CONSULTED_DOCTOR VARCHAR(100), FEES VARCHAR(100))")
    mc.execute(x,name)
    db.commit
    

    【讨论】:

    • 原代码有什么问题?你改变了什么?为什么会解决它?
    • 非常感谢,它成功了。我只需要删除 "mc.execute(x,name)" 部分并将 mc.execute 添加到此部分 ""("CREATE TABLE "+name+" (S_NO VARCHAR(100),CONSULTATION_REASON ....." "。非常感谢您的快速帮助。非常感谢
    • @underscore_d 这是发送参数的错误,我改了,@G Sree 说可以了 为什么说和原来的代码没有区别?
    • @shahedmahmoudi 我没有说“没有什么不同”。我问如何它是不同的。一个好的答案不仅会转储更改的代码,还可以解释它是如何/为什么被更改的。那是我的观点。似乎其他人同意了,因为我没有投反对票,但他们同意了。
    • @underscore_d 你可以看到这个链接 dev.mysql.com/doc/connector-net/en/… 你在我的 sql 中有两个参数选项,'+' 或 '@' 我不是 mysql 开发人员,但我对此有一点了解
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-05-19
    • 1970-01-01
    • 1970-01-01
    • 2014-02-24
    • 2016-08-13
    • 1970-01-01
    • 2011-03-13
    相关资源
    最近更新 更多