行がすでにテーブルの1つに存在するかどうかを知りたい場合は、この場合はcoll
です。これを行うために、シェルのSQLiteで少し遊んで、SELECT EXISTS(SELECT 1 FROM coll WHERE ceeb="1234")
を見つけました。 SQLiteでは、これは完全に動作し、0
または1
を返します。これはまさに私が望むものです。だから、コードを手にして、私は私のプログラムにそれを貼り付ける前に、私がこれをうまく動作させることができるかどうかを確認するためのPythonスクリプトを書きました。代わりに、それは私に<sqlite3.Cursor object at 0x01DF6860>
ような出力を提供しますceeb_exists
1
または0
を割り当てるのでPythonでSQLiteに行が存在するかどうか確認してください
import sqlite3
conn = sqlite3.connect('stu.db')
c = conn.cursor()
sceeb = int(raw_input(":> "))
ceeb_exists = c.execute('SELECT EXISTS(SELECT 1 FROM coll WHERE ceeb="%d" LIMIT 1)' % sceeb)
print ceeb_exists
:これは私が思いついたものです。私はここで間違って何をしていますか?
驚異の作品、ありがとう!そして、これは職場での私の使用のためのものなので、私は注射の攻撃について心配する必要はありません。 –
@IanPringle:クエリパラメータを使用することは常に良い方法です。データベースドライバは、そのクエリのために準備された実行計画を作成し、たとえば異なるパラメータに対して再利用することも可能にします。 –