2017-01-13 3 views
1

データベースユーザーは別の場所からサーバーに接続できます。彼らはアクセス許可を持っています。サーバーファイアウォールは無効になっています。MariaDBはデータを挿入できません

import pymysql 
def ConnectToDatabase(): 
    return pymysql.connect(host = "hostName", user = "databaseUserId", password = "databaseUserPw", db = "databaseName", charset = "utf8") 

def DisconnectDatabase(databaseConnection) : 
    databaseConnection.close() 

def ExecuteQueryToDatabase(executeAbleQuery) : 
    databaseConnection = ConnectToDatabase() 
    databaseResultDataCursor = databaseConnection.cursor() 
    databaseResultDataCursor.execute(executeAbleQuery) 
    databaseResultDataRows = databaseResultDataCursor.fetchall() 
    DisconnectDatabase(databaseConnection) 
    return databaseResultDataRows 

def ClientRequestQuery(request) : 
    dbQuery = request.GET.get('query',';') 
    print dbQuery 
    return HttpResponse(ExecuteQueryToDatabase(dbQuery)) 

def TestQuery(request): 

    ExecuteQueryToDatabase('insert into User2 (`a`, `b`, `c`, `d`) values(1, 2, 3, 4);'); 

    return HttpResponse("test") 

コードはただTIはMariaDBに接続して、いくつかのデータを挿入し、 が、私はこのコードをしようとすると、データがエラーと「テスト」なしで行っているが正常に

返されたテーブル構造があるさ

MariaDB [ServiceDatabase]> desc User2; 
│+-------+---------+------+-----+---------+-------+ 

│| Field | Type | Null | Key | Default | Extra | 

│+-------+---------+------+-----+---------+-------+ 

│| a  | int(11) | NO |  | NULL |  | 

│| b  | int(11) | NO |  | NULL |  | 

│| c  | int(11) | NO |  | NULL |  | 

│| d  | int(11) | NO |  | NULL |  | 

│+-------+---------+------+-----+---------+-------+ 

│4 rows in set (0.00 sec) 

Djangoのバージョンは10.0.2 ザ・Pythonのバージョンで誰も私を助けることができる2.7.12

のですか?

+0

あなたがdjangoを使用している場合、必須の読書。 https://docs.djangoproject.com/en/1.10/topics/db/ – e4c5

答えて

0

コードの任意の時点でcommitを実行していません。 pythonでデータベースに挿入を実行する一般的な方法は、

1にある)接続とカーソル

conn = MySQLdb.connect(host= "hostname", 
       user="root", 
       passwd="password", 
       db="dbname") 
x = conn.cursor() 

2を作成します)挿入を実行し、そのトランザクションは限り

try: 
    x.execute("INSERT INTO User2 (a, b, c, d) VALUES (%s, %s, %s, %s)", (1,2,3,4)) 
    conn.commit() 
except: 
    conn.rollback() 
conn.close() 

を失敗した場合、コミットまたはロールバック私が見る通り、commit()を決して実行していないので、トランザクションは実際には完了しません。

+0

ty、bro i love u – stories2

関連する問題