2017-07-07 20 views
1

学生レコードプロジェクトにデータベースを実装しています。テーブルから行を削除する前後に、その行にいくつの行があるかを確認する必要があります。次のように 我々が試したコードである:上記のコードでpythonを使用してmysqlでrowcountを使用する方法

1 roll=5 
2 m = mysql.connector.connect(host='localhost', database='student',user='root', password='') 
3 cur = m.cursor() 
4 rc = cur.rowcount 
5 print("%d"%rc) 
6 e=cur.execute("DELETE FROM `acc_details` WHERE roll_No=%s" % roll) 
7 print("%d"%cur.rowcount) 

、4行目の最初の行数を与えている-1最後の行に出力され、行数がテーブルこと行ないを与えているよう行を削除した後にあります。

なぜ4行目の最初の行数が-1として出力されるのですか?

何か助けがあれば大丈夫です。

答えて

0

はあなたのコードを持ってみてください、あなたのコードは、多分あなたはそれらを追加することができ、これらを持っていない場合

m.commit() 
cur.close() 
m.close() 

を含めることができます。 とあなたの最初の4行は、私はあなたが、あなたがrowcount.Iは、私の答えはあなたを助けることを願って取得することができます

cur.execute('select * from 'table_name'') 
cur.fetchall() 

を追加すべきだと思います。

+0

お世話になりました – nishant

3

psycopg2のドキュメントによると、cur.rowcountは、同じcurオブジェクトの最後の実行メソッドの影響を受ける行の数を返します。したがって、最初のcur.rowcount呼び出しで-1を返します。 ) 方法。

あなたはthis-

roll=5 
m = mysql.connector.connect(host='localhost', database='student',user='root', password='') 
cur = m.cursor() 
cur.execute("SELECT * FROM `acc_details`") 
cur.fetchall() 
rc = cur.rowcount 
print("%d"%rc) 
e=cur.execute("DELETE FROM `acc_details` WHERE roll_No=%s" % roll) 
print("%d"%cur.rowcount) 
+0

回答ありがとうございますが、これはエラーメッセージを表示します: mysql.connector.errors.InternalError:未読結果が見つかりました – nishant

+0

あなたはmysqlを使用していたことに気付きました。答えのコードの行番号4の編集を確認してください。今すぐ働かなければならない。 –

関連する問題