- Bağlantıyı al
- X
- E-posta
- Diğer Uygulamalar
- Bağlantıyı al
- X
- E-posta
- Diğer Uygulamalar
import mysql.connector
CONFIG = {
"host": "localhost",
"user": "root",
"password":
"python-mysql123" # Parolanızı buraya yazın
}
try:
# 1. Sunucuya Bağlanma
mydb = mysql.connector.connect(
host=CONFIG["host"],
user=CONFIG["user"],
password=CONFIG["password"]
)
# 2. Cursor Oluşturma (Sorguları
çalıştırmak için)
mycursor = mydb.cursor()
# 3. Veritabanı Oluşturma
Sorgusunu Çalıştırmak
mycursor.execute("CREATE
DATABASE IF NOT EXISTS python_proje ")
print("Veritabanı başarıyla
oluşturuldu.")
except mysql.connector.Error as err:
# Bağlantı hatalarını, parola
hatalarını (1045) veya genel hataları # yakalar
print(f"Bir hata oluştu:
{err}")
print("Lütfen CONFIG
dosyasındaki bilgileri veya sunucu durumunu kontrol edin.")
finally:
# Hata olsa da olmasa da
bağlantıları temizce kapat
# Cursor objesi var mı diye kontrol et
if 'mycursor' in locals() and
mycursor:
mycursor.close()
# Bağlantı aktif mi diye kontrol et
if 'mydb' in locals() and
mydb.is_connected():
mydb.close()
print("Bağlantılar
sonlandırıldı.")
Bu kod bloğu, MySQL veritabanı işlemlerinin temelini oluşturan bağlantı kurma ve ilk veritabanını oluşturma adımlarını içerir.
İmleç Oluşturma (mydb.cursor): Cursor (İmleç), SQL sorgularını veritabanına göndermek ve sonuçları geri almak için kullanılan temel araçtır. Tüm sorgular mycursor nesnesi üzerinden çalıştırılır.
Sorgu Çalıştırma (mycursor.execute): Buradaki execute metodu, CREATE DATABASE IF NOT EXISTS python_proje SQL sorgusunu çalıştırır. IF NOT EXISTS ifadesi, aynı isimde bir veritabanı zaten varsa hata vermesini önler.
Bağlantıları Kapatma (finally): Programın başarılı olması veya hata vermesi fark etmeksizin, finally bloğu çalışır. Bu blok, mycursor.close() ve mydb.close() komutlarıyla veritabanı bağlantılarını temiz ve düzenli bir şekilde sonlandırır. Bu, kaynak sızıntılarını önlemek için kritik bir adımdır.
Cursor (İmleç) Kapatma Kontrolü:
if 'mycursor' in locals() and mycursor:
mycursor.close()
if 'mycursor' in locals(): Bu kontrol, mycursor adında bir değişkenin mevcut çalışma alanında (locals()) tanımlanıp tanımlanmadığını kontrol eder. Örneğin, veritabanı bağlantısı kurulamazsa, mycursor değişkeni hiçbir zaman oluşmayacaktır.
and mycursor: Değişkenin var olmasının yanı sıra, bu değişkenin None veya boş bir değer olmadığından emin olur.
mycursor.close(): Eğer imleç değişkeni varsa ve geçerliyse, imleci kapatır ve serbest bırakır.
Veritabanı Bağlantısı Kapatma Kontrolü:
if 'mydb' in locals() and mydb.is_connected():
mydb.close()
print("Bağlantılar sonlandırıldı.")
if 'mydb' in locals(): Aynı şekilde, önce mydb adında bir bağlantı nesnesinin oluşup oluşmadığını kontrol eder.
and mydb.is_connected(): En önemli kontrol budur. Bağlantı nesnesi oluşsa bile, bağlantının halen aktif ve açık olup olmadığını kontrol eder. Bir bağlantı zaten kapalıysa, onu tekrar kapatmaya çalışmak hata verebilir. Bu kontrol bu tür hataları önler.
Yorumlar
Yorum Gönder