cari

Rumah  >  Soal Jawab  >  teks badan

python下向sqlite插入记录,是否存在过记录的判断不起作用

每次都是返回 False

import sqlite3

conn = sqlite3.connect('urls.db')
cursor = conn.cursor()
cursor.execute('CREATE TABLE IF NOT EXISTS  urls (id integer primary key autoincrement, link text)') 

def url_exists(url):
    sql_cmd = '''select * from urls where link = '%s' ''' % url
    cursor.execute(sql_cmd)
    res = cursor.fetchall()
    if len(res) > 0 :
        print '%s exists' % url
        return True
    else:
        sql_cmd_2 = '''insert into urls(link) values('%s') ''' % url
        cursor.execute(sql_cmd_2)
        print '%s added' % url
        return False
    cursor.close()
    conn.commit()
    conn.close()

url_status = url_exists('example.com')
print url_status
怪我咯怪我咯2856 hari yang lalu664

membalas semua(1)saya akan balas

  • 高洛峰

    高洛峰2017-04-18 09:06:44

    因为添加之后你直接kembali True了,数据库没有komit。。。

    import sqlite3
    
    sambung = sqlite3.connect('/tmp/urls.db')
    kursor = conn.cursor()
    cursor.execute('BUAT JADUAL JIKA TIDAK WUJUD url (peningkatan autokunci utama integer id, teks pautan)') 
    
    def url_exists(url):
        sql_cmd = '''pilih * daripada url di mana pautan = '%s' ''' % url
        cursor.execute(sql_cmd)
        res = cursor.fetchall()
        suc = Benar
        jika len(res) > 0:
            print '%s exists' % url
            suc = Benar
        lain:
            sql_cmd_2 = '''masukkan ke dalam url(pautan) nilai('%s') ''' % url
            cursor.execute(sql_cmd_2)
            print '%s added' % url
            suc = Palsu
        cursor.close()
        conn.commit()
        conn.close()
        kembali suc
    
    url_status = url_exists('example.com')
    cetak url_status

    balas
    0
  • Batalbalas