Mengapa Pertanyaan Seterusnya dalam Gelung Python Mengembalikan Data Yang Sama daripada Pangkalan Data MySQL?

Susan Sarandon
Lepaskan: 2024-11-06 07:56:03
asal
892 orang telah melayarinya

Why Do Subsequent Queries in a Python Loop Return the Same Data from a MySQL Database?

Mengambil Data Dinamik daripada MySQL Menggunakan Pertanyaan Python

Apabila menanya secara berkala pangkalan data MySQL yang berubah dengan pantas daripada Python, anda mungkin menjangkakan berasaskan gelung pendekatan untuk mengambil data terkini secara konsisten. Walau bagaimanapun, anda mungkin menghadapi situasi di mana data yang sama dikembalikan berulang kali.

Isu ini berpunca daripada tahap pengasingan lalai MySQL, BACA BOLEH DIULANG. Dengan tahap ini, bacaan dalam transaksi menggunakan petikan data seperti yang wujud pada permulaan transaksi. Pertanyaan berikutnya dalam urus niaga yang sama akan dibaca daripada petikan ini dan bukannya mengemas kininya.

Untuk menyelesaikannya, anda perlu melakukan sambungan selepas setiap pertanyaan, memastikan transaksi seterusnya akan mendapatkan semula data terkini. Begini cara anda boleh mengubah suai kod Python anda:

<code class="python"># Main loop
while True:

    # SQL query
    sql = "SELECT * FROM table"

    # Read the database, store as a dictionary
    mycursor = mydb.cursor(dictionary=True)
    mycursor.execute(sql)

    # Store data in rows
    myresult = mycursor.fetchall()

    # Transfer data into list
    for row in myresult:
        myList[int(row["rowID"])] = (row["a"], row["b"], row["c"])

        print(myList[int(row["rowID"])])

    # Commit !
    mydb.commit()
    print("---")
    sleep (0.1)</code>
Salin selepas log masuk

Dengan menambahkan mydb.commit() selepas setiap pertanyaan, anda memaksa MySQL untuk melakukan transaksi dan mengemas kini syot kilat. Ini membolehkan pertanyaan seterusnya mengakses data terbaharu.

Atas ialah kandungan terperinci Mengapa Pertanyaan Seterusnya dalam Gelung Python Mengembalikan Data Yang Sama daripada Pangkalan Data MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan