2017-05-27 135 views
0

我是新來的Python,並試圖創建一個表格,將數據保存到數據庫通過PyMySQL,但我有問題連接到數據庫。我遵循了一個示例代碼(我的版本如下)並徹底檢查了所有語法和語音標記,但仍然收到以下錯誤。%s正確設置,但PyMySQL仍抱怨%d

File "c:\Users\Nimrod\Nimrod Dropbox\Dropbox\Nimrodsky\Python\Adiabatic Equation\DB connect with PyMySQL.py", line 10, in <module> 
charset='utf8') 

文件 「C:\ ProgramData \ Anaconda3 \ LIB \站點包\ pymysql__init __ PY」,行90,在連接 回報連接(* ARGS,** kwargs) 文件「C:\ ProgramData \ Anaconda3 \ lib \ site-packages \ pymysql \ connections.py「,第706行,在init self.connect() 文件」C:\ ProgramData \ Anaconda3 \ lib \ site-packages \ pymysql \ connections.py 「,第922行,連接 self.host_info =」socket%s:%d「%(self.host,self.port) TypeError:%d格式:需要一個數字,而不是str

import pymysql 
import pymysql.cursors 

# Connect to the database 
connection = pymysql.connect(host='sql8.freesqldatabase.com', 
          port='3306', 
          user='********', 
          password='**********', 
          db='*********', 
          charset='utf8') 


try: 
    with connection.cursor() as cursor: 
     # Create a new record 
     sql = "INSERT INTO `client` (`ID`, `client_name`, `client_address_1`, `client_address_2`, `client_address_3`, `client_postcode`, `occupier_name`, `install_address_1`, `install_address_2`, `install_address_3`, `install_postcode`) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)" 
     cursor.execute(sql, ('1', 'Terry Jones', '10 DOwning Street', 'Guildford','Surrey', 'GU1 5HA', 'Paul Smith', 'Wimbledon Hill', 'Wimbledon', 'London', 'SW19 5QT')) 

    #connection is not autocommit by default. So you must commit to save 
    #your changes. 
    connection.commit() 

    with connection.cursor() as cursor: 
     # Read a single record 
     sql = "SELECT `id`, `occupier_name` FROM `client` WHERE `client_name`=%s" 
     cursor.execute(sql, ('Terry Jones',)) 
     result = cursor.fetchone() 
     print (result) 

finally: 
    connection.close 

回答

2

端口必須是整數:port=3306

+0

感謝那個博士學位,而不是代表我的一個愚蠢的錯誤,考慮到默認情況下PyMySQL打開端口3306,如果我留下了違規的線,那麼我認爲代碼會起作用。再次感謝並保重。 – Nimrod