Sqlite3 TypeError: execute expected at most 2 arguments, got 3 hatası

Merhabalar.
Aşağıdaki kodu çalıştıramıyorum. Hata alıyor. Nedenini bulamadım. Şimdiden teşekkürler.

#---------------------------KÜTÜPHANE----------------------------------------------------------#

#----------------------------------------------------------------------------------------------#

import sys

from PyQt5 import QtWidgets

from PyQt5.QtWidgets import *  

#---------------------------UYGULAMA OLUŞTUR---------------------------------------------------#

#----------------------------------------------------------------------------------------------#

Uygulama=QApplication(sys.argv)

penAna=QMainWindow()

#----------------------------------------------------------------------------------------------#

#----------------------------------------------------------------------------------------------#

txt=QLabel(penAna)

txt.setText("Adınız ")

txt.move(30,120)

txt.resize(100,20)

txt1=QLabel(penAna)

txt1.setText("Soyadınız ")

txt1.move(30,150)

txt1.resize(100,20)

veriAd=QLineEdit(penAna)

veriAd.move(120,120)

veriAd.resize(100,20)

verisoyAd=QLineEdit(penAna)

verisoyAd.move(120,150)

verisoyAd.resize(100,20)

buton1=QPushButton(penAna)

buton1.setText("Kaydet")

buton1.move(120,180)    # soldan uzaklık,yukardan uzaklık

buton1.resize(100,20) # genişlik,yükseklik

#----------------------------------------------------------------------------------------------#

#----------------------------------------------------------------------------------------------#

penAna.setGeometry(100,100,400,400)

penAna.setWindowTitle("Form")

penAna.show()

#---------------------------VERİTABANI OLUŞTUR-------------------------------------------------#

#----------------------------------------------------------------------------------------------#

import sqlite3

global curs

global conn

conn=sqlite3.connect('rehber.db')

curs=conn.cursor()

crtKisi=("CREATE TABLE IF NOT EXISTS kisi                          \

                     ( ID INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,\

                       AD TEXT ,                           \

                       SOYAD TEXT)")                        

                                                

curs.execute(crtKisi)

conn.commit()

#---------------------------KAYDET-------------------------------------------------------------#

#----------------------------------------------------------------------------------------------#

def EKLE():

    _lneAd=veriAd.text()

    _lnesoyAd=verisoyAd.text()      

    curs.execute("INSERT INTO kisi (AD,SOYAD) VALUES (?,?)", \

        (_lneAd))    

   

conn.commit()

 

#----------------------------------------------------------------------------------------------#

buton1.clicked.connect(EKLE)

#----------------------------------------------------------------------------------------------#

sys.exit(Uygulama.exec_())

Satirlarin arasi cift bosluk (iki enter) olmus, o yuzden \'ler calismiyor. Tek bosluga indirip tekrar dene.

1 Beğeni

Cevap için teşekkürle. Şimdi de aşağıdaki hatayı alıyorum. (Daha önce de bu hatayı alıyordum). Olmadı yani. :pensive:

Traceback (most recent call last):
File “C:\Users\ilsim\OneDrive\Masa³st³\Yeni klas÷r\aaaaa\tmyo\deneme.py”, line 76, in EKLE
curs.execute(“INSERT INTO kisi (AD,SOYAD) VALUES (?,?)”,(_lneAd),(_lnesoyAd))
TypeError: execute expected at most 2 arguments, got 3

Ben hala ayni hatayi aliyorum cunku kodun duzelmis halini yazmadin.

Bu arada hatayi aldigin kod ile yukaridaki kod arasinda bosluklar disinda farklar da goruyorum.

Soru sorarken her zaman, hatayi alan kodun tamamini, oldugu gibi atman lazim.

Hata mesajinin tamamini, oldugu gibi paylasmak da iyi bir aliskanlik ve su an yardim edebilmemizi sagliyor: execute'a parametreleri tuple olarak yollaman lazim: execute("SELECT ?, ?, ?", (a, b, c)) gibi. Senin _lneAd ve Soyad ayri argumanlar olmus.

Merhaba kodlarınızı buraya göre düzenleyip tekrar atarsanız kodunuzu daha kolay deneyebiliriz :slight_smile:

Sanırım bu şekilde olacak.Umarım olmuştur.

#---------------------------KÜTÜPHANE----------------------------------------------------------#

#----------------------------------------------------------------------------------------------#

import sys

from PyQt5 import QtWidgets

from PyQt5.QtWidgets import *  

#---------------------------UYGULAMA OLUŞTUR---------------------------------------------------#

#----------------------------------------------------------------------------------------------#

Uygulama=QApplication(sys.argv)

penAna=QMainWindow()

#----------------------------------------------------------------------------------------------#

#----------------------------------------------------------------------------------------------#

txt=QLabel(penAna)

txt.setText("Adınız ")

txt.move(30,120)

txt.resize(100,20)

txt1=QLabel(penAna)

txt1.setText("Soyadınız ")

txt1.move(30,150)

txt1.resize(100,20)

veriAd=QLineEdit(penAna)

veriAd.move(120,120)

veriAd.resize(100,20)

verisoyAd=QLineEdit(penAna)

verisoyAd.move(120,150)

verisoyAd.resize(100,20)

buton1=QPushButton(penAna)

buton1.setText("Kaydet")

buton1.move(120,180)    # soldan uzaklık,yukardan uzaklık

buton1.resize(100,20) # genişlik,yükseklik

#----------------------------------------------------------------------------------------------#

#----------------------------------------------------------------------------------------------#

penAna.setGeometry(100,100,400,400)

penAna.setWindowTitle("Form")

penAna.show()

#---------------------------VERİTABANI OLUŞTUR-------------------------------------------------#

#----------------------------------------------------------------------------------------------#

import sqlite3

global curs

global conn

conn=sqlite3.connect('rehber.db')

curs=conn.cursor()

crtKisi=("CREATE TABLE IF NOT EXISTS deney ( AD TEXT,SOYAD TEXT)")                        

                                                

curs.execute(crtKisi)

conn.commit()

#---------------------------KAYDET-------------------------------------------------------------#

#----------------------------------------------------------------------------------------------#

def EKLEM():    

    _lneAd=veriAd.text()

    _lnesoyAd=verisoyAd.text()      

    curs.execute("INSERT INTO deney (AD,SOYAD) VALUES (?,?)",

         (_lneAd),(_lnesoyAd))    

conn.commit()

#----------------------------------------------------------------------------------------------#

buton1.clicked.connect(EKLEM)

#----------------------------------------------------------------------------------------------#

sys.exit(Uygulama.exec_())

Son mesajimin son paragrafinda belirttigim hata devam ediyor.

curs.execute("INSERT INTO deney (AD,SOYAD) VALUES (?,?)", (_lneAd),(_lnesoyAd) )

kısmınını şu şekilde düzenle, dene

curs.execute("INSERT INTO deney (AD,SOYAD) VALUES (?,?)", (_lneAd , _lnesoyAd) )