Rumah > Artikel > pangkalan data > Mengapa Pertanyaan Seterusnya dalam Gelung Python Mengembalikan Data Yang Sama daripada Pangkalan Data MySQL?
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>
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!