Mysql connector errors programmingerror parameter untuk query must be list or tuple

Václav Brožík yang terhormat, terima kasih atas tanggapan cepat Anda
master_data adalah data yang dibaca dari sensor getaran setiap detik dan berisi daftar 500 nomor float

Mysql connector errors programmingerror parameter untuk query must be list or tuple

Tangkapan Layar (240)1920×952 131 KB


Mysql connector errors programmingerror parameter untuk query must be list or tuple

Tangkapan Layar (241)1920×359 31. 7 KB

Saya ingin mengirim semua 500 data ke host secara bersamaan, bukan satu per satu

sql = "INSERT INTO vib_data2 (data) VALUES (%s)"
val = list(master_data, )
mycursor.executemany(sql, val)
mydb.commit()

Mysql connector errors programmingerror parameter untuk query must be list or tuple

Tangkapan Layar (242)1255×375 23. 6 KB

Saya dapat mentransfer data ke host satu per satu tetapi membutuhkan banyak waktu
(Maaf untuk kesalahan ketik. Dalam kode kedua, val = (str(i),) benar. )

2

Sunting

Menutup

Menghapus

Bendera

ValueError. Parameter kueri SQL harus berupa tuple, list, atau dict

Sunting

Menutup

Menghapus

Bendera

shayar

12 Desember 2018

Berhenti berlangganan Berlangganan

Saat menjalankan kode, saya mendapatkan kesalahan seperti ini 'Parameter kueri SQL harus berupa tuple, daftar, atau dict'

Ini kode saya

@api. multi

def issue_material(self)

jobsheet_no = diri sendiri. lembar kerja_no

diri sendiri. sure_one()

hasil = []

diri sendiri. lingkungan. cr. mengeksekusi("""PILIH bergerak. nama sebagai produk, bergerak. product_uom_qty sebagai kuantitas, pilih. name as                 dikirim dari stock_move move,stock_picking pick where move. picking_id = pilih. id dan                 pindahkan. status = 'selesai' dan pindah. lokasi_id. =9 dan pilih. jobsheet_no=%s""",(jobsheet_no. id))

Tag sudah ada dengan nama cabang yang disediakan. Banyak perintah Git menerima nama tag dan cabang, jadi membuat cabang ini dapat menyebabkan perilaku yang tidak diharapkan. Anda yakin ingin membuat cabang ini?

Anda tidak boleh menggunakan executemany karena digunakan untuk mengeksekusi pernyataan yang sama (dengan parameter berbeda) berkali-kali dan biasanya digunakan untuk INSERTs atau UPDATEs, bukan untuk SELECTs. Anda hanya perlu menggunakan execute

 sql = "SELECT UserID FROM userdetails WHERE Username = %(value)s 
        AND Password = %(value2)s "
        params = {'value': username, 'value2': password}

 mycursor.execute(sql, (params))    
 mydb.commit()
_

Selain itu, setelah pernyataan SELECT, Anda tidak perlu melakukan commit (tidak ada yang perlu dilakukan), tetapi Anda harus fetch hasil kueri Anda, sehingga akan terlihat seperti ini

 sql = "SELECT UserID FROM userdetails WHERE Username = %(value)s 
        AND Password = %(value2)s "
        params = {'value': username, 'value2': password}

 mycursor.execute(sql, (params))    
 data = mycursor.fetchall()

Bagaimana cara mengirimkan kueri ke MySQL dengan Python?

Langkah mengambil baris dari tabel database MySQL .
Hubungkan ke MySQL dari Python. .
Tentukan Kueri SQL SELECT. .
Dapatkan Objek Kursor dari Connection. .
Jalankan kueri SELECT menggunakan metode execution(). .
Ekstrak semua baris dari hasil. .
Ulangi setiap baris. .
Tutup objek kursor dan objek koneksi database

Bagaimana Anda memperbarui banyak baris dalam SQL menggunakan Python?

Dimungkinkan untuk memperbarui banyak baris dalam satu Kueri SQL. Anda juga dapat menyebutnya pembaruan massal. Gunakan kursor. executemany() metode objek kursor untuk memperbarui beberapa baris tabel .

Apa fungsi metode yang digunakan dalam program konektivitas MySQL Python?

Cara menghubungkan database MySQL dengan Python .
Instal modul konektor MySQL. Gunakan perintah pip untuk menginstal konektor MySQL Python. .
Impor modul konektor MySQL. .
Gunakan metode connect(). .
Gunakan metode kursor(). .
Gunakan metode eksekusi(). .
Ekstrak hasil menggunakan fetchall().
Tutup objek kursor dan koneksi

Apa itu kursor di Python MySQL?

Ini adalah objek yang digunakan untuk membuat koneksi untuk mengeksekusi kueri SQL . Ini bertindak sebagai middleware antara koneksi database SQLite dan kueri SQL. Itu dibuat setelah memberikan koneksi ke database SQLite.