PHP 8 ile MySQLi kullanarak veritabanına kayıt eklemek oldukça basittir. MySQLi, MySQL veritabanı ile etkileşimde bulunmanın geliştirilmiş bir yoludur. MySQLi, hem objektif hem de prosedürel olmak üzere iki farklı yöntem sunar. Aşağıda adım adım MySQLi kullanarak nasıl kayıt ekleneceğini anlatacağım.
1. MySQLi ile Veritabanına Bağlantı
Öncelikle veritabanına bağlanmamız gerekir. MySQLi'nin prosedürel yöntemiyle veritabanına bağlanma aşağıdaki gibidir:
<?php
// Veritabanı bilgileri
$servername = "localhost";
$username = "root";
$password = "";
$database = "testdb";
// Veritabanına bağlan
$conn = mysqli_connect($servername, $username, $password, $database);
// Bağlantı kontrolü
if (!$conn) {
die("Bağlantı başarısız: " . mysqli_connect_error());
}
echo "Bağlantı başarılı!";
?>
Bu kodda:
-
mysqli_connect()
: Veritabanına bağlanmak için kullanılır. -
localhost
,root
,password
, vetestdb
: Sırasıyla sunucu adı, kullanıcı adı, şifre ve veritabanı adıdır.
2. Kayıt Ekleme (INSERT INTO)
Veritabanına kayıt eklemek için SQL INSERT INTO
komutunu kullanırız. Aşağıdaki örnekte, students
tablosuna yeni bir kayıt ekleyeceğiz.
Örnek SQL tablosu:
CREATE TABLE students (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50) NOT NULL,
email VARCHAR(50) NOT NULL
);
MySQLi ile kayıt eklemek için:
<?php
// Veritabanı bilgileri
$servername = "localhost";
$username = "root";
$password = "";
$database = "testdb";
// Veritabanına bağlan
$conn = mysqli_connect($servername, $username, $password, $database);
// Bağlantı kontrolü
if (!$conn) {
die("Bağlantı başarısız: " . mysqli_connect_error());
}
// SQL INSERT komutu
$sql = "INSERT INTO students (name, email) VALUES ('Ali Veli', 'ali@example.com')";
// Sorguyu çalıştır ve sonucu kontrol et
if (mysqli_query($conn, $sql)) {
echo "Yeni kayıt başarıyla eklendi.";
} else {
echo "Hata: " . $sql . "<br>" . mysqli_error($conn);
}
// Bağlantıyı kapat
mysqli_close($conn);
?>
Bu kod:
-
SQL Sorgusu:
"INSERT INTO students (name, email) VALUES ('Ali Veli', 'ali@example.com')"
komutunu çalıştırarakstudents
tablosuna yeni bir kayıt ekler. -
mysqli_query()
: SQL sorgusunu veritabanına gönderir. - Eğer sorgu başarılı olursa, "Yeni kayıt başarıyla eklendi." mesajını görüntüler. Aksi takdirde hata mesajı verir.
3. Hazırlıklı Sorgular (Prepared Statements) ile Kayıt Ekleme
Hazırlıklı sorgular (prepared statements), veritabanı işlemlerinde güvenliği artırır ve SQL injection saldırılarına karşı koruma sağlar. Hazırlıklı sorgularla veri ekleme şu şekilde yapılır:
<?php
// Veritabanı bilgileri
$servername = "localhost";
$username = "root";
$password = "";
$database = "testdb";
// Veritabanına bağlan
$conn = mysqli_connect($servername, $username, $password, $database);
// Bağlantı kontrolü
if (!$conn) {
die("Bağlantı başarısız: " . mysqli_connect_error());
}
// Hazırlıklı sorgu oluştur
$stmt = mysqli_prepare($conn, "INSERT INTO students (name, email) VALUES (?, ?)");
// Parametreleri bağla
mysqli_stmt_bind_param($stmt, "ss", $name, $email);
// Değerleri tanımla
$name = "Ahmet Yılmaz";
$email = "ahmet@example.com";
// Sorguyu çalıştır
if (mysqli_stmt_execute($stmt)) {
echo "Yeni kayıt başarıyla eklendi.";
} else {
echo "Hata: " . mysqli_stmt_error($stmt);
}
// Sorguyu kapat
mysqli_stmt_close($stmt);
// Bağlantıyı kapat
mysqli_close($conn);
?>
Bu kodda:
-
mysqli_prepare()
: Hazırlıklı bir SQL sorgusu oluşturur.?
işaretleri sorguda veri yerleştirilecek alanları belirtir. -
mysqli_stmt_bind_param()
: Sorgu içinde?
ile belirtilen yerleri dinamik olarak doldurur."ss"
ifadesi iki string parametre anlamına gelir. -
mysqli_stmt_execute()
: Hazırlıklı sorguyu çalıştırır.
4. Bağlantıyı Kapatma
Veritabanı işlemleri bittikten sonra, kullanılan kaynakları serbest bırakmak için bağlantıyı kapatmak önemlidir. Bunu mysqli_close()
fonksiyonu ile yaparız:
mysqli_close($conn);
Özet
- PHP 8 ile MySQLi kullanarak veritabanına kayıt eklemek hem güvenli hem de esnektir.
- Prosedürel yöntem ile basitçe sorgular çalıştırılabilir.
- Hazırlıklı sorgular (Prepared Statements), SQL injection saldırılarına karşı koruma sağlar.
- Bağlantıyı açtıktan sonra, işlemler bittikten sonra kapatmak önemlidir.
Bu şekilde PHP 8'de MySQLi ile veritabanına güvenli ve etkili bir şekilde kayıt ekleyebilirsiniz.