【问题标题】:inserting into a database (mysql) via a python program [duplicate]通过python程序插入数据库(mysql)[重复]
【发布时间】:2025-12-19 05:10:12
【问题描述】:

我熟悉python,也熟悉mysql和SQL。我也很清楚 con、cur 和 commit,但我的问题是我试图在 python 中制作一个小程序(不需要 gui)将数据插入 mysql 数据库,并将其带到我的控制台或文件中。我很困惑从哪里开始,我尝试搜索谷歌,但我找不到任何关于我的问题的教程,有什么帮助吗?一个链接或从哪里开始。另外:

我知道python程序可以写在IDE或文本文件中,但是它是如何连接到mysql数据库的呢?如果我错了,请纠正我。

【问题讨论】:

  • 尝试用文本搜索python程序从数据库中获取数据 自己搜索Google是个好技能
  • 我确实做到了,但我没有得到任何东西,这里重要的是如何写入数据库,这是我没有得到的,我知道我们会使用程序里面有sql,但是不明白怎么连接mysql数据库
  • 使用 mysqldb python 库并在此处阅读文档:mysql-python.sourceforge.net/MySQLdb.html

标签: python mysql sql


【解决方案1】:

SQLAlchemy 不错:https://www.sqlalchemy.org/

否则,使用您描述的 conn/cur 很容易:https://www.tutorialspoint.com/python/python_database_access.htm

【讨论】:

    【解决方案2】:

    通过documentation 熟悉python、mysql 以及如何一起使用它们。

    虽然,最小的代码看起来像这样:

    import MySQLdb
    
    query = "insert into DB_NAME values (1,2)"
    
    try : 
        conn = MySQLdb.connect(host="",
            user="",
            passwd="",
            db="")
        cursor = conn.cursor()
        cursor.execute(query)
        conn.commit()
        cursor.close()
        conn.close()
    except  (MySQLdb.Error, Exception) as error :
        print error
        print "Insert data unsuccessful"
    

    【讨论】:

    • 谢谢大家,我让它工作了!我使用 pymysql 而不是 mysqldb,因为它更容易并且问题更少。
    【解决方案3】:

    请看下面的代码

    import mysql.connector
    
    from mysql.connector import MySQLConnection, Error
    
    class SQL_Connect:
    
    def __init__(self):
        #-------------------------------------------------------
        # Database Connection Param's
        self.host_Address = 'Host Here'
        self.database_Name = 'Database Name'
        self.userName = 'User Name'
        self.db_Password = 'Password'
        #-------------------------------------------------------
    
    
    def insert_IntoDB(self, Manufacturer, partNum, formFactor, socket, chipSet, memSlots, memType, maxMem, raidSup, onboardVid, crosFire_Sup, sli_Sup, sata6GBS, sataExpress, onboard_Ether):
        test_Query = 'INSERT INTO motherboards (Manufacturer, modelNum, formFactor, socket, chipset, memSlots, memType, maxMem, raidSup, onboardVid, crosfireSup, sliSup, sata6GBS, sataExpress, onboardEther) VALUES (%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)'
        args = (Manufacturer, partNum, formFactor, socket, chipSet, memSlots, memType, maxMem, raidSup, onboardVid, crosFire_Sup, sli_Sup, sata6GBS, sataExpress, onboard_Ether)
        try:
            conn = mysql.connector.connect(host = self.host_Address, database = self.database_Name, user = self.userName, password = self.db_Password)
            if conn.is_connected():
                print 'MySQL Database Connection Established'
            cursor = conn.cursor()
            cursor.execute(test_Query, args)
    
            conn.commit()
            print 'Data Inserted!!!'
    
        except Error as e:
            print ('ERROR: ',e)
    
        finally:
            cursor.close()
            conn.close()
    

    【讨论】: