【问题标题】:inserting into a database (mysql) via a python program [duplicate]通过python程序插入数据库(mysql)[重复]
【发布时间】:2017-08-16 13:13:23
【问题描述】:

我熟悉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】:

请看下面的代码

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()

【讨论】:

    【解决方案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】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-18
      • 1970-01-01
      • 2014-01-13
      • 1970-01-01
      相关资源
      最近更新 更多