Chủ Nhật, 26 tháng 5, 2024

51. Chương trình tào lao Python MySQL phần 5

Tiếp tục với chương trình "vĩ đại" của chúng ta. Chúng ta sẽ thêm một biến tên là name_text lưu giữ giá trị name nhưng được loại bỏ dấu ngoặc đơn, dấu nháy đơn và dấu phẩy như sau

name_text = text.replace("(", "").replace(",)", "").replace("'", "")

Đây là code của chương trình

import mysql.connector

mydb = mysql.connector.connect(
  host="localhost",
  user="root",
  password="password của bạn" ,
  database="mydatabase"
)

mycursor = mydb.cursor()
# Kiem tra database co ton tai hay khong
mycursor.execute("SHOW DATABASES")
databases = mycursor.fetchall()

database_exists = False
for database in databases:
  if 'mydatabase' in database:
    database_exists = True
    break

if database_exists:
  print("Database Ton Tai")
else:
  print("Database Khong Ton Tai")
  mycursor.execute("CREATE DATABASE mydatabase")

# Kiem tra table co ton tai hay khong
mycursor.execute("SHOW TABLES")
tables = mycursor.fetchall()

table_exists = False
for (table,) in tables:
  if ('sinhvien',) in tables:
    print("Table Ton Tai!!")
    table_exists = True
    break

if table_exists:
  print("Table Ton Tai")
else:
  print("Table Khong Ton Tai")
  mycursor.execute("CREATE TABLE SinhVien (id INT(11) PRIMARY KEY NOT NULL AUTO_INCREMENT, name VARCHAR(255), class VARCHAR(100))")


sql = "INSERT INTO SinhVien (name, class) VALUES (%s, %s)"
val = ("Nguyen Van A", "CNTT")
mycursor.execute(sql, val)

mycursor.execute("SELECT name FROM SinhVien")

myresult = mycursor.fetchall()

for x in myresult:
  text = str(x)
  name_text = text.replace("(", "").replace(",)", "").replace("'", "")
  print(name_text)



print(val[0])
mydb.commit()

mycursor.execute("SELECT * FROM SinhVien")

myresult = mycursor.fetchall()

for x in myresult:
  print(x)


mycursor.close()
mydb.close()

 

Sử dụng PyCharm, chạy chương trình 

Chương trình tào lao Python MySQL phần 5

Công việc tiếp theo của chúng ta là so sánh biến name_text với val[0].

Chúng ta sẽ sử dụng lệnh print() để coi thử kết quả trước khi "làm gì đó" tiếp theo.

Đây là code của chương trình


import mysql.connector

mydb = mysql.connector.connect(
  host="localhost",
  user="root",
  password="password của bạn" ,
  database="mydatabase"
)

mycursor = mydb.cursor()
# Kiem tra database co ton tai hay khong
mycursor.execute("SHOW DATABASES")
databases = mycursor.fetchall()

database_exists = False
for database in databases:
  if 'mydatabase' in database:
    database_exists = True
    break

if database_exists:
  print("Database Ton Tai")
else:
  print("Database Khong Ton Tai")
  mycursor.execute("CREATE DATABASE mydatabase")

# Kiem tra table co ton tai hay khong
mycursor.execute("SHOW TABLES")
tables = mycursor.fetchall()

table_exists = False
for (table,) in tables:
  if ('sinhvien',) in tables:
    print("Table Ton Tai!!")
    table_exists = True
    break

if table_exists:
  print("Table Ton Tai")
else:
  print("Table Khong Ton Tai")
  mycursor.execute("CREATE TABLE SinhVien (id INT(11) PRIMARY KEY NOT NULL AUTO_INCREMENT, name VARCHAR(255), class VARCHAR(100))")


sql = "INSERT INTO SinhVien (name, class) VALUES (%s, %s)"
val = ("Nguyen Van A", "CNTT")
mycursor.execute(sql, val)

mycursor.execute("SELECT name FROM SinhVien")

myresult = mycursor.fetchall()

for x in myresult:
  text = str(x)
  name_text = text.replace("(", "").replace(",)", "").replace("'", "")
  if name_text == val[0]:
     print("Hello: "+ name_text)



print(val[0])
mydb.commit()

mycursor.execute("SELECT * FROM SinhVien")

myresult = mycursor.fetchall()

for x in myresult:
  print(x)


mycursor.close()
mydb.close()


Bấm Run để chạy chương trình



Kết quả cho thấy mọi chuyện đã ổn, chương trình đã đi "đúng hướng, đúng nơi", công việc tiếp theo của chúng ta là hỏi người sử dụng nhằm xác định có tiếp tục hay không.

Chúng ta cần sử dụng hàm input() trong trường hợp này. Trước khi có hành động thực sự, như mọi lần chúng ta sẽ sử dụng lệnh print("Hello") để coi thử chương trình chạy có đúng ý đồ của chúng ta không. 

Lưu ý: Đặt if trung_ten == 1: bên ngoài vòng lặp For để tránh tình trạng nếu có nhiều tên trùng sẽ bị lặp đi lặp lại, chúng ta chỉ cần hỏi một lần mà thôi.


import mysql.connector

mydb = mysql.connector.connect(
  host="localhost",
  user="root",
  password="password của bạn" ,
  database="mydatabase"
)

mycursor = mydb.cursor()
# Kiem tra database co ton tai hay khong
mycursor.execute("SHOW DATABASES")
databases = mycursor.fetchall()

database_exists = False
for database in databases:
  if 'mydatabase' in database:
    database_exists = True
    break

if database_exists:
  print("Database Ton Tai")
else:
  print("Database Khong Ton Tai")
  mycursor.execute("CREATE DATABASE mydatabase")

# Kiem tra table co ton tai hay khong
mycursor.execute("SHOW TABLES")
tables = mycursor.fetchall()

table_exists = False
for (table,) in tables:
  if ('sinhvien',) in tables:
    print("Table Ton Tai!!")
    table_exists = True
    break

if table_exists:
  print("Table Ton Tai")
else:
  print("Table Khong Ton Tai")
  mycursor.execute("CREATE TABLE SinhVien (id INT(11) PRIMARY KEY NOT NULL AUTO_INCREMENT, name VARCHAR(255), class VARCHAR(100))")


sql = "INSERT INTO SinhVien (name, class) VALUES (%s, %s)"
val = ("Nguyen Van A", "CNTT")
mycursor.execute(sql, val)

mycursor.execute("SELECT name FROM SinhVien")

myresult = mycursor.fetchall()

for x in myresult:
  text = str(x)
  name_text = text.replace("(", "").replace(",)", "").replace("'", "")
  if name_text == val[0]:
    trung_ten = 1
if trung_ten == 1:
  print("Tên này đã có trang database: ")
  print("Bấm số 1 để tiếp tục, bấm số 2 để thoát ")
  s= input()
  if s == "1":
    print("Hello")



print(val[0])
#mydb.commit()

mycursor.execute("SELECT * FROM SinhVien")

myresult = mycursor.fetchall()

for x in myresult:
  print(x)


mycursor.close()
mydb.close()



Bấm Run để chạy chương trình, có mấy lưu ý sau.

Nếu bạn bấm số 2


Thì chương trình sẽ không thật sự chèn thêm record vào bảng SinhVien. Phần dưới cùng khi danh sách các record trong SinhVien được in ra, chúng ta sẽ thấy 1 record mới, ví dụ trong trường hợp của chúng tôi là số ID 59, nhưng nếu chúng ta thử thêm vài lần bấm số 2 thì số ID sẽ tăng lên, nhưng không thật sự chèn vào bảng.

 

Đây là lần bấm số 2 đầu tiên



 

Đây là lần bấm số 2 tiếp theo



 

Đây là lần bấm số 2 thứ ba


 

Chỉ khi chúng ta xác nhận thêm record bằng cách bấm số 1, khi đó chương trình mới thực thi lệnh print("Hello").


Công việc của chúng ta lúc này là thêm lệnh mydb.commit() vào mà thôi.

Đây là code

import mysql.connector

mydb = mysql.connector.connect(
  host="localhost",
  user="root",
  password="password của bạn" ,
  database="mydatabase"
)

mycursor = mydb.cursor()
# Kiem tra database co ton tai hay khong
mycursor.execute("SHOW DATABASES")
databases = mycursor.fetchall()

database_exists = False
for database in databases:
  if 'mydatabase' in database:
    database_exists = True
    break

if database_exists:
  print("Database Ton Tai")
else:
  print("Database Khong Ton Tai")
  mycursor.execute("CREATE DATABASE mydatabase")

# Kiem tra table co ton tai hay khong
mycursor.execute("SHOW TABLES")
tables = mycursor.fetchall()

table_exists = False
for (table,) in tables:
  if ('sinhvien',) in tables:
    print("Table Ton Tai!!")
    table_exists = True
    break

if table_exists:
  print("Table Ton Tai")
else:
  print("Table Khong Ton Tai")
  mycursor.execute("CREATE TABLE SinhVien (id INT(11) PRIMARY KEY NOT NULL AUTO_INCREMENT, name VARCHAR(255), class VARCHAR(100))")


sql = "INSERT INTO SinhVien (name, class) VALUES (%s, %s)"
val = ("Nguyen Van A", "CNTT")
mycursor.execute(sql, val)

mycursor.execute("SELECT name FROM SinhVien")

myresult = mycursor.fetchall()

for x in myresult:
  text = str(x)
  name_text = text.replace("(", "").replace(",)", "").replace("'", "")
  if name_text == val[0]:
    trung_ten = 1
if trung_ten == 1:
  print("Tên này đã có trang database: ")
  print("Bấm số 1 để tiếp tục, bấm số 2 để thoát ")
  s= input()
  if s == "1":
    print("Hello")
    mydb.commit()


print(val[0])
#mydb.commit()

mycursor.execute("SELECT * FROM SinhVien")

myresult = mycursor.fetchall()

for x in myresult:
  print(x)


mycursor.close()
mydb.close()

Đây là kết quả sau hai lần bấm số 1







Phần tiếp theo


Phần trước



Không có nhận xét nào:

Đăng nhận xét