2013-10-16 68 views
1

我無法弄清楚這裏的問題是什麼。我不斷收到的錯誤代碼是「字符串格式化過程中錯誤的參數數量」,但我個人沒有看到任何錯誤。任何人都可以將我指向正確的方向嗎?謝謝。Python/MySQL錯誤

def film_function(number, film): 
    connection = connect(host='localhost', user='root', \ 
           passwd='', db='survey') 
    cursor = connection.cursor() 

    sql = "SELECT * FROM persons, persons_films WHERE persons.person = persons_films.person AND number_of_films >= %s AND film = '%s' ORDER BY persons_films.person" 

    cursor.execute(sql, [number], [film]) 
    rows = cursor.fetchall() 
    if not rows: 
     print ("No one in "+film+" found!") 
    else: 
     for row in rows: 
      print row[0],"-", row[1] 
    cursor.close() 
    connection.close() 

回答

1

這...

cursor.execute(sql, [number], [film]) 

應該是這樣的:

cursor.execute(sql, [number, film]) 

要傳遞的參數一個列表,而不是單獨列出每個帶一個參數。

+0

謝謝你。不知道你是否可以幫助我,但「打印(」沒有人在「+電影+」發現!「)」沒有按照我想要的方式工作。 +電影+應該有雙引號,但打印結果只有單引號,即使我試圖一起使用單/雙引號,三重引號等。思考? –

+0

試試'print(''+'+''找不到'!')' – Amber

+0

太棒了!再次感謝! :) –