- Pertama-tama Anda memiliki sintaks yang salah dalam kode Anda. Python tidak memiliki
try...catch
memblokir. Ini memilikitry...except
blok yang digunakan seperti ini:
try:
# something here
except:
# something here
- MySQL tidak mengembalikan kesalahan saat Anda menggunakan
SELECT
memerintah. Namun ada dua cara berbeda untuk mengetahui apakah itu mengembalikan sesuatu atau tidak.
PYTHON 2.7
cursor.execute(
"SELECT Name, COUNT(*) FROM Item_Info WHERE Name = %s GROUP BY Name",
(item_name,)
)
# gets the number of rows affected by the command executed
row_count = cursor.rowcount
print "number of affected rows: {}".format(row_count)
if row_count == 0:
print "It Does Not Exist"
PYTHON 3+
cursor.execute(
"SELECT Name, COUNT(*) FROM Item_Info WHERE Name = %s GROUP BY Name",
(item_name,)
)
# gets the number of rows affected by the command executed
row_count = cursor.rowcount
print ("number of affected rows: {}".format(row_count))
if row_count == 0:
print ("It Does Not Exist")
Cara lain untuk melakukannya adalah dengan mengambil pernyataan dan memeriksa apakah itu kosong:
# execute statement same as above
msg = cursor.fetchone()
# check if it is empty and print error
if not msg:
print 'It does not exist'
Ini adalah jawaban pertama saya, jadi saya tidak tahu bagaimana gaya kode dalam jawaban dengan benar, itu juga tampak berantakan karena itu. Maaf untuk itu.
Saya juga menggunakan Python 3 dan pymysql, jadi mungkin ada beberapa kesalahan sintaks tetapi saya telah mencoba untuk menulis kode sesuai dengan python 2.7 dari apa yang saya ingat.
EDIT (5/1/2020)
Terima kasih kepada @Arishta karena menunjukkan bahwa metode pertama mengharuskan Anda mengambil semua baris sebelum menggunakan row_count. yaitu menambahkan cursor.fetchall()
sebelum row_count = cursor.rowcount
cursor.execute(
"SELECT Name, COUNT(*) FROM Item_Info WHERE Name = %s GROUP BY Name",
(item_name,)
)
# Add THIS LINE
results = cursor.fetchall()
# gets the number of rows affected by the command executed
row_count = cursor.rowcount
print("number of affected rows: {}".format(row_count))
if row_count == 0:
print("It Does Not Exist")
Gunakan cursor.fetchone()
jika Anda hanya peduli apakah catatan itu ada atau tidak.