Kata Pengantar
Saya minta maaf atas fakta bahwa saya tidak menulis tentang bekerja dengan database pada artikel pertama, tetapi bagian ini ditujukan untuk bekerja dengan MySQL.
Bagian 3 akan menjadi semacam tambahan, di mana kami akan mempertimbangkan bekerja dengan keyboard untuk bot dan siklus artikel ini akan berakhir.
Persiapan
Setelah artikel terakhir tersedia, kita harus memiliki kode ini:
import vk_api from vk_api.utils import get_random_id from vk_api.bot_longpoll import VkBotLongPoll, VkBotEventType import pymysql.cursors import requests def get_connection(): connection = pymysql.connect(host='you_host', user='you_user', password='you_password', db='you_db' charset='utf8mb4', cursorclass=pymysql.cursors.DictCursor) return connection <anchor>habracut</anchor> vk_session = vk_api.VkApi(token="a6f87v8c9a9sa87a7af9a0f9f9v8a6s6c5b5m6n8bds09asc8d7b87d87bd87n") vk = vk_session.get_api() longpoll = VkBotLongPoll(vk_session, "637182735")
Mari kita buat bot yang akan mengembalikan kita hasil positif atau negatif. Misalnya, "Hidup" dan "Mati." Kemudian masukkan ke dalam database dan di masa depan kirimkan hasil ini kepada kami.
Pertama, kita harus memiliki database kita sendiri dengan tabel yang sudah jadi.
Jika seseorang tidak tahu cara membuat tabel, maka ini adalah kode yang harus Anda sisipkan di konsol mysql:
CREATE DATABASE `firstbot`; CREATE TABLE `mode`(Id_User INT(11), Mode VARCHAR(6) DEFAULT("NOT"), PRIMARY KEY(Id_User));
Tentang hal ini kerangka kerja meja kami akan siap. Informasi lebih lanjut tentang membuat dan memodifikasi tabel dapat ditemukan tidak aktif. situs web (tautan akan di bawah).
Buat fungsi yang secara acak akan mengembalikan Mati atau Langsung:
Sekarang kita harus membuat fungsi yang mengirimkan nilai-nilai kita ke database.
def add_to_database(function_mode, x):
Kami membuat fungsi yang akan menambahkan seseorang ke database atau menyelesaikan pekerjaannya, jika dia sudah ada di sana. Dalam kasus kami, semuanya hingga ON DUPLICATE KEY UPDATE menempatkan hasil kami ke dalam database. Jika basis data sudah memiliki kolom dengan id pengguna kami, maka nilai baru tidak dimasukkan ke dalam basis data, tetapi diperbarui yang bertanggung jawab atas DUPLICATE KEY UPDATE.
Namun selain fakta bahwa kita memasukkan nilai ke dalam basis data, kita perlu mendapatkannya. Untuk melakukan ini, buat fungsi seperti itu.
def select_from_database(x): connection = get_connection() cursor = connection.cursor() sql = "SELECT Mode FROM mode WHERE Id_User = %s" cursor.execute(sql, (x,))
cursor.fetchall () membongkar permintaan yang kami terima dan menampilkannya. Dengan menggunakan kondisi ini, kami memeriksa apakah catatan dalam database akurat. Jika tidak, maka kami menetapkan nilai peringatan yang diinginkan.
Yang tersisa bagi kita adalah mengumpulkan kode sepenuhnya dan menambahkan beberapa baris sehingga semuanya berfungsi seperti yang kita inginkan.
if event.obj.text == '': if event.from_user: id_user = event.obj.from_id vk.messages.send( user_id=event.obj.from_id, random_id=get_random_id(), message=" : " + add_to_database(random_mode(), id_user)) if event.obj.text == ' ': if event.from_user: idUser = event.obj.from_id vk.messages.send( user_id=event.obj.from_id, random_id=get_random_id(), message=" : " + select_from_database(id_user)
Jadi kami mendapat respons dari bot kami

Ringkasan
Dengan bantuan pekerjaan yang dilakukan, kami menciptakan bot yang tahu cara bekerja dengan MySQL. Ini tidak mengakhiri fungsinya. Itu jauh lebih luas dan lebih besar, dan hanya dibatasi oleh imajinasi Anda.
Kode ini tidak ideal dan saya hanya menulisnya untuk menunjukkan cara kerja MySQL. Jika Anda tahu metode yang lebih baik, jangan ragu untuk menggunakannya. Saya juga akan menerima bantuan apa pun untuk meningkatkan kode saat ini.
Tautan yang bermanfaat
Halaman resmi PyMySQLHalaman resmi MySQLDokumentasi PyMySQL dalam bahasa RusiaDokumentasi Vk_apiDokumen API VkontakteKode bot itu sendiri