2016-07-28 10 views
0

私はpythonとmysqlを使ってログインシステムを作ろうとしています。私はデータベースに接続しましたが、テーブルに値を挿入しようとすると失敗します。私は何が間違っているのか分かりません。私はPython 3.5とPyMySQLモジュールを使用しています。PyMySQLテーブルに値を挿入中にエラーが発生しました。 - Python

#!python3 
    import pymysql, sys, time 
    try: 
     print('Connecting.....') 
     time.sleep(1.66) 
     conn = pymysql.connect(user='root', passwd='root', host='127.0.0.1', port=3306, database='MySQL') 
     print('Connection suceeded!') 
    except: 
     print('Connection failed.') 
     sys.exit('Error.') 

    cursor = conn.cursor() 

    sql = "INSERT INTO login(USER, PASS) VALUES('test', 'val')" 

    try: 
     cursor.execute(sql) 
     conn.commit() 
    except: 
     conn.rollback() 
     print('Operation failed.') 

    conn.close() 
+0

あなたは少し良く "それが失敗した" 文を記述することはできますか?何が起こるのですか?例外はありますか? – mgilson

+0

また、私はmysqlパーサについてよく知らないが、通常はテーブル名と括弧の間にスペースがあることを知っている:INSERT INTO login(USER、PASS)VALUES( 'test'、 'val') "' – mgilson

+0

私はtry/except文でexeptionを処理しませんでした。 'except'ブロックを削除した場合、あなたはエラーを共有できますか?(1054、"フィールドリスト 'の "Unknown column' USER ') –

答えて

0

接続のステートメントの順序と関係があると思われる場合があります。 PyMySQL github(here)によると、正しい順序はhost、port、user、passwd、dbです。このよう

+0

疑わしい - デフォルトの引数は任意に指定できますキーワードで呼び出すときは – mgilson

0

user = input("User: ") 
pass = input("Pass: ") 
sql = "INSERT INTO login(USER, PASS) VALUES('%s', '%s')"%(user, pass) 

ところで、あなたは次のように接続する必要があります:

conn = pymysql.connect(
    host='127.0.0.1', 
    user='root', 
    passwd='root', 
    db='MySQL 
    ) 
関連する問題